docs/plans/2026-04-11-slate-v2-large-document-shell-proof-batch.md
Run the first honest shell-only large-document proof:
EditableBlocks to support opt-in shelling through
editable-text-blocks.tsxThe shell experiment would have silently corrupted document text if DOM reconciliation kept assuming every top-level subtree was mounted.
The kept fix was to make structured DOM reconciliation update only mounted top-level islands and preserve shelled top-level subtrees from the committed snapshot.
Without that, typing in one live island would blank out far shelled text.
pnpm bench:replacement:huge-document:local at 1000 blocks:
527.95ms vs legacy 720.87ms12.48ms vs legacy 19.85ms3.59ms vs legacy 75ms34.85ms vs legacy 107.75mspnpm bench:react:rerender-breadth:local still reads:
#5131: broad hook still broad by contract#3656: sibling leaves 0#4141: ancestors 0pnpm bench:replacement:huge-document:islands:local at 10000 blocks:
527.86ms38.85ms54.10ms99Compared with the last clean non-islands 10000 baseline:
1229.49ms97.47msSo the first shell-only proof cut:
701.63ms58.62msThat is real enough to keep.
The next large-document strategy is finally better than chunking-shaped storytelling.
What this batch proved:
What it did not prove:
So the next batch is obvious: