Blockquotes render in chat again, and file edits containing a $ now apply literally instead of corrupting. Also hardens link rendering against an attribute-injection edge case.
Fixed
- Blockquotes render again. The chat markdown renderer escaped
>to>
before checking for blockquote lines, so the blockquote branch was dead code and > quote showed as plain text. Fixed.
- Edits containing
$apply literally. Synthesizing the "after" text for an
edit_file diff used String.replace(old, new), which interprets $&, $$, $1 in the replacement — corrupting any edit whose new text contained $ (template literals, shell vars, regex). Now inserted verbatim.
- Link rendering hardened. The markdown escaper didn't escape
", so a
model-supplied link URL containing a quote could break out of the href attribute. Quotes are now entity-encoded.