Shared state ladder
This is the vocabulary for shared state in fak. It keeps five related but different things from being treated as one feature:
| Rung | Meaning | Shipped shape |
|---|---|---|
| Live addressed message | One value delivered now between agents | internal/a2achan Send/Recv and Publish/Subscribe over scoped Ref bodies |
| Live shared object | A named mutable cell during one run | Planned first-class region/window work; today compose from refs and messages |
| Durable handoff | State that survives a process/session/window boundary | Session image and snapshot primitives; internal/sharedtask journal is a task-local materialized handoff |
| Disaggregated state | Bytes live outside the task record | Shared task refs carry digest, taint, scope, store, and deletion certificate |
| User-level collaboration | A human and agents co-edit task state | Shared task record contract plus in-memory fold, conflicts, scoped views, and scoped live topics |
Collaboration Spine
The collaborative task surface uses a single record with explicit patch semantics:
- A task has a stable
task_id, currentrev, scoped body ref, artifact refs, note refs, and open decisions. - A human or agent submits a patch against the
revit saw. - Append-only notes, artifacts, and open decisions can commute when their ids are new.
- Scalar edits such as
replace /titleandreplace /staterequire the current base and return a typed conflict when stale. - Disaggregated refs must carry digest shape and deletion witnesses before the record advances.
- Adapters read
ViewandEventsViewso scoped readers get the same redaction behavior for snapshots and catch-up event history. - Live adapters use
SubscribeScopedViewand scoped event topics so future tenant-scoped events do not land in a fleet-scoped inbox.
Honest Scope
Shipped today: in-process a2achan delivery, scoped/tainted refs, the
internal/sharedtask in-memory patch fold, scoped read and event-history
projection, scoped live event fanout, disaggregated ref admission, and a
materialized task journal. Not claimed here: a durable cross-process mailbox, a
networked task-store daemon, external L3 artifact transport, or a browser/editor
UI.