docs/plans/2026-04-02-slate-react-v2-runtime-proof-ralph.md
Ship the first honest slate-react-v2 proof slice:
.tmp/slate-v2/packages/slate-react-v2The slice must prove selector-first committed-snapshot reads, controlled replacement without effect mirroring, and clean dependency on slate-dom-v2 for browser ownership.
19.2+ onlyPrimary target:
Representative pressure:
#5709#5488#5131#4612Status: completed
slate-react package shape and test seamsStatus: completed
slate-react-v2 is allowed to ask from slate-dom-v2packages/slate-react-v2Status: completed
slate-dom-v2Status: completed
useEffectslate-react-v2 has to re-own slate-dom-v2 concerns to stay coherentslate-react-v2 contract and prior slate-v2 / slate-dom-v2 proof artifactsslate-react seams and the smallest honest package proofpackages/slate-react-v2 with:
useSlateStaticuseSlateSelectoruseSlateReplaceuseSlateRootRefuseSlateNodeRefslate-dom-v2fnm exec --using 22 yarn installfnm exec --using 22 yarn tsc --project packages/slate-react-v2/tsconfig.json --noEmitfnm exec --using 22 yarn workspace slate-react-v2 testfnm exec --using 22 yarn build:rollupfnm exec --using 22 yarn lint:eslintfnm exec --using 22 yarn lint:prettierfnm exec --using 22 yarn node -e "require('slate-v2'); require('slate-dom-v2'); require('slate-react-v2')"lsp diagnostics directory for packages/slate-react-v2: 0 errors