Skip to content

chore: merge main into next - #3664

Draft
christianhg wants to merge 27 commits into
nextfrom
sync/main-into-next
Draft

christianhg wants to merge 27 commits into
nextfrom
sync/main-into-next

Conversation

@christianhg

@christianhg christianhg commented Nov 12, 2026 •

Copy link
Copy Markdown
Member

Brings main into next: the removal of the markdown package and the bump of the playground and doc examples to @portabletext/markdown ^2.9.4. Next already had its own copy of the removal. Both copies re-padded the same table in skills/portable-text-editor/SKILL.md differently, so that merge conflicted and resolves to next's version of the file, which has the same content. The bump merges cleanly.


Note

Medium Risk
Touches core editor value sync and patch emission; wrong handling of children could corrupt nested block-object data, though the change is narrowly scoped to non-text blocks and is heavily tested.

Overview
Fixes @portabletext/editor so block objects that define children as a normal array field (e.g. galleries, callouts with arrayField: 'children') no longer lose that data when syncing the engine. sync-machine now strips and manages children only for text blocks; values keeps all properties on non-text block objects. Containers should load and update without spurious patches, and insert/move/paste/undo paths keep nested content.

Adds broad regression tests (containers, history, paste, wire catalogue) and a changeset for the editor patch. thumbjar gains window.__selection() and richer recordInput telemetry (selection, composing, target ranges, defaultPrevented), with matching unit/device test updates for Japanese composition expectations.

Bumps @portabletext/markdown to ^2.9.4 in doc-examples and playground (lockfile).

Reviewed by Cursor Bugbot for commit 12ce7b7. Bugbot is set up for automated code reviews on this repo. Configure here.

@vercel

vercel Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
portable-text-editor-documentation Ready Ready Preview Nov 12, 2026 9:02pm UTC
portable-text-example-basic Ready Ready Preview Nov 12, 2026 9:02pm UTC
portable-text-playground Ready Ready Preview Nov 12, 2026 9:02pm UTC

Request Review

@vercel
vercel Bot temporarily deployed to Preview – portable-text-editor-documentation November 12, 2026 09:51 Inactive
@vercel
vercel Bot temporarily deployed to Preview – portable-text-playground November 12, 2026 09:51 Inactive
@changeset-bot

changeset-bot Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 48332bf

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 14 packages
Name Type
@portabletext/editor Patch
@portabletext/plugin-character-pair-decorator Patch
@portabletext/plugin-decorations Patch
@portabletext/plugin-dnd Patch
@portabletext/plugin-emoji-picker Patch
@portabletext/plugin-input-rule Patch
@portabletext/plugin-list-index Patch
@portabletext/plugin-markdown-shortcuts Patch
@portabletext/plugin-one-line Patch
@portabletext/plugin-paste-link Patch
@portabletext/plugin-table Patch
@portabletext/plugin-typeahead-picker Patch
@portabletext/plugin-typography Patch
@portabletext/toolbar Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions

github-actions Bot commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Bundle Stats

✅ No significant changes.

All scenario measurements (34)

🗺️ @portabletext/block-tools / @portabletext/block-tools · @portabletext/block-tools / @portabletext/block-tools/rules · @portabletext/editor / @portabletext/editor · @portabletext/editor / @portabletext/editor/behaviors · @portabletext/editor / @portabletext/editor/plugins · @portabletext/editor / @portabletext/editor/selectors · @portabletext/editor / @portabletext/editor/traversal · @portabletext/editor / @portabletext/editor/utils · @portabletext/editor / defineSchema · @portabletext/editor / useEditor · @portabletext/editor / typical · @portabletext/html / @portabletext/html · @portabletext/html / @portabletext/html/rules · @portabletext/html / htmlToPortableText · @portabletext/keyboard-shortcuts / @portabletext/keyboard-shortcuts · @portabletext/patches / @portabletext/patches · @portabletext/repair / @portabletext/repair · @portabletext/sanity-bridge / @portabletext/sanity-bridge · @portabletext/schema / @portabletext/schema · @portabletext/plugin-character-pair-decorator / @portabletext/plugin-character-pair-decorator · @portabletext/plugin-decorations / @portabletext/plugin-decorations · @portabletext/plugin-dnd / @portabletext/plugin-dnd · @portabletext/plugin-emoji-picker / @portabletext/plugin-emoji-picker · @portabletext/plugin-input-rule / @portabletext/plugin-input-rule · @portabletext/plugin-list-index / @portabletext/plugin-list-index · @portabletext/plugin-markdown-shortcuts / @portabletext/plugin-markdown-shortcuts · @portabletext/plugin-one-line / @portabletext/plugin-one-line · @portabletext/plugin-paste-link / @portabletext/plugin-paste-link · @portabletext/plugin-typeahead-picker / @portabletext/plugin-typeahead-picker · @portabletext/plugin-typography / @portabletext/plugin-typography · @portabletext/toolbar / @portabletext/toolbar · @portabletext/toolbar / typical · @portabletext/plugin-table / @portabletext/plugin-table · @portabletext/plugin-table / @portabletext/plugin-table/ui · Artifacts

Scenario Kind Bundle (raw / gzip) Gzip change Import time Import change
⚪ @portabletext/block-tools / @portabletext/block-tools export 91.8 KB / 12.9 KB None 9 ms +0 ms, +1.3%
⚪ @portabletext/block-tools / @portabletext/block-tools/rules export 15.2 KB / 2.1 KB None 3 ms +0 ms, +1.5%
⚪ @portabletext/editor / @portabletext/editor export 1.05 MB / 133.7 KB +899 B, +0.7% 42 ms +0 ms, +0.9%
⚪ @portabletext/editor / @portabletext/editor/behaviors export 4.3 KB / 147 B None 1 ms -0 ms, -0.4%
⚪ @portabletext/editor / @portabletext/editor/plugins export 5.1 KB / 645 B None 4 ms +0 ms, +0.4%
⚪ @portabletext/editor / @portabletext/editor/selectors export 101.1 KB / 10.1 KB None 8 ms +0 ms, +0.8%
⚪ @portabletext/editor / @portabletext/editor/traversal export 50.9 KB / 4.9 KB None 4 ms +0 ms, +8.8%
⚪ @portabletext/editor / @portabletext/editor/utils export 37.1 KB / 4.7 KB None 4 ms +0 ms, +0.3%
⚪ @portabletext/editor / defineSchema consumer 658 B / 69 B None None None
⚪ @portabletext/editor / typical consumer 1.04 MB / 133.5 KB +900 B, +0.7% None None
⚪ @portabletext/editor / useEditor consumer 1.6 KB / 248 B None None None
⚪ @portabletext/html / @portabletext/html export 69.3 KB / 10.1 KB None 4 ms +0 ms, +5.3%
⚪ @portabletext/html / @portabletext/html/rules export 15.2 KB / 2.1 KB None 3 ms +0 ms, +1.7%
⚪ @portabletext/html / htmlToPortableText consumer 69.3 KB / 10.1 KB None None None
⚪ @portabletext/keyboard-shortcuts / @portabletext/keyboard-shortcuts export 7.0 KB / 858 B None 1 ms -0 ms, -3.1%
⚪ @portabletext/patches / @portabletext/patches export 50.0 KB / 7.7 KB None 2 ms -0 ms, -5.7%
⚪ @portabletext/plugin-character-pair-decorator / @portabletext/plugin-character-pair-decorator export 124.1 KB / 15.8 KB None None None
⚪ @portabletext/plugin-decorations / @portabletext/plugin-decorations export 16.4 KB / 2.3 KB None None None
⚪ @portabletext/plugin-dnd / @portabletext/plugin-dnd export 10.4 KB / 1.8 KB None None None
⚪ @portabletext/plugin-emoji-picker / @portabletext/plugin-emoji-picker export 150.1 KB / 18.6 KB None None None
⚪ @portabletext/plugin-input-rule / @portabletext/plugin-input-rule export 124.2 KB / 15.8 KB None None None
⚪ @portabletext/plugin-list-index / @portabletext/plugin-list-index export 7.5 KB / 1.2 KB None None None
⚪ @portabletext/plugin-markdown-shortcuts / @portabletext/plugin-markdown-shortcuts export 136.4 KB / 17.6 KB None None None
⚪ @portabletext/plugin-one-line / @portabletext/plugin-one-line export 2.6 KB / 608 B None None None
⚪ @portabletext/plugin-paste-link / @portabletext/plugin-paste-link export 4.3 KB / 1.0 KB None None None
⚪ @portabletext/plugin-table / @portabletext/plugin-table export 61.1 KB / 7.1 KB None None None
⚪ @portabletext/plugin-table / @portabletext/plugin-table/ui export 114.6 KB / 19.5 KB None None None
⚪ @portabletext/plugin-typeahead-picker / @portabletext/plugin-typeahead-picker export 166.2 KB / 19.9 KB None None None
⚪ @portabletext/plugin-typography / @portabletext/plugin-typography export 131.1 KB / 17.0 KB None None None
⚪ @portabletext/repair / @portabletext/repair export 4.5 KB / 636 B None 2 ms -0 ms, -1.3%
⚪ @portabletext/sanity-bridge / @portabletext/sanity-bridge export 27.0 KB / 3.0 KB None 2 ms -0 ms, -0.6%
⚪ @portabletext/schema / @portabletext/schema export 9.9 KB / 1.2 KB None 1 ms +0 ms, +5.9%
⚪ @portabletext/toolbar / @portabletext/toolbar export 153.3 KB / 17.3 KB None None None
⚪ @portabletext/toolbar / typical consumer 145.6 KB / 16.9 KB None None None

Significant means at least 1.0 KB and 1% gzip, or at least 5 ms and 10% import time.

@vercel
vercel Bot temporarily deployed to Preview – portable-text-editor-documentation November 12, 2026 10:14 Inactive
@socket-security

socket-security Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedfind-cache-directory@​6.0.01001009879100
Updated@​portabletext/​markdown@​2.9.3 ⏵ 2.9.4100100100100100

View full report

An `insert.break` mid-span in a three-span block splits the block and
makes the moved spans reappear under their original keys in the new
block, the shape the interpreter's key-reappearance oracle sweeps.
No existing capture covers it. The snapshot is the fixture; consumers
read `__fixtures__/wire-catalogue/block-split-multi-span.json`.

`@portabletext/steps` reads the shared catalogue across packages for
conformance and cannot regenerate captures itself (regeneration needs
`createTestEditor`), so the scenario lands editor-side.
The parent now kills the guard's process group whenever the guard exits, so a stage cannot outlive a guard that was killed before it could clean up. A guard started without IPC refuses to run.
…nt they had

The prep's children get THUMBJAR_OUT_DIR and the other prep variables again, so the Japanese dictionary check writes its screenshot into the out dir. --out-dir and --page-dir resolve against the caller's directory once, and every child gets the absolute path.
The jar went to .cache inside the installed thumbjar package, which an install from npm puts in node_modules, a read-only store or a zip. It now goes to node_modules/.cache/thumbjar in the nearest package above the working directory, or under CACHE_DIR when that is set.
…ry is found

find-cache-dir is deprecated in favour of find-cache-directory, which behaves the same. The README now says when fetch-u2-jar cannot find a cache directory, and the outside-a-package test can no longer download.

This branch was successfully deployed

3 active deployments
Preview – portable-text-editor-documentation — 48332bf1 Deployed Nov 12, 2026 by vercel[bot]
Preview – portable-text-playground — 48332bf1 Deployed Nov 12, 2026 by vercel[bot]
Preview – portable-text-example-basic — 48332bf1 Deployed Nov 12, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant