docs/solutions/performance-issues/2026-04-11-shell-backed-large-document-selection-must-fail-closed-in-dom-and-run-broad-ops-through-the-model.md
Once far islands stop mounting editable descendants, the browser no longer owns truth for whole-document selection.
That breaks the default assumptions behind Ctrl+A, selection sync, and paste.
Ctrl+A on a shell-backed document would otherwise select only the mounted
editable DOMDOMBridge.toDOMRange(...) for selections that span
unmounted islandsIn editable.tsx:
Ctrl+A in large-document modeReactEditor.insertData(...)The moment the runtime stops mounting the whole editable tree, broad operations must stop trusting the browser to describe the whole document.
The browser still owns local live editing inside mounted islands. It no longer owns whole-document selection semantics.
So the runtime split has to become explicit:
That keeps shells cheap while preserving correct editor behavior.
Ctrl+A, paste, and selection sync
explicitly