Reference

Limits

What the current tree implements, what the playground fakes, and which edges are still open. Read this before treating a demo behavior as a guarantee.

Implemented

Demo-only

Custom shape registries are supplied at creation and persisted with state. Changing configuration does not automatically migrate existing custom-shaped domains.

Open edges

AreaCurrent behaviorIntended next contract
Elided body edits A later update to an unloaded child can stall the client (body_not_inline). Commit-stamped replacement hashes for unmaterialized subscribers; versioned hydration; keep a failed commit until repair.
Text editing Whole-run replace preserves untouched prefix/suffix of finalized runs. Stable positions, splittable runs, IME, and an editor binding. An established CRDT will replace the prototype.
Pending CRDT text Rejected or snapshot-overwritten text is not fully reconciled. Rebuild visible state from accepted base plus surviving pending ops. Discard rejected edits.
Text undo Reinserting a tombstoned run id does nothing. Fresh op identity or an explicit undo op; grouped user edits.
Reconnect The library Transport reconnects with backoff, connection generations, catch-up, outbox replay and terminal close handling. The playground still drives raw sockets with a fixed retry delay. Move the playground onto Transport.
Presence after hibernation Heap peer map is not restored; stale cursors possible. Re-announce or reset presence from attachments.
Live streams after hibernation Unfinished prefixes are not checkpointed. Explicit resume or terminal-abort policy.
Policy freshness Silent stall can exceed the five-second operational target. Optional freshness/failure-detection mode. Not a heartbeat by default.
keep_last Limits bootstrap bodies, not an ongoing working set. Continuous eviction with explicit cache/session policy.

Design vs implementation

Several fields on the long-term shape policy — reconcile mode, reliability lane, visibility, authority, predictability — are declared in the design note and not fully enforced. Text is selected by installed extension, not by those unused field policies. “CRDT operations never refuse” applies only to conflicts after admission, not to permissions, schema, or target checks.

A completed snapshot can expose plain text, but log replay must retain a terminal transition. Do not treat a snapshot as a substitute for stream_end.

Dedup records and full snapshots currently grow with history. There is no idempotency horizon and no production-scale fanout/backoff story in the host.

What will not be added just in case

The next generalization pass should be driven by a second real extension or application, not by speculative framework work. The original design note is docs/design-spec.md.