docs/plans/2026-04-11-slate-v2-ime-mobile-browser-zero-regression-rc-consensus-plan.md
slate-v2 intentionally cut.slate-v2 browser proof is strong on Chromium IME paths, but weak
on real Android, iOS Safari, Firefox, and richer focus/composition
interactions.Pros:
Cons:
Status:
Pros:
Cons:
Status:
Pros:
Cons:
Status:
Legacy Slate React had platform-specific and browser-specific weird-input patches:
Current slate-v2 has:
EditableReactEditor / DOMBridge helper surfaceslate-browser helper layerThat is not enough to claim zero regression on every relied-on weird-input surface.
Day 0 rule:
reopened-under-challenge in the live
RC docs before any recovery work startsExecution authority:
Publication authority:
Justified omission approval rule:
justified omission by one note in the file
ledgerIn scope:
slate-react browser/input behavior-bearing
filesslate-v2 equivalents or replacementsOut of scope:
Run a behavior-ledger-first legacy-vs-v2 browser/input review and treat missing behavior-bearing proof rows as immediate RC recovery work.
It is the only option that matches the clarified spec without quietly lowering the release standard.
Deliver:
[x] / [ ] reviewed stateAcceptance:
[x] / [ ] reviewed trackingBootstrap seed is deterministic:
slate-v2 checkout under:
packages/slate-react/test/**packages/slate-dom/test/**packages/slate-browser/**playwright/integration/examples/**/Users/zbeyens/git/slate for the same
behavior familiesPinned slate-v2 diff command:
git -C /Users/zbeyens/git/slate-v2 diff --name-status --diff-filter=ACDMRTUXB origin/main...HEAD -- \
packages/slate-react \
packages/slate-dom \
packages/slate-browser \
playwright/integration/examples \
site/examples/ts
Do not let executors invent a different diff base.
Seed these rows immediately:
For each row:
EditableReactEditorDOMBridgeslate-browser proof laneAcceptance:
Priority current files:
packages/slate-react/src/components/editable.tsxpackages/slate-react/src/plugin/react-editor.tspackages/slate-dom/src/bridge.tspackages/slate-browser/src/playwright/ime.tsslate-browserFor each row:
Acceptance:
Recover missing proof in this order:
Before closing a platform/browser row, classify the evidence as:
automated-direct
automated-proxy
manual-device-blocking
Hard rule:
Acceptance:
Update:
docs/slate-v2/release-readiness-decision.mddocs/slate-v2/true-slate-rc-proof-ledger.mddocs/slate-v2/release-file-review-ledger.mddocs/slate-v2/replacement-gates-scoreboard.mdAcceptance:
Minimum verification path:
cwd=/Users/zbeyens/git/slate-v2 pnpm --filter slate-react testcwd=/Users/zbeyens/git/slate-v2 pnpm exec mocha --require ./config/babel/register.cjs ./packages/slate-react/test/**/*.tsx
or the focused equivalent used by the recovered rowcwd=/Users/zbeyens/git/slate-v2 pnpm test:slate-browser:ime:localManual-device-blocking artifact root:
/Users/zbeyens/git/plate-2/.omx/artifacts/ime-mobile-browser/Each manual-device row must link:
Evidence required for browser rows:
plannerarchitectcriticexploreresearchercode-reviewerexecutortest-engineerverifiervision$ralphhighhighhighSuggested order:
$teamslate-react / slate-dom parity mappingRecommended reasoning:
mediumhighmediumLaunch hint:
$team /Users/zbeyens/git/plate-2/.omx/specs/deep-interview-slate-v2-ime-mobile-browser-zero-regression-rc.md
Recommended next execution mode: $ralph
Reason: