docs/research/log.md
@tanstack/[email protected]
/ @tanstack/[email protected], keep the Slate public API unchanged, keep
virtualized mode experimental, avoid overriding upstream backward-scroll
defaults, and route internal layout-backed virtualized scroll writes through
TanStack where practical.tmp/slate-v2 TanStack-backed implementationdocs/plans/ to
README.mddocs/research as the compiled layer../raw as the expected private raw evidence layer../raw/typora123 one-to-one Typora source cards plus ../raw/typora/catalog.md../raw/milkdown/repo../raw/obsidian$ / $$ trigger behavior:
math-delimiter-triggers.md$ selection-wrap, live-preview auto-pair, and $$
block-detection evidenceresearch-wiki full rule[text](url) automd:
link-automd-belongs-to-the-link-interaction-lane.md../,
but has not yet been normalized into dedicated ../raw/<corpus> familiesslate-reacteditor.read / editor.update, transaction and
DOM-selection authority, extension methods, React 19.2 live-read runtime, and
generated browser gauntletsTransforms.* lanes, read-only
public mirrors, explicit kernel bridges, scoped mobile proof, and the
accepted huge-document middle-shell caveat/Users/zbeyens/git/lexical$ public helpers, or dispatch-command app API../raw../raw/lexical, ../raw/prosemirror,
../raw/tiptap, or ../raw/tiptap/docs family currently exists../lexical, ../prosemirror, ../tiptap, and the sibling
../tiptap-docs docs clone that later moved under ../raw/tiptap/docsnormalized full raw source families for:
../raw/lexical/repo../raw/prosemirror/repo and ../raw/prosemirror/packages/*../raw/tiptap/repo and ../raw/tiptap/docsgenerated raw README.md and catalog.md files for each family
appended raw evidence updates to ../raw/log.md
added the per-corpus evidence ledger: read-update-runtime-corpus-ledger.md
added source summaries:
accepted the read/update lifecycle decision: slate-v2-read-update-runtime-architecture.md
updated index.md and sources/editor-architecture/README.md
../rawread/update, ProseMirror-style
transaction and DOM-selection discipline, Tiptap-style extension ergonomics,
and React 19.2 optimized runtime APIseditor.read / editor.update,
transaction-owned primitive methods, EditorCommit, extension methods,
React 19.2 live reads, and generated browser proofmentions invalid DOM nesting warning../raw/prosemirror../raw/lexical../raw/tiptapbun check:full passingslate/internal live
reads in slate-react/src are limited to runtime facade modules, focused
browser regression rows pass, and bun check:full passes with one recorded
retry that passed alone without retriesEditable, broad hot React subscriptions shrink further, Plate/Yjs adapter
rows exist, and raw-device proof covers mobile claims.tmp/slate-v2 runtime and proof surface against the
React 19.2, DX, legacy-regression, and Lexical/ProseMirror/Tiptap criteriaEditable and EditableTextBlocks no longer carry generic
useSlateSelector hot paths, direct kernel/selection/repair calls moved into
runtime modules, root selector reads are named in
editable/root-selector-sources.ts, and generated stress rows include render
budget assertionsEditable further and generated browser parity runs the
same operation-family scenarios against legacy ../slate and v2 examplesEditableDOMRoot root policy ownership as the top
current blockerstate, tx, api, tf, extension groups, and schema
predicate placementeditor.* methods as the power API inside
editor.update.tmp/slate-v2 source, tests, docs, and examplesstate / tx exists and is tested, but author-facing docs/examples still
teach primitive editor.* writes inside editor.updateeditor.update((tx) => tx.*) is the normal public write target; primitive
editor writes need either advanced/internal classification or docs/examples
migration before the API can be called finaleditor.update((tx) => tx.nodes.insert(...))state / tx naming decision.tmp/slate-v2 projection, annotation, widget, hook, test, and
benchmark files during the decoration/annotation rewrite reviewdecoration-sources.ts source references because live source
still routes decoration sources through projection-store.tseditor.update as
the current public power APIstate / tx methods instead of flat
primitive editor methods inside lifecycle callbacksEditor value hard-cut decisiontx.value.replace(input) as the public whole-document replacement
target and called out that live .tmp/slate-v2 still needs to implement it.tmp/slate-v2 source, and Context7 official-doc checkschildren, not hidden nodes, RootNode metadata, or React controlled valueprepare() still depends on canvas
measurement; paged mode should virtualize pages/spreads first; strict
collaboration/export should use optional profile-aware authoritative
page-break snapshots