docs/plans/2026-04-03-slate-dom-v2-zero-width-shape-strategy-proof-plan.md
Prove the next honest slice of the larger sentinel-strategy question:
slate-dom-v2 bridge can already support is viableThe first real proof should not try to remove sentinels globally.
It should:
-style line-break placeholders shape, but IME-sensitive empty
inline/void/start-of-block cases still keep sentinel text for nowGround the legacy DOM shape and current v2 bridge tolerance.
Add red tests for placeholder bridge behavior.
Implement only the missing bridge tolerance if needed.
Verify, deslop, re-verify, architect review, cleanup.
string.tsx zero-width renderingdom-editor.ts zero-width DOM translation -style line-break placeholders already work through the
slate-dom-v2 bridge before pretending to redesign the whole sentinel storytoDOMPoint over line-break placeholderstoDOMRange over line-break placeholderstoSlatePoint from both [br, 0] and [zeroWidth, 1] -style line-break placeholders with no
product-code changes requiredAPPROVEzsh -lc 'yarn workspace slate-dom-v2 test'zsh -lc 'yarn build:rollup'zsh -lc 'yarn lint:typescript'0 on changed files