This document defines the active ownership boundary for sectiond.
These stay true:
source/pathremains the primary model- sync and conflict live on sources and paths
- public state stays at
ready / syncing / conflict / error - control-plane clients consume one authoritative
sectiondstate model
- source registry
- source local-root bindings
.section/root.jsonmarker metadata- routing
- source/path public state
- source/path detail state
- source/path event stream
- metadata/content cache
- refresh / invalidation
- conflict semantics
- health and diagnostics
- runtime lifecycle state
- human CLI flag parsing
- terminal rendering
- GUI presentation
Control-plane clients should expose:
- source add / remove / list
- source bind-local-root / unbind-local-root
- source sync
- watch / event subscribe
- path inspect / compare / resolve
- status / diagnostics
- config / bootstrap / preflight
Common control-plane entry points should accept local paths directly and perform .section/root.json discovery internally.
The data plane is the local bound tree used for:
- traversal
- list / read / write / delete / rename
- shared human/agent editing
The runtime boundary is:
- load local config
- load source registry
- build routing and runtime state
- expose that state to control-plane clients
- emit state-change events
sectiond serve runs the HTTP Section Control Service used by AgentFS
cross-machine sharing.
sectiond --config server.toml serve --addr 127.0.0.1:7373Agent clients point at it with:
[control_service]
endpoint = "http://127.0.0.1:7373"In this mode, client configs do not contain SourceProfile or backing-source credentials. The service owns agent identity, installation identity, grants, shares, SourceProfile selection, credential issuance, and service-side AgentFS events.