Back to Plate

Slate v2 Replacement Gates Scoreboard

docs/slate-v2/replacement-gates-scoreboard.md

53.0.67.1 KB
Original Source

Slate v2 Replacement Gates Scoreboard

Tranche Gates

GateStatusNote
tranche 1 root/tooling portcompleteroot graph is green under Bun/Turbo/Biome with Bun-owned test discovery
tranche 1 docs splitcompletearchive lane exists; live docs own the fresh program
tranche 1 package-manifest ownerscompletepackage build/type owners landed without source recovery drift
tranche 2 React 19.2 + Next runtime/site upgradecompleteReact 19.2.5 + Next 16.2.4 + TypeScript 6.0.3 are green with behavior-preserving fallout only
slate read/update transaction runtimecompletepackages/slate package-local, public-surface, read/update, primitive method, transaction target, commit metadata, bookmark, build, typecheck, lint, and core perf-floor gates are green; the live claim is settled around editor.read, editor.update, primitive editor methods, EditorCommit, and hard-cut public stale-state pressure
support package lossless closurecompleteslate-history and slate-hyperscript package/runtime owners are green and no longer the blocker
DOM owned runtime closurecompletetranche 5 package/runtime owners are green and verified by the full end-state gates
React owned runtime closurecompletetranche 6 focused owners, examples, perf owners, and end-state gates are green
examples/benchmarks/value-add + root proof closurependinggenerated cursor/caret gauntlets, scoped mobile proof, and huge-doc perf caveat are classified; final same-turn integration/build/type/lint/perf closure remains open
RC ledger closurependingtranche 8

V2 North-Star Gates

GateStatusCurrent ownerCurrent proof / command ownerCurrent read
overlay architecture closurecompletedecoration-roadmap.mdfocused runtime owners, v2-only examples, and end-state gatesthe kept overlay architecture is real in package/runtime/example form across decorations, annotations, widgets, shared projection plumbing, and corridor-first large-doc behavior
source-scoped overlay invalidationcompletedecoration-roadmap.mdbun run bench:react:rerender-breadth:localthe command-backed owner proves selective source recompute by dirtiness class; remaining same-store subscriber fan-out is a stronger follow-up question, not a missing-owner blocker
React runtime localitycompletereferences/architecture-contract.mdbun run bench:react:rerender-breadth:localthe live locality owner measures selection breadth, many-leaf sibling stability, deep-ancestor locality, decoration-source toggle breadth, hidden-pane Activity, annotation-backed widget churn, and source-dirtiness isolation
huge-document overlay posturecompletereferences/chunking-review.md and decoration-roadmap.mdbun run bench:react:huge-document-overlays:localthe command-backed owner proves corridor-first huge-doc behavior on the real Editable largeDocument surface without reviving child-count chunking as the main story
slate-react perf superiority vs legacy chunkingpending / typing reddocs/plans/2026-05-01-slate-v2-universal-large-document-performance-ralplan.md and absolute-architecture-release-claim.mdREACT_HUGE_COMPARE_BLOCKS=5000 REACT_HUGE_COMPARE_ITERATIONS=5 REACT_HUGE_COMPARE_TYPE_OPS=10 bun run bench:react:huge-document:legacy-compare:localcurrent shell islands win ready/full-document lanes but lose steady typing/select lanes and select-all against legacy chunking-on; the accepted next owner is DOM-present auto plus stronger commit dirtiness, with shell mode explicit
generated browser gauntlet claimcomplete / final integration pendingabsolute-architecture-release-claim.mdrichtext generated release rows plus bun test:integration-localcursor/caret claims require model, DOM, DOM-selection/caret, focus, commit metadata, legal kernel trace, replayability/shrink payloads, and follow-up typing; semantic mobile and raw native mobile proof remain separate claim classes
required v2-only example setcompleteledgers/example-parity-matrix.mdbunx playwright test ./playwright/integration/examples/highlighted-text.test.ts --project=chromium, bunx playwright test ./playwright/integration/examples/external-decoration-sources.test.ts --project=chromium, bunx playwright test ./playwright/integration/examples/persistent-annotation-anchors.test.ts --project=chromium, bunx playwright test ./playwright/integration/examples/review-comments.test.ts --project=chromiumall four v2-only example/browser rows are live and green in Chromium

Command Reality

Current live runnable gate commands:

  • bun run test
  • bun run test:integration-local
  • bun run bench:slate:6038:local
  • bun run bench:core:transaction:local
  • bun run bench:core:normalization:local
  • bun run bench:core:query-ref-observation:local
  • bun run bench:core:node-transforms:local
  • bun run bench:core:text-selection:local
  • bun run bench:core:editor-store:local
  • bun run bench:core:refs-projection:local
  • bun run bench:core:normalization:compare:local
  • bun run bench:core:observation:compare:local
  • bun run bench:core:huge-document:compare:local
  • bun run bench:react:rerender-breadth:local
  • bun run bench:react:huge-document-overlays:local
  • bun run bench:react:huge-document:legacy-compare:local

Current slate core compare read:

  • normalization compare is no longer the blocker
  • observation compare is bounded-but-still-slower
  • huge-document core typing compare is bounded-but-still-slower

Coverage read:

  • core perf benchmark coverage is complete for current-only family ownership
  • core current-vs-legacy regression coverage is complete for the kept blocker lanes:
    • normalization
    • observation
    • huge-document typing
  • this is complete-but-selective coverage, not exhaustive current-vs-legacy compare coverage for every exported helper family

Missing command-backed north-star owners:

  • none for direct huge-document comparison, generated cursor/caret gauntlets, or scoped mobile claim classification; remaining release work is final same-turn integration/build/type/lint/perf closure

Rules

  • a gate is not green because nearby proof is green
  • a gate is not green because draft value exists
  • a gate is green only when the owning tranche exits honestly
  • parity success does not close a north-star gate automatically