Domain Reference
Capability owners, public contracts, and non-obvious boundaries.
HEAD a63778e| Read this page when | A change affects a business capability, persisted state, domain command, or cross-domain boundary. |
|---|---|
| First answer | Which capability owns the rule and its public boundary? |
| Follow-up | Read the selected public.ts, then the nearest deterministic tests. Use ownership and dependency direction for layer rules. |
| Capability | Owner and contract | Boundary |
|---|---|---|
| Account and cloud backup | account | GitHub identity and native Canvas/Slides snapshots live on the account API; an explicit first backup opts local work into revision-checked background sync |
| Commands, shortcuts, clipboard and input arbitration | actions | Owns action IDs, eligibility, and input adapters; delegates content changes through Canvas commands |
| Legacy migration | legacy-blackboard | Read-only retained source and migration journal; retirement owns lifecycle |
| Editable content, Yjs projection, history and viewport | canvas | Owns active Yjs content, projection, and history; state flows owns origin and persistence direction |
| Character catalog, packs, facets and filters | character-library | Shared catalog/query/resource contracts live in @chardesk/character-library; insertion belongs at the Host/canvas boundary |
| Room links, connection lifecycle and presence | collaboration | Owns room transport, room-local persistence, and presence; Canvas owns editable maps, projection, and integrity filtering |
| External text parsing and conversion | document | Owns session-source conversion and the pluggable pasted-text renderer; Canvas applies results without owning syntax rules |
| Runtime, commands, tools, keymaps and extensions | editor | Coordinates execution; owns neither canvas data nor product metadata |
| Export registry, preparation and browser delivery | export | Pure preparation returns a delivery-neutral result before platform side effects |
| Static-grid addresses, ranges and movement | selection | Deterministic and independent of React, DOM events and browser coordinates |
| Session identity, catalog schema and migrations | sessions | Owns IndexedDB catalog records and legacy decoding; Canvas owns Yjs document persistence coordination and runtime recovery |
| Deck, slide mutation, dimensions and Markdown container | slides | Owns page metadata and fences; explicit chargraph fences use the shared compiler, while Canvas owns page content, active projection, and crop/history coordination |
| Retired Structured input migration | legacy-structured (private) | Read-only decoder used only by document, session, and Canvas migration boundaries; output is always CellPlane |
Use the selected public.ts and nearest tests. Dependency rules are owned by
ownership and dependency direction.