You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Data services are schema-authority components: a versioned service (polymorph-data:tasks) owns a doc partition — schema, policy, migrations — and multiple apps project it. Engine owns CRDT/crypto/sync mechanics behind the Data services: the polymorph:automerge surface - document as ACL unit, host-side ownership, indexing, encrypted backup #8 surface; one schema authority per doc; singleton service instance per partition serving multi-version facades; apps never touch doc surfaces.
One component kind: data services and egress providers are not structural types but computed capability profiles. The load-bearing badge is transitive egress-reachability over the composition graph ("pure: this code cannot reach the network") — derived by the linker, cannot lie, handles compositions. Obligations attach to capabilities: doc authority ⇒ singleton/schema/facade rules; egress ⇒ scoping/proxied-fetch/audit + the compound prompt with data authority (Network capabilities: per-destination grants, the app manifest, proxied fetch and the audit log, exfiltration stance #7's flow matrix is the badge's complement for data-mediated flows).
Splitting (pure-data + egress-adapter) is an engineering choice where it buys failure tolerance — cheap via composition, incentivized (purity earns lighter review) — never a forced classification.
Defaults: per-app partitions everywhere (shared scopes are explicit grants); refs-by-id across ACL units; blob-attachment pattern via the storage layer.
Design recorded in NOTES.md — System services: one component kind, capability profiles (from the 2026-08-17 design discussion; leaning, not ruling). This issue tracks making it real.
The design, in brief
polymorph-data:tasks) owns a doc partition — schema, policy, migrations — and multiple apps project it. Engine owns CRDT/crypto/sync mechanics behind the Data services: the polymorph:automerge surface - document as ACL unit, host-side ownership, indexing, encrypted backup #8 surface; one schema authority per doc; singleton service instance per partition serving multi-version facades; apps never touch doc surfaces.Deliverables
polymorph-data:tasks@0.1.0— the first data service, doubling as TodoMVC end-to-end demo: integrating the UI surface with the engine, both sync paths, and revocation #20's G1 contract (redirect noted there)Related: #8 (engine surface), #20 (demo; G1 = tasks service), #7 (flow prompts), #6 (linker enforcement), #13 (apps become thin: UI + service bindings), #10/#19 (sharing/storage under partition = doc).