docs/solutions/logic-errors/2026-04-12-restore-dom-was-a-rerender-era-guard-not-a-current-v2-runtime-need.md
Legacy Slate React carried a dedicated restore-dom family that:
That made sense in the old runtime shape:
In v2, the browser-facing model is different.
The editor root owns:
inputcompositionendIt is not the same rerender-era contract.
Direct current proof is already green on the behavior-bearing rows that matter:
Those are the rows where restore-dom would have shown up as visible breakage
if the modern runtime still depended on that mutation-replay model.
The deleted restore-dom family should not stay open as a generic ghost.
The honest current split is:
When a legacy guard existed to repair browser DOM drift before React commit, first ask whether the new runtime still has the same lifecycle.
If the new runtime commits DOM back into the model directly and the visible behavior rows are green, do not keep the old guard family open by inertia.
Close the behavior-bearing rows directly and mark the old lifecycle-specific repair machinery as a non-current guard, not as an immortal blocker.