docs/plans/2026-04-12-restore-dom-family-closure-matrix.md
Historical batch note. The live closure read is now folded into release-file-review-ledger.md.
Break the deleted legacy restore-dom family into behavior rows that can be
proved, cut, or left tooling-blocked explicitly.
Legacy source:
Current owners:
| Legacy behavior | Legacy mechanism | Current read | Classification | Current owner / gap |
|---|---|---|---|---|
| buffer browser mutations only during real user input | receivedUserInput gate | current runtime does not use the same pre-commit DOM replay lifecycle | justified-omission | non-current lifecycle guard; see 2026-04-12-restore-dom-was-a-rerender-era-guard-not-a-current-v2-runtime-need.md |
| restore removed/added DOM nodes before React commit | mutation observer + getSnapshotBeforeUpdate | current runtime owns direct DOM commit on input / compositionend instead of pre-commit DOM replay; visible behavior rows are green on the current seams | justified-omission | superseded by current root-owned DOM commit plus direct behavior rows |
ignore characterData mutation restore during composition | explicit skip in restore manager | main IME rows are green on the behavior-bearing current surfaces without this family | covered-by-current-proof | current IME proof lanes own this user-visible behavior |
| Android-only activation of the restore-dom wrapper | IS_ANDROID guard | current Android rows are green on placeholder, no-FEFF placeholder, inline-edge, void-edge, and split/join without this wrapper | covered-by-current-proof | Android proof is narrower than the full legacy matrix, but this guard no longer stands as its own unresolved family |
| restore before update, clear after update, then resume observation | class lifecycle contract | current runtime no longer depends on that rerender-era lifecycle to keep visible editor behavior correct | justified-omission | old lifecycle shape is not the current architecture contract |
The deleted family is not one thing.
It mixes:
The current proof stack already says:
restore-domWhat it now says:
restore-dom are either
directly green or no longer current runtime lifecycle requirementsThe family is ready to reclose as: