unstale

npm / @assistant-ui/react-streamdown

@assistant-ui/react-streamdown

What changed in @assistant-ui/react-streamdown 0.3, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-11.

3 breaking5 new APIs and options4 performance34 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

@assistant-ui/react-streamdown 0.346 changes

Breaking changes 3

New APIs and options 5

  • Preprocess helpers are available from this new subpath, and @assistant-ui/react-streamdown re-exports the same functions instead of carrying a copy.

    0.3.20release notes

  • The package re-exports remark-rehype's Options type as RemarkRehypeOptions.

    0.3.17release notes

  • Adds an option to turn off comparison-operator escapes reaching settled text without disabling incomplete-Markdown repair.

    0.3.14release notes

  • Adds an option to turn off single-tilde escapes reaching settled text without disabling incomplete-Markdown repair.

    0.3.14release notes

  • The code-fence contract, including CodeHeader and SyntaxHighlighter prop types, the by-language override entry, and the language-class parser, now lives on this subpath; react-streamdown re-exports the types from there.

    0.3.12release notes

Performance 4

  • Nested raw pre markup no longer causes quadratic rerender comparisons.

    0.3.17release notes

  • Memoization avoids parsing the same accumulated text twice per token, including when callers pass an inline remarkPlugins array.

    0.3.14release notes

  • The boundary scan is limited to each line, keeping the scan linear in the message rather than rescanning remaining text for every line.

    0.3.14release notes

  • When defer is off, streamed tokens no longer trigger a second render pass.

    0.3.13release notes

Fixes and other changes 34

  • Keeps the repair aligned with remend 1.4 code spans so a comparison after an escaped backtick still gets escaped.

    0.3.19release notes

  • Comparison escapes stay within each line without splitting settled prose or slowing down on blank lines.

    0.3.18release notes

  • Preprocessing now preserves currency and math delimiters inside HTML blocks.

    0.3.18release notes

  • Streaming repair now preserves raw HTML bodies inside list and blockquote containers.

    0.3.18release notes

  • Quoted code fences and $$ blocks now end at their own blockquote boundary, preventing deeper lines from closing them early and blank or shallower lines from leaving them open.

    0.3.17release notes

  • Changing the code header now updates already-rendered code blocks in place, without disturbing their DOM or state.

    0.3.17release notes

  • Changing the highlighter now updates already-rendered code blocks in place, without disturbing their DOM or state.

    0.3.17release notes

  • Changing a language-specific component entry now updates already-rendered code blocks in place, without disturbing their DOM or state.

    0.3.17release notes

  • Fences and $$ blocks opened on list marker lines are recognized, preventing escaped content and closing markers that disrupt subsequent streaming repair.

    0.3.17release notes

  • A rewrite to already-revealed text no longer restarts smooth streaming.

    0.3.17release notes

  • Streaming escapes stay out of fences and $$ blocks, including blocks opened after paragraph lines or nested in list items; interrupted paragraphs settle correctly.

    0.3.17release notes

  • Streaming $$ math now ends where remark-math ends it, preventing leaked escapes and stray closing markers.

    0.3.17release notes

  • Streaming repair no longer escapes text inside raw HTML blocks.

    0.3.17release notes

  • Streaming tail repair no longer runs after a message finishes.

    0.3.17release notes

  • An unmatched mid-line $$ no longer pairs with later display math.

    0.3.17release notes

  • Settled code blocks no longer rerun custom syntax highlighters on streamed tokens or when animated messages complete; changed fence metadata is passed to the highlighter.

    0.3.16release notes

  • Remend escapes are kept out of settled ~~~ fences and $$ math blocks.

    0.3.15release notes

  • A backtick run is treated as a fence only when it starts a line, preventing an info string from closing a fenced block.

    0.3.14release notes

  • Rehype plugin markup is preserved in code blocks, and code headers receive the complete code text in both Markdown renderers.

    0.3.14release notes

  • Currency and math are preserved inside indented tilde fences.

    0.3.14release notes

  • Earlier blocks preserve text escapes and custom handler changes without completing or deleting unfinished Markdown; handlers receive earlier text and the final block separately.

    0.3.14release notes

  • Fenced display bodies stay inside their original list item or blockquote instead of rendering outside the container.

    0.3.14release notes

  • Memoized children update when their text or props change.

    0.3.14release notes

  • Sparse suggestions are compacted into a dense list before per-suggestion lookup, avoiding incorrect equality results from sparse-array holes.

    0.3.14release notes

  • The currency walker reads tilde fences, and an unclosed fence ends with its blockquote instead of consuming the rest of the input.

    0.3.14release notes

  • User pre and code components render through the code adapter without remounting code blocks on every render; raw pre elements without a code child retain their element.

    0.3.14release notes

  • Bracket-delimited math no longer swallows the rest of the message.

    0.3.13release notes

  • Code spans and fences remain inert when math delimiters are normalized.

    0.3.13release notes

  • Fenced code now updates when streamed content changes.

    0.3.12release notes

  • Moved to dependencies so published declarations reference hast by name instead of a broken store-relative path.

    0.3.12release notes

  • Preserves currency inside one- and two-backtick code spans that contain longer backtick runs.

    0.3.11release notes

  • User rehypePlugins are merged after the security hardening pipeline instead of being dropped.

    0.3.9release notes

  • Streamdown sanitization extensions are preserved when security is enabled.

    0.3.9release notes

  • Inline math that opens with a digit is kept out of currency escaping.

    0.3.7release notes