Back to Plate

Slate V2 Slate React Deleted Test-Family Closure

docs/plans/2026-04-09-slate-v2-slate-react-deleted-test-family-closure.md

53.0.68.1 KB
Original Source

Slate V2 Slate React Deleted Test-Family Closure

Historical batch note. The live closure read is now folded into release-file-review-ledger.md.

Scope

Close the deleted packages/slate-react/test/** family with explicit restore vs cut accounting instead of leaving it as a vague non-core blocker.

Family Closure Matrix

Deleted fileCurrent claim clusterStatusCurrent proof ownerResolution
packages/slate-react/test/use-slate-selector.spec.tsxselector equality + selector identity swapmirrored nowruntime.tsxcurrent runtime proof already covers referential stability and selector replacement
packages/slate-react/test/use-slate.spec.tsxprovider editor + version counter exposuremirrored nowruntime.tsxcurrent runtime proof already covers useSlateWithV and hook-surface editor exposure
packages/slate-react/test/react-editor.spec.tsxmounted window + helper surfacemirrored nowruntime.tsxcurrent mounted-bridge runtime proof already covers helper/window behavior
packages/slate-react/test/react-editor.spec.tsxReactEditor.focus null-selection init, mid-transform safety, no onValueChangerecovered nowsurface-contract.tsxdirect proof now covers the deleted focus rows on the live mounted bridge
packages/slate-react/test/editable.spec.tsxcallback partitionmirrored nowruntime.tsxcurrent runtime proof already covers onChange / onSelectionChange / onValueChange partition
packages/slate-react/test/editable.spec.tsxlow-level Editable translate policyrecovered nowsurface-contract.tsxsource and direct proof now restore default translate=\"no\" plus override
packages/slate-react/test/editable.spec.tsxstructured split/merge mount identityrecovered nowsurface-contract.tsxdirect proof now covers stable element mounts on the current structured surface
packages/slate-react/test/use-selected.spec.tsxselection-overlap rerendermirrored nowruntime.tsxcurrent element-hook runtime proof already covers selection switching
packages/slate-react/test/use-selected.spec.tsxpath-rebasing stability after structural editsrecovered nowsurface-contract.tsxdirect proof now covers the selected element staying selected after path shift
packages/slate-react/test/use-selected.spec.tsxchunking-specific branchexplicit skipnonethe current package no longer ships the deleted chunking tree
packages/slate-react/test/decorations.spec.tsxrender-leaf split metadata + projection-local decoration behaviormirrored nowruntime.tsxcurrent runtime proof already covers the surviving value on the projection-driven renderer
packages/slate-react/test/decorations.spec.tsxexact old decorate API parityexplicit skipnonethe current package is projection-first here; the old decorate prop is not live contract
packages/slate-react/test/chunking.spec.tsinternal chunk-tree reconcile logicexplicit skipnonedead internal architecture, not current contributor-facing proof
packages/slate-react/test/tsconfig.jsontest-local harness configexplicit skipnoneno current value in reviving a deleted test-local tsconfig

Totals:

  • mirrored now: 5
  • recovered now: 4
  • explicit skip: 3
  • reconciled deleted files: 8

What Was Restored

  • surface-contract.tsx now directly proves:
    • ReactEditor.focus initializes selection from null
    • ReactEditor.focus stays safe mid-transform
    • ReactEditor.focus does not trigger onValueChange
    • Editable defaults translate=\"no\" and allows override
    • EditableBlocks keeps element mounts stable across split/merge
    • useSelected stays true for the same element after structured path rebasing
  • editable.tsx now owns the restored translate attribute and suppresses transient unresolved DOM-point errors during focus-time selection restore

What Stayed Mirrored

  • runtime.tsx remains the proof owner for:
    • hook surface basics
    • selector equality
    • provider version exposure
    • callback partition
    • mounted helper/window behavior
    • render-leaf/projection-local decoration behavior

Explicit Skip Rationale

chunking.spec.ts

  • the deleted chunk-tree reconcile module is gone
  • the live slate-react contract does not claim that internal tree anymore
  • restoring it would resurrect dead architecture, not contributor-facing proof

decorations.spec.tsx exact decorate parity

  • the current package is projection-first
  • the live renderer value is already proved through renderLeaf plus projection-store behavior
  • restoring the old decorate prop would widen the current contract instead of closing it

tsconfig.json

  • test execution is owned by the package script
  • the deleted test-local tsconfig added no current contributor-facing value

Proof Owners