docs/plans/2026-04-12-slate-v2-zero-regression-parity-reconsolidated-plan.md
One current plan for the remaining work required to support the strongest honest Slate React parity claim:
This plan supersedes vague “next batch” execution for the reopened browser/input lane.
Primary goal:
RC gate:
Non-goals:
Hard rule:
product-bugmissing-proof-rowtooling-blockedjustified-omission-candidateExecution truth:
Roadmap truth:
Verdict truth:
Planning inputs that changed the queue:
Already closed at a serious level:
special subcasesStill open:
NATIVE_APP, but exposes zero
Gboard candidate nodes; hardware keycodes only yield literal cant text
external plan:
2026-04-12-android-keyboard-feature-external-evidence-plan.mdAlready closed enough to stop pretending they are future batches:
restore-dom is closed as a non-current lifecycle guard plus current-proof
coverage splitTranche 7 does not close on “basically done.”
It closes only when the reopened browser/input rows in release-file-review-ledger.md are individually checkmarkable and actually checked.
Hard rules:
Goal:
Rows:
file-review closure state current read: the reopened browser/input file-family rows are already checked in release-file-review-ledger.md next action: do not reopen generic file-family debt unless a new concrete behavior gap is discovered exit: remaining parity work lives only on named platform or external/tooling rows
roadmap wording current read: some planning surfaces still talk like local Firefox/file-family recovery is the next batch next action: refresh the queue so it starts from the remaining non-local rows exit: no stale local next-batch wording survives
Goal:
Rows:
Android keyboard-feature behavior
bucket:
tooling-blocked or justified-omission-candidate
current read:
local Appium + Chrome on emulator now proves the structural and typing rows
that mattered inside the old android-tests matrix, but does not expose
Gboard candidates well enough for:
broader iOS Safari composition/focus
bucket:
tooling-blocked
current read:
local Appium/XCUITest is setup-green / behavior-red and the current
agent-browser iOS path is only trustworthy for open plus initial snapshot
next action:
choose one explicit non-local path:
desktop WebKit direct composition depth
bucket:
tooling-blocked or justified-omission-candidate
current read:
current honest ceiling is direct input plus proxy composition
next action:
only promote this if a real relied-on legacy behavior remains unowned after
the iOS decision
exit:
either direct row exists or proxy/ceiling status is explicitly accepted
Goal:
Rows:
blocker/verdict docs files:
Go languageroadmap/front-door docs files:
proof/status docs files:
Target:
Deliver:
Target:
Deliver:
Target:
Deliver:
Target:
Deliver:
[ ] debtTarget A / Target B Go wording is removed where it contradicts
the reopened parity laneAlways refresh:
Run the remaining-scope re-interview again if any of these happen:
Reference:
The remaining work is no longer “figure out whether Slate v2 is real.”
That part is done.
The remaining work is:
editable.tsx and android-input-manager/** honestly