docs/plans/2026-04-04-slate-browser-next-system-move.md
slate-browser state across:
/Users/zbeyens/git/plate-2/Users/zbeyens/git/slate-v2/Users/zbeyens/git/plate-2/docs.slate-browser docs, summarize state, and choose the strongest next system-level move.docs/ without losing existing docs/* content.docs.slate-browser / slate-v2.docs/ already contains active content under analysis/, plans/, solutions/, performance/, and table/.plans/, slate-browser/, slate-v2, slate-issues, and extra solutions/ subtrees.slate-browser public tranche is already landed in .tmp/slate-v2.openExample(...) readiness contract, then a renderer/input-policy gauntlet for zero-width and IME-sensitive behavior.slate-v2 for document truthslate-browser for browser proofplate-v2 for projections, pipelines, hosted services, layout systems, and productizationslate-browser is now explicit:
ready contracteditor.selection.select(...)editor.get.blockTexts() / assert.blockTexts(...)editor.snapshot()ready, selection.select(...), blockTexts, snapshot()get.selectedText()ProseMirror surfaced a real later API candidate:
editor.selection.bookmark() / capture()ready contracteditor.selection.select(...)editor.selection.collapse(...)editor.get.blockTexts()editor.assert.blockTexts(...)editor.snapshot()editor.get.selectedText()editor.assert.htmlEquals(..., options?)editor.clipboard.readText()
editor.clipboard.readHtml()surface.frame
surface.scopeeditor.locator.block(...)
editor.locator.text(...)editor.selection.capture(...)editor.selection.bookmark(...)editor.selection.resolve(...)editor.selection.restore(...)editor.selection.unref(...)RangeRef semantics exposed on the root
surface, not a fake Playwright-only snapshot alias.yarn test:slate-browser:e2e:localyarn test:slate-browser:bookmarks:localtask, learnings-researcher, goal workflow, and major-task.docs/ vs the former internal docs tree to map overlap before migration.docs/ and rewrote stale internal path references.slate-browser docs, learning docs, package files, and example tests.docs/slate-browser/next-system-move.md and linked it from the slate-browser and slate-v2 overview docs.plate-2 or slate.docs/analysis/editor-global-systems-objective.md and linked it from docs/slate-v2/overview.md.slate-browser helper shapes and added docs/slate-browser/next-api-candidates.md.docs/slate-browser/next-api-candidates-matrix.md.docs/slate-browser/four-way-api-deep-dive.md.slate-browser Playwright tranche in .tmp/slate-v2/packages/slate-browser/src/playwright/index.ts..tmp/slate-v2/playwright/integration/examples/slate-browser-helpers.test.ts..tmp/slate-v2/packages/slate-browser/README.md.slate-browser Playwright tranche in .tmp/slate-v2/packages/slate-browser/src/playwright/index.ts..tmp/slate-v2/playwright/integration/examples/slate-browser-helpers.test.ts.yarn workspace slate-browser testyarn lint:typescriptPLAYWRIGHT_BASE_URL=http://localhost:3200 yarn test:slate-browser:e2ePLAYWRIGHT_BASE_URL=http://localhost:3200 yarn test:slate-browser:imePLAYWRIGHT_BASE_URL=http://localhost:3200 yarn test:slate-browser:clipboardPLAYWRIGHT_BASE_URL=http://localhost:3200 yarn test:slate-browser:anchorsslate-browser Playwright tranche in .tmp/slate-v2/packages/slate-browser/src/playwright/index.ts..tmp/slate-v2/playwright/integration/examples/slate-browser-helpers.test.ts.Editable roots and slate-dom-v2 mounted roots so slate-browser can create real RangeRef-backed selection bookmarks..tmp/slate-v2/playwright/integration/examples/slate-browser-helpers.test.ts.http://localhost:3210 because the shared :3200 server was not a trustworthy target for app-runtime changes.yarn workspace slate-browser testyarn lint:typescriptROLLUP_PACKAGES=slate-browser,slate-react,slate-dom-v2 yarn build:rollupPLAYWRIGHT_BASE_URL=http://localhost:3210 yarn exec playwright test /Users/zbeyens/git/slate-v2/playwright/integration/examples/slate-browser-helpers.test.ts --project=chromium --grep "captured selection bookmarks" --workers=1scripts/run-slate-browser-local.sh and wiring fresh-server local commands in .tmp/slate-v2/package.json.yarn test:slate-browser:e2e:local.