diff --git a/.changeset/block-code-rest-props.md b/.changeset/block-code-rest-props.md
deleted file mode 100644
index 8f6fc2b8..00000000
--- a/.changeset/block-code-rest-props.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"streamdown": patch
----
-
-Forward rest props through block code. The `code` component spread its rest props on the inline branch and dropped them on the block branch, so an attribute a consumer put on a fenced code element never reached the DOM. `CodeBlockBody` now takes part in that comparison, so a forwarded attribute updates instead of keeping the value it first rendered with.
diff --git a/.changeset/calm-taxis-smile.md b/.changeset/calm-taxis-smile.md
deleted file mode 100644
index f97f750e..00000000
--- a/.changeset/calm-taxis-smile.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"streamdown": patch
----
-
-Fix `dir="auto"` in static mode to detect text direction per semantic block (instead of once for the whole document), keep code LTR, and use content-majority direction for mixed-script prose.
diff --git a/.changeset/clean-walls-agree.md b/.changeset/clean-walls-agree.md
deleted file mode 100644
index 9c420639..00000000
--- a/.changeset/clean-walls-agree.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"streamdown": patch
----
-
-Serialize Mermaid SVGs before download so HTML-style tags render as valid SVG markup.
diff --git a/.changeset/common-streets-unite.md b/.changeset/common-streets-unite.md
deleted file mode 100644
index f5230559..00000000
--- a/.changeset/common-streets-unite.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"streamdown": patch
----
-
-Added accessibility improvements for code block controls by adding aria labels to copy/download buttons and announcing copy success state for screen readers.
diff --git a/.changeset/fix-animate-serial-timeline.md b/.changeset/fix-animate-serial-timeline.md
deleted file mode 100644
index 2c05a0fd..00000000
--- a/.changeset/fix-animate-serial-timeline.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-"streamdown": minor
----
-
-fix(animate): serialize streaming animation across blocks
-
-Word stagger now runs on a shared wall-clock timeline so sibling sections no longer fade in on top of each other during streaming. Related cleanup: trailing spaces stay inside animated spans (no early link underlines), animate wrappers drop when streaming ends, already-seen text stays steady under StrictMode, and un-animated streaming is no longer deferred behind a starvable transition.
-
-Inspired by #493, #531, and #536.
-
-Fixes #482
-Fixes #535
-Fixes #550
-Fixes #570
diff --git a/.changeset/fix-custom-tags-markdown.md b/.changeset/fix-custom-tags-markdown.md
deleted file mode 100644
index 57ef2af4..00000000
--- a/.changeset/fix-custom-tags-markdown.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-"streamdown": patch
----
-
-fix(custom-tags): render Markdown inside custom tags with multiline content
-
-Adds a preprocessing step (`preprocessCustomTags`) that normalizes multiline
-custom tags into a blank-line-sandwiched HTML block so CommonMark interrupts
-the raw-HTML block and parses the nested content as Markdown, with
-`parseMarkdownIntoBlocks` re-merging the interrupted open/content/close tokens
-so streaming still treats the whole custom tag as one block. Previously, when a
-custom tag contained multiline content (e.g. `
` element. This fixes the React hydration error "In HTML, `
`" that occurred when a link with link safety enabled appeared inside a paragraph.
diff --git a/.changeset/fix-lookbehind-safari-16-crash.md b/.changeset/fix-lookbehind-safari-16-crash.md
deleted file mode 100644
index 6ff043b8..00000000
--- a/.changeset/fix-lookbehind-safari-16-crash.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-"remend": patch
----
-
-Fix crash on iOS 16.0-16.2 / Safari < 16.3 by removing the lookbehind assertion from the single-tilde escape pattern (#519).
-
-JSCore on those versions doesn't support lookbehind (`(?<=...)`) and throws a `SyntaxError` while the module is being evaluated, before any user code runs, so there is no way to catch it. The preceding word character is now captured and written back in the replacement instead.
diff --git a/.changeset/fix-mermaid-aria-hidden.md b/.changeset/fix-mermaid-aria-hidden.md
deleted file mode 100644
index 43b62241..00000000
--- a/.changeset/fix-mermaid-aria-hidden.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-'streamdown': patch
----
-
-fix(mermaid): add aria-hidden to decorative SVG icons in mermaid toolbar buttons
-
-Mermaid toolbar buttons (download, fullscreen, pan/zoom controls) already have
-accessible titles/labels, but the inline SVG icons were exposed to the accessibility
-tree causing "Content with images must be labeled" warnings. Added aria-hidden={true}
-to all decorative icon elements in download-button, fullscreen-button, and pan-zoom
-components.
-
-Fixes #485
diff --git a/.changeset/fix-mermaid-hard-dep.md b/.changeset/fix-mermaid-hard-dep.md
deleted file mode 100644
index fe47f067..00000000
--- a/.changeset/fix-mermaid-hard-dep.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-"streamdown": patch
----
-
-fix(deps): remove `mermaid` as a hard runtime dependency
-
-This patch replaces the type import with a local structural type for `MermaidConfig` so no type-level coupling to the `mermaid` package remains in the distributed typings. Users who want fully-typed mermaid config can still `import type { MermaidConfig } from 'mermaid'` themselves; the structural type is compatible.
-
-Fixes #501
diff --git a/.changeset/fix-remend-intraword-asterisks.md b/.changeset/fix-remend-intraword-asterisks.md
deleted file mode 100644
index 08a335e6..00000000
--- a/.changeset/fix-remend-intraword-asterisks.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"remend": patch
----
-
-Preserve complete italic emphasis when a closing asterisk is followed by word text.
diff --git a/.changeset/fix-shiki-theme-priority.md b/.changeset/fix-shiki-theme-priority.md
deleted file mode 100644
index 9a4e6c2a..00000000
--- a/.changeset/fix-shiki-theme-priority.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-"streamdown": patch
----
-
-Fix: `shikiTheme` prop priority chain is now fully reachable.
-
-Previously, `shikiTheme` had a default value in the props destructuring (`= defaultShikiTheme`), making the `plugins?.code?.getThemes()` fallback unreachable in both orderings. The fix removes the destructuring default and moves it to the end of the nullish coalescing chain, so all three levels are reachable:
-
-1. Explicit `shikiTheme` prop (highest priority)
-2. Code plugin's `getThemes()` (second priority)
-3. Built-in `defaultShikiTheme` (final fallback)
diff --git a/.changeset/fix-shiki-type-declarations.md b/.changeset/fix-shiki-type-declarations.md
deleted file mode 100644
index 38fb891c..00000000
--- a/.changeset/fix-shiki-type-declarations.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-"streamdown": patch
----
-
-Fix type declarations requiring a `shiki` install.
-
-`BundledLanguage`, `BundledTheme`, and `ThemeRegistrationAny` are now defined locally and re-exported from `streamdown`, so consumers can type-check without installing `shiki`. Runtime highlighting remains in `@streamdown/code`, which still depends on `shiki`.
diff --git a/.changeset/gold-feet-strive.md b/.changeset/gold-feet-strive.md
deleted file mode 100644
index e3187204..00000000
--- a/.changeset/gold-feet-strive.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-"streamdown": patch
----
-
-Fix mermaid fullscreen overlay accessibility and add stable selector
-
-- Add `data-streamdown="mermaid-fullscreen"` to fullscreen overlay for stable CSS targeting
-- Update fullscreen overlay semantics to match table fullscreen behavior
-- Change `role` from `button` to `dialog`
-- Add `aria-modal="true"` for correct screen reader modal behavior
-- Improve accessibility consistency between mermaid and table fullscreen overlays
diff --git a/.changeset/gold-onions-fly.md b/.changeset/gold-onions-fly.md
deleted file mode 100644
index 579b418f..00000000
--- a/.changeset/gold-onions-fly.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"streamdown": patch
----
-
-fix issue with list markers, task-list checkboxes, images, and hr animations
diff --git a/.changeset/image-controls.md b/.changeset/image-controls.md
deleted file mode 100644
index 44f4194c..00000000
--- a/.changeset/image-controls.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-"streamdown": patch
----
-
-feat: add image control options (`controls.image`) to disable hover overlay and download button on images
-
-Add `image` to the `controls` prop, matching existing `code`, `table`, and `mermaid` patterns:
-- `controls={{ image: false }}` hides the hover overlay and download button
-- `controls={{ image: { download: false } }}` keeps the hover overlay but hides the download button
diff --git a/.changeset/latex-math-emphasis.md b/.changeset/latex-math-emphasis.md
deleted file mode 100644
index be4b5dfb..00000000
--- a/.changeset/latex-math-emphasis.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"remend": patch
----
-
-Treat LaTeX paren and bracket math as protected math contexts during emphasis completion.
diff --git a/.changeset/light-moose-travel.md b/.changeset/light-moose-travel.md
deleted file mode 100644
index fbae4833..00000000
--- a/.changeset/light-moose-travel.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-"streamdown": patch
----
-
-Fix accessibility warnings for Mermaid toolbar icon buttons:
-
-- Add `aria-hidden="true"` to all decorative SVG icons to hide them from screen readers
-- Add `aria-label` attributes to all icon-only buttons for proper screen reader announcements
-- Add translation keys (`zoomIn`, `zoomOut`, `resetView`) for zoom controls
diff --git a/.changeset/memo-render-equivalence.md b/.changeset/memo-render-equivalence.md
deleted file mode 100644
index 2e91b3d7..00000000
--- a/.changeset/memo-render-equivalence.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"streamdown": patch
----
-
-Re-render memoized markdown components when their rendered output changes. The comparators compared source position, so a replacement of the same length — occupying the same lines and columns — was treated as unchanged and the component kept rendering the previous text.
diff --git a/.changeset/mermaid-fullscreen-download.md b/.changeset/mermaid-fullscreen-download.md
deleted file mode 100644
index 62a18a71..00000000
--- a/.changeset/mermaid-fullscreen-download.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"streamdown": patch
----
-
-fix(mermaid): render the download and copy controls inside the Mermaid fullscreen portal so they're reachable when the diagram is expanded
diff --git a/.changeset/quadratic-code-block-scan.md b/.changeset/quadratic-code-block-scan.md
deleted file mode 100644
index 72c1e559..00000000
--- a/.changeset/quadratic-code-block-scan.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"remend": patch
----
-
-Fix quadratic code-block scanning. `isInsideCodeBlock` now builds a linear-time position lookup (cached per text) instead of rescanning the whole prefix on every call, so handlers that probe many positions no longer degrade quadratically. Repairing an unclosed, bracket-heavy 58k-character code block drops from ~915ms to ~0.4ms per call.
diff --git a/.changeset/scrollable-code-blocks.md b/.changeset/scrollable-code-blocks.md
deleted file mode 100644
index 5a596641..00000000
--- a/.changeset/scrollable-code-blocks.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"streamdown": minor
----
-
-Add `codeBlockMaxHeight` and `tableMaxHeight` props with streaming auto-scroll
diff --git a/.changeset/shaggy-terms-grin.md b/.changeset/shaggy-terms-grin.md
deleted file mode 100644
index aed6e08a..00000000
--- a/.changeset/shaggy-terms-grin.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-"streamdown": patch
----
-
-Fix table copy and download actions not working in fullscreen mode.
-
-- Support table lookup inside the fullscreen portal container.
-- Restore copy and download functionality for fullscreen tables.
-- Keep existing inline table controls behavior unchanged.
diff --git a/.changeset/three-squids-behave.md b/.changeset/three-squids-behave.md
deleted file mode 100644
index ce68ebad..00000000
--- a/.changeset/three-squids-behave.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-"streamdown": patch
----
-
-- Fixed table copy losing line breaks inside cells containing `
` elements.
-- Preserved multiline content during table data extraction.
-- Improved copied Markdown, CSV, and TSV output consistency for multiline cells.
-- Added coverage for `
` handling in table extraction.
diff --git a/.changeset/upset-roses-lick.md b/.changeset/upset-roses-lick.md
deleted file mode 100644
index 1a44d494..00000000
--- a/.changeset/upset-roses-lick.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-"streamdown": patch
----
-
-- Fix code block line wrapping when line numbers are disabled.
-- Ensure code block lines are rendered as block elements regardless of the `lineNumbers` setting.
-- Prevent multiple code lines from collapsing into a single visual line when `lineNumbers={false}`.
diff --git a/packages/remend/CHANGELOG.md b/packages/remend/CHANGELOG.md
index 3fde056e..75d72331 100644
--- a/packages/remend/CHANGELOG.md
+++ b/packages/remend/CHANGELOG.md
@@ -1,5 +1,17 @@
# remend
+## 1.3.1
+
+### Patch Changes
+
+- a99d675: Fix crash on iOS 16.0-16.2 / Safari < 16.3 by removing the lookbehind assertion from the single-tilde escape pattern (#519).
+
+ JSCore on those versions doesn't support lookbehind (`(?<=...)`) and throws a `SyntaxError` while the module is being evaluated, before any user code runs, so there is no way to catch it. The preceding word character is now captured and written back in the replacement instead.
+
+- 9f96409: Preserve complete italic emphasis when a closing asterisk is followed by word text.
+- 8093f2a: Treat LaTeX paren and bracket math as protected math contexts during emphasis completion.
+- 57c3089: Fix quadratic code-block scanning. `isInsideCodeBlock` now builds a linear-time position lookup (cached per text) instead of rescanning the whole prefix on every call, so handlers that probe many positions no longer degrade quadratically. Repairing an unclosed, bracket-heavy 58k-character code block drops from ~915ms to ~0.4ms per call.
+
## 1.3.0
### Minor Changes
diff --git a/packages/remend/package.json b/packages/remend/package.json
index 18d33703..4b736e1a 100644
--- a/packages/remend/package.json
+++ b/packages/remend/package.json
@@ -1,6 +1,6 @@
{
"name": "remend",
- "version": "1.3.0",
+ "version": "1.3.1",
"description": "Self-healing markdown. Intelligently parses and styles incomplete Markdown blocks.",
"homepage": "https://streamdown.ai/docs/termination",
"repository": {
diff --git a/packages/streamdown/CHANGELOG.md b/packages/streamdown/CHANGELOG.md
index 918c8351..e1b91269 100644
--- a/packages/streamdown/CHANGELOG.md
+++ b/packages/streamdown/CHANGELOG.md
@@ -1,5 +1,121 @@
# streamdown
+## 2.6.0
+
+### Minor Changes
+
+- 49bd143: fix(animate): serialize streaming animation across blocks
+
+ Word stagger now runs on a shared wall-clock timeline so sibling sections no longer fade in on top of each other during streaming. Related cleanup: trailing spaces stay inside animated spans (no early link underlines), animate wrappers drop when streaming ends, already-seen text stays steady under StrictMode, and un-animated streaming is no longer deferred behind a starvable transition.
+
+ Inspired by #493, #531, and #536.
+
+ Fixes #482
+ Fixes #535
+ Fixes #550
+ Fixes #570
+
+- 5faa6fa: Add `codeBlockMaxHeight` and `tableMaxHeight` props with streaming auto-scroll
+
+### Patch Changes
+
+- 725e390: Forward rest props through block code. The `code` component spread its rest props on the inline branch and dropped them on the block branch, so an attribute a consumer put on a fenced code element never reached the DOM. `CodeBlockBody` now takes part in that comparison, so a forwarded attribute updates instead of keeping the value it first rendered with.
+- 7e82400: Fix `dir="auto"` in static mode to detect text direction per semantic block (instead of once for the whole document), keep code LTR, and use content-majority direction for mixed-script prose.
+- fb5d7b9: Serialize Mermaid SVGs before download so HTML-style tags render as valid SVG markup.
+- fe38e75: Added accessibility improvements for code block controls by adding aria labels to copy/download buttons and announcing copy success state for screen readers.
+- b25dbdb: fix(custom-tags): render Markdown inside custom tags with multiline content
+
+ Adds a preprocessing step (`preprocessCustomTags`) that normalizes multiline
+ custom tags into a blank-line-sandwiched HTML block so CommonMark interrupts
+ the raw-HTML block and parses the nested content as Markdown, with
+ `parseMarkdownIntoBlocks` re-merging the interrupted open/content/close tokens
+ so streaming still treats the whole custom tag as one block. Previously, when a
+ custom tag contained multiline content (e.g. `
` element. This fixes the React hydration error "In HTML, `
`" that occurred when a link with link safety enabled appeared inside a paragraph.
+- 2733922: fix(mermaid): add aria-hidden to decorative SVG icons in mermaid toolbar buttons
+
+ Mermaid toolbar buttons (download, fullscreen, pan/zoom controls) already have
+ accessible titles/labels, but the inline SVG icons were exposed to the accessibility
+ tree causing "Content with images must be labeled" warnings. Added aria-hidden={true}
+ to all decorative icon elements in download-button, fullscreen-button, and pan-zoom
+ components.
+
+ Fixes #485
+
+- 8d36719: fix(deps): remove `mermaid` as a hard runtime dependency
+
+ This patch replaces the type import with a local structural type for `MermaidConfig` so no type-level coupling to the `mermaid` package remains in the distributed typings. Users who want fully-typed mermaid config can still `import type { MermaidConfig } from 'mermaid'` themselves; the structural type is compatible.
+
+ Fixes #501
+
+- ea02609: Fix: `shikiTheme` prop priority chain is now fully reachable.
+
+ Previously, `shikiTheme` had a default value in the props destructuring (`= defaultShikiTheme`), making the `plugins?.code?.getThemes()` fallback unreachable in both orderings. The fix removes the destructuring default and moves it to the end of the nullish coalescing chain, so all three levels are reachable:
+
+ 1. Explicit `shikiTheme` prop (highest priority)
+ 2. Code plugin's `getThemes()` (second priority)
+ 3. Built-in `defaultShikiTheme` (final fallback)
+
+- 9813dd6: Fix type declarations requiring a `shiki` install.
+
+ `BundledLanguage`, `BundledTheme`, and `ThemeRegistrationAny` are now defined locally and re-exported from `streamdown`, so consumers can type-check without installing `shiki`. Runtime highlighting remains in `@streamdown/code`, which still depends on `shiki`.
+
+- d893759: Fix mermaid fullscreen overlay accessibility and add stable selector
+
+ - Add `data-streamdown="mermaid-fullscreen"` to fullscreen overlay for stable CSS targeting
+ - Update fullscreen overlay semantics to match table fullscreen behavior
+ - Change `role` from `button` to `dialog`
+ - Add `aria-modal="true"` for correct screen reader modal behavior
+ - Improve accessibility consistency between mermaid and table fullscreen overlays
+
+- 79c8575: fix issue with list markers, task-list checkboxes, images, and hr animations
+- a1a7142: feat: add image control options (`controls.image`) to disable hover overlay and download button on images
+
+ Add `image` to the `controls` prop, matching existing `code`, `table`, and `mermaid` patterns:
+
+ - `controls={{ image: false }}` hides the hover overlay and download button
+ - `controls={{ image: { download: false } }}` keeps the hover overlay but hides the download button
+
+- b250038: Fix accessibility warnings for Mermaid toolbar icon buttons:
+
+ - Add `aria-hidden="true"` to all decorative SVG icons to hide them from screen readers
+ - Add `aria-label` attributes to all icon-only buttons for proper screen reader announcements
+ - Add translation keys (`zoomIn`, `zoomOut`, `resetView`) for zoom controls
+
+- 89c6877: Re-render memoized markdown components when their rendered output changes. The comparators compared source position, so a replacement of the same length — occupying the same lines and columns — was treated as unchanged and the component kept rendering the previous text.
+- e7bdf57: fix(mermaid): render the download and copy controls inside the Mermaid fullscreen portal so they're reachable when the diagram is expanded
+- 8f02c09: Fix table copy and download actions not working in fullscreen mode.
+
+ - Support table lookup inside the fullscreen portal container.
+ - Restore copy and download functionality for fullscreen tables.
+ - Keep existing inline table controls behavior unchanged.
+
+- f46cd3c: - Fixed table copy losing line breaks inside cells containing `
` elements.
+ - Preserved multiline content during table data extraction.
+ - Improved copied Markdown, CSV, and TSV output consistency for multiline cells.
+ - Added coverage for `
` handling in table extraction.
+- dc3f1d2: - Fix code block line wrapping when line numbers are disabled.
+ - Ensure code block lines are rendered as block elements regardless of the `lineNumbers` setting.
+ - Prevent multiple code lines from collapsing into a single visual line when `lineNumbers={false}`.
+- Updated dependencies [a99d675]
+- Updated dependencies [9f96409]
+- Updated dependencies [8093f2a]
+- Updated dependencies [57c3089]
+ - remend@1.3.1
+
## 2.5.0
### Minor Changes
diff --git a/packages/streamdown/package.json b/packages/streamdown/package.json
index ae7f7e33..9c8b1caf 100644
--- a/packages/streamdown/package.json
+++ b/packages/streamdown/package.json
@@ -1,6 +1,6 @@
{
"name": "streamdown",
- "version": "2.5.0",
+ "version": "2.6.0",
"description": "A drop-in replacement for react-markdown, designed for AI-powered streaming.",
"homepage": "https://streamdown.ai",
"repository": {