docs/slate-v2/final-api-hard-cuts-status.md
The final API posture is not “legacy Slate React with faster internals”.
The kept shape is:
slateeditor.read / editor.updateEditableeditor, state, and tx groups| Cut | Status | Current state | Remaining owner |
|---|---|---|---|
Keep decorate out of the primary API | done | Primary Editable has no decorate prop. Projection stores are the overlay API. Legacy callback-style decoration is only available through the explicitly named createSlateDecorateCompatSource adapter. | None for primary API. Keep compat adapter narrow. |
| Keep child-count chunking dead | done | Product slate-react runtime has no renderChunk, getChunkSize, or child-count chunking API. Huge docs use semantic islands, active corridor, occlusion, and projection stores. | None for product runtime. Legacy chunking remains only as historical/comparison context. |
| Cut mutable editor fields from primary public API | done for public teaching | editor.children, editor.selection, editor.marks, and editor.operations are not primary read paths. Public docs/examples/tests use read APIs, transaction/update APIs, and focused helpers instead. Internal runtime storage is not app/plugin DX. | Final type-surface deletion remains tied to package/runtime compatibility pressure, not primary docs. |
Stop teaching editor.apply / editor.onChange | done for public teaching | Examples do not monkey-patch editor.apply; huge-document instrumentation uses Editor.subscribe; extension power is through editor, state, and tx groups plus commit listeners. Direct apply/onChange replacement is not an extension point. | Final low-level compatibility deletion remains tied to package/runtime compatibility pressure. |
| Hard-cut dead legacy React renderer exports/tests/docs | done | Legacy renderer exports DefaultElement, DefaultLeaf, and DefaultText are removed. Old renderer files and the broad legacy decorations test are deleted. Current public primitives are Editable, EditableText, SlateElement, SlateLeaf, SlateText, TextString, ZeroWidthString, and related semantic primitives. | Local docs may use DefaultElement as an example-local function name; that is not a package export. |
Final release closure still needs same-turn verification:
bun test:integration-localThe browser editing architecture is under the conformance kernel contract:
Execution owner: