docs/plans/2026-04-15-slate-v2-decoration-wave-9-execution.md
Execute Wave 9 from the decoration roadmap: core change metadata and touched runtime-id publication.
packages/slate core listener/change publicationEditor.subscribe(...) consumersdocs/shared/agent-tiers.md is missing in this reposnapshot to listenersslate-react mostly ignore payloads and just
recompute broadlyslate-history is the highest-risk existing consumer because it reacts to
selection/content deltas from snapshot subscriptionsSnapshotListener(snapshot, change?)SnapshotChange record with:
classesdirtyPathsdirtyScopetouchedRuntimeIdschildrenChangedselectionChangedmarksChangedoperationsreplaceEpochinsert_text / remove_text[] for selection-only and marks-only changesnull for replace and broad structural invalidationbuildSnapshotChange(...) now publishes once from both the fast text path
and the transaction publish pathEditor.subscribe(...) consumers across:
slate-historySlateuseSlateSelectorpackages/slate/src/interfaces/editor.tspackages/slate/src/interfaces.tspackages/slate/src/index.tspackages/slate/src/core/transaction-helpers.tspackages/slate/src/core/apply.tspackages/slate/src/core.tspackages/slate/test/snapshot-contract.tsdocs/api/nodes/editor.mdpackages/slate-react/src/components/editable.tsxplaywright/integration/examples/markdown-preview.test.tspnpm exec mocha --require ./config/babel/register.cjs ./packages/slate/test/snapshot-contract.ts → 188 passingpnpm exec mocha --require ./config/babel/register.cjs ./packages/slate-history/test/history-contract.ts → 35 passingpnpm installpnpm turbo build --filter=./packages/slatepnpm turbo typecheck --filter=./packages/slatepnpm lint:fixbash ./scripts/run-slate-browser-local.sh 3100 /examples/markdown-preview "pnpm exec playwright test playwright/integration/examples/markdown-preview.test.ts --project=chromium --workers=1" → 3 passedlsp_diagnostics on the affected Slate files → 0 errorsAPPROVED