{"schemaVersion":1,"productVersion":"alpha-source-4b3ea60","sourceCommit":"4b3ea604f4f6e52419f2c3e3d6a13c9a888e3569","counts":{"total":92,"implemented":88,"target":4},"relationships":[{"id":"REL-ACT-AGT","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"AGT","name":"Agent"}},"summary":"Agent-kind Actor mirror and `actors.agent_id` back-pointer are current.","route":"/docs/build/concepts/entity-model/relationships/rel-act-agt","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-agt.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ACT-CAP","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"CAP","name":"Capability"}},"summary":"Capability authority is resolved through human/agent policy, not a direct Actor edge.","route":"/docs/build/concepts/entity-model/relationships/rel-act-cap","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-cap.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ACT-CHN","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"CHN","name":"Channel"}},"summary":"Channel is Room-edge vocabulary; Actor participation is deliberately indirect.","route":"/docs/build/concepts/entity-model/relationships/rel-act-chn","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-chn.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ACT-CON","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"CON","name":"Connection"}},"summary":"Connection ownership resolves through user/agent identity, not generic Actor.","route":"/docs/build/concepts/entity-model/relationships/rel-act-con","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-con.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ACT-DEV","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"DEV","name":"Device"}},"summary":"No canonical Actor–Device edge exists; current client/session identities are deliberate runtime concerns.","route":"/docs/build/concepts/entity-model/relationships/rel-act-dev","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-dev.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ACT-GRP","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"GRP","name":"Group"}},"summary":"Group membership uses user/agent principals rather than generic Actor.","route":"/docs/build/concepts/entity-model/relationships/rel-act-grp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-grp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ACT-HUM","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"HUM","name":"Human"}},"summary":"A user-kind Actor belongs to one Human and supplies that Human’s participant identity.","route":"/docs/build/concepts/entity-model/relationships/rel-act-hum","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-hum.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ACT-NSP","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"NSP","name":"Namespace"}},"summary":"Namespace access is derived through user/agent policy rather than Actor FK.","route":"/docs/build/concepts/entity-model/relationships/rel-act-nsp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-nsp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ACT-RLY","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"RLY","name":"Relay"}},"summary":"Relay identity resolves to user/session context; no direct Actor edge is required.","route":"/docs/build/concepts/entity-model/relationships/rel-act-rly","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-rly.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ACT-RMS","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"RMS","name":"Room"}},"summary":"`room_members.actor_id` is the direct Actor-to-Room participation edge.","route":"/docs/build/concepts/entity-model/relationships/rel-act-rms","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-rms.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ACT-ROL","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"ROL","name":"Role"}},"summary":"Roles bind principals through groups/policy, not generic Actor.","route":"/docs/build/concepts/entity-model/relationships/rel-act-rol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-rol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ACT-SRV","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"SRV","name":"Server"}},"summary":"Actors are local to the deployment today; foreign-origin federation stubs remain future scope.","route":"/docs/build/concepts/entity-model/relationships/rel-act-srv","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-srv.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ACT-TOL","status":"implemented","entities":{"left":{"code":"ACT","name":"Actor"},"right":{"code":"TOL","name":"Tool"}},"summary":"Tool execution receives resolved principal context rather than an Actor relationship.","route":"/docs/build/concepts/entity-model/relationships/rel-act-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-act-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-AGT-CAP","status":"implemented","entities":{"left":{"code":"AGT","name":"Agent"},"right":{"code":"CAP","name":"Capability"}},"summary":"Agent authority is resolved through policy and grants; no direct capability join is required.","route":"/docs/build/concepts/entity-model/relationships/rel-agt-cap","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-agt-cap.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-AGT-CHN","status":"implemented","entities":{"left":{"code":"AGT","name":"Agent"},"right":{"code":"CHN","name":"Channel"}},"summary":"Agent participation in channel-like Room edges is current and indirect.","route":"/docs/build/concepts/entity-model/relationships/rel-agt-chn","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-agt-chn.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-AGT-CON","status":"implemented","entities":{"left":{"code":"AGT","name":"Agent"},"right":{"code":"CON","name":"Connection"}},"summary":"Vault records, Agent scope, readable Namespaces, and Tool Connection requirements are current; per-Namespace derived keys remain future security design.","route":"/docs/build/concepts/entity-model/relationships/rel-agt-con","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-agt-con.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-AGT-DEV","status":"implemented","entities":{"left":{"code":"AGT","name":"Agent"},"right":{"code":"DEV","name":"Device"}},"summary":"Agent work reaches clients through sessions/Relay; a direct Device edge is intentionally absent.","route":"/docs/build/concepts/entity-model/relationships/rel-agt-dev","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-agt-dev.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-AGT-GRP","status":"implemented","entities":{"left":{"code":"AGT","name":"Agent"},"right":{"code":"GRP","name":"Group"}},"summary":"Agent group membership and resulting authority are current.","route":"/docs/build/concepts/entity-model/relationships/rel-agt-grp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-agt-grp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-AGT-HUM","status":"implemented","entities":{"left":{"code":"AGT","name":"Agent"},"right":{"code":"HUM","name":"Human"}},"summary":"Profile ownership and `manage_agents` authority form the current Human-to-Agent relationship.","route":"/docs/build/concepts/entity-model/relationships/rel-agt-hum","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-agt-hum.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-AGT-NSP","status":"implemented","entities":{"left":{"code":"AGT","name":"Agent"},"right":{"code":"NSP","name":"Namespace"}},"summary":"Agent-readable and shared Namespace behavior is current; “ownership” terminology needs owner review.","route":"/docs/build/concepts/entity-model/relationships/rel-agt-nsp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-agt-nsp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-AGT-RLY","status":"implemented","entities":{"left":{"code":"AGT","name":"Agent"},"right":{"code":"RLY","name":"Relay"}},"summary":"The Relay registry and capability-matched execution are current; the supported implementations are the ones present in the pinned source tree.","route":"/docs/build/concepts/entity-model/relationships/rel-agt-rly","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-agt-rly.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-AGT-RMS","status":"implemented","entities":{"left":{"code":"AGT","name":"Agent"},"right":{"code":"RMS","name":"Room"}},"summary":"Agent Room membership, routing, and conversational participation are current.","route":"/docs/build/concepts/entity-model/relationships/rel-agt-rms","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-agt-rms.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-AGT-ROL","status":"implemented","entities":{"left":{"code":"AGT","name":"Agent"},"right":{"code":"ROL","name":"Role"}},"summary":"Agent authority is mediated through group/role policy rather than a per-Agent role table.","route":"/docs/build/concepts/entity-model/relationships/rel-agt-rol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-agt-rol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-AGT-SRV","status":"implemented","entities":{"left":{"code":"AGT","name":"Agent"},"right":{"code":"SRV","name":"Server"}},"summary":"Agents are deployment-local current entities.","route":"/docs/build/concepts/entity-model/relationships/rel-agt-srv","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-agt-srv.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-AGT-TOL","status":"implemented","entities":{"left":{"code":"AGT","name":"Agent"},"right":{"code":"TOL","name":"Tool"}},"summary":"Agent tool execution and catalog filtering are current runtime behavior.","route":"/docs/build/concepts/entity-model/relationships/rel-agt-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-agt-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CAP-CHN","status":"implemented","entities":{"left":{"code":"CAP","name":"Capability"},"right":{"code":"CHN","name":"Channel"}},"summary":"Channel-like behavior is governed through Room/policy context, not a direct edge.","route":"/docs/build/concepts/entity-model/relationships/rel-cap-chn","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-cap-chn.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CAP-CON","status":"implemented","entities":{"left":{"code":"CAP","name":"Capability"},"right":{"code":"CON","name":"Connection"}},"summary":"Connection use is gated through policy and scope, not a Capability FK on each secret.","route":"/docs/build/concepts/entity-model/relationships/rel-cap-con","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-cap-con.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CAP-DEV","status":"implemented","entities":{"left":{"code":"CAP","name":"Capability"},"right":{"code":"DEV","name":"Device"}},"summary":"Device/client permissions are runtime/session concerns; no direct durable edge is current.","route":"/docs/build/concepts/entity-model/relationships/rel-cap-dev","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-cap-dev.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CAP-GRP","status":"implemented","entities":{"left":{"code":"CAP","name":"Capability"},"right":{"code":"GRP","name":"Group"}},"summary":"Group roles aggregate capabilities through the current RBAC joins.","route":"/docs/build/concepts/entity-model/relationships/rel-cap-grp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-cap-grp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CAP-HUM","status":"implemented","entities":{"left":{"code":"CAP","name":"Capability"},"right":{"code":"HUM","name":"Human"}},"summary":"Human capabilities are derived from group-role membership.","route":"/docs/build/concepts/entity-model/relationships/rel-cap-hum","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-cap-hum.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CAP-NSP","status":"implemented","entities":{"left":{"code":"CAP","name":"Capability"},"right":{"code":"NSP","name":"Namespace"}},"summary":"The no-direct-edge invariant is current; obsolete shared-memory capability slugs are absent from the catalog.","route":"/docs/build/concepts/entity-model/relationships/rel-cap-nsp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-cap-nsp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CAP-RLY","status":"implemented","entities":{"left":{"code":"CAP","name":"Capability"},"right":{"code":"RLY","name":"Relay"}},"summary":"Current Relay capability snapshots describe executor features; they are distinct from Human authorization Capabilities.","route":"/docs/build/concepts/entity-model/relationships/rel-cap-rly","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-cap-rly.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CAP-RMS","status":"implemented","entities":{"left":{"code":"CAP","name":"Capability"},"right":{"code":"RMS","name":"Room"}},"summary":"Room actions consume resolved policy; no per-Room capability join is required.","route":"/docs/build/concepts/entity-model/relationships/rel-cap-rms","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-cap-rms.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CAP-ROL","status":"implemented","entities":{"left":{"code":"CAP","name":"Capability"},"right":{"code":"ROL","name":"Role"}},"summary":"Role-capability joins and the canonical role ladder are current.","route":"/docs/build/concepts/entity-model/relationships/rel-cap-rol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-cap-rol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CAP-SRV","status":"implemented","entities":{"left":{"code":"CAP","name":"Capability"},"right":{"code":"SRV","name":"Server"}},"summary":"Capability definitions and grants are server-local.","route":"/docs/build/concepts/entity-model/relationships/rel-cap-srv","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-cap-srv.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CAP-TOL","status":"implemented","entities":{"left":{"code":"CAP","name":"Capability"},"right":{"code":"TOL","name":"Tool"}},"summary":"Tool availability is dynamically filtered by resolved policy and runtime context.","route":"/docs/build/concepts/entity-model/relationships/rel-cap-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-cap-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CHN-CON","status":"implemented","entities":{"left":{"code":"CHN","name":"Channel"},"right":{"code":"CON","name":"Connection"}},"summary":"Connection use occurs through tools/Room context, not a Channel secret edge.","route":"/docs/build/concepts/entity-model/relationships/rel-chn-con","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-chn-con.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CHN-DEV","status":"target","entities":{"left":{"code":"CHN","name":"Channel"},"right":{"code":"DEV","name":"Device"}},"summary":"No canonical Channel–Device relationship exists; MLS/device fan-out belongs to the future security model.","route":"/docs/build/concepts/entity-model/relationships/rel-chn-dev","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-chn-dev.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CHN-GRP","status":"implemented","entities":{"left":{"code":"CHN","name":"Channel"},"right":{"code":"GRP","name":"Group"}},"summary":"Channel-like Room access is mediated by Room membership and policy.","route":"/docs/build/concepts/entity-model/relationships/rel-chn-grp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-chn-grp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CHN-HUM","status":"implemented","entities":{"left":{"code":"CHN","name":"Channel"},"right":{"code":"HUM","name":"Human"}},"summary":"Human participation in channel-like Rooms is current.","route":"/docs/build/concepts/entity-model/relationships/rel-chn-hum","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-chn-hum.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CHN-NSP","status":"implemented","entities":{"left":{"code":"CHN","name":"Channel"},"right":{"code":"NSP","name":"Namespace"}},"summary":"Channel is vocabulary over a Room already bound to a Namespace.","route":"/docs/build/concepts/entity-model/relationships/rel-chn-nsp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-chn-nsp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CHN-RLY","status":"implemented","entities":{"left":{"code":"CHN","name":"Channel"},"right":{"code":"RLY","name":"Relay"}},"summary":"Relay can surface Room communication without a durable Channel edge.","route":"/docs/build/concepts/entity-model/relationships/rel-chn-rly","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-chn-rly.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CHN-RMS","status":"implemented","entities":{"left":{"code":"CHN","name":"Channel"},"right":{"code":"RMS","name":"Room"}},"summary":"Channel is an attribute/interaction shape of Room, not a separate stored entity.","route":"/docs/build/concepts/entity-model/relationships/rel-chn-rms","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-chn-rms.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CHN-ROL","status":"implemented","entities":{"left":{"code":"CHN","name":"Channel"},"right":{"code":"ROL","name":"Role"}},"summary":"Channel actions use resolved Room/server policy rather than channel-specific roles.","route":"/docs/build/concepts/entity-model/relationships/rel-chn-rol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-chn-rol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CHN-SRV","status":"implemented","entities":{"left":{"code":"CHN","name":"Channel"},"right":{"code":"SRV","name":"Server"}},"summary":"Channel-like Rooms are deployment-local current behavior.","route":"/docs/build/concepts/entity-model/relationships/rel-chn-srv","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-chn-srv.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CHN-TOL","status":"implemented","entities":{"left":{"code":"CHN","name":"Channel"},"right":{"code":"TOL","name":"Tool"}},"summary":"Tool use occurs in Room/session context; no Channel–Tool join is needed.","route":"/docs/build/concepts/entity-model/relationships/rel-chn-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-chn-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CON-DEV","status":"implemented","entities":{"left":{"code":"CON","name":"Connection"},"right":{"code":"DEV","name":"Device"}},"summary":"Secret access is mediated through authenticated user/agent runtime context, not a durable Device edge.","route":"/docs/build/concepts/entity-model/relationships/rel-con-dev","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-con-dev.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CON-GRP","status":"implemented","entities":{"left":{"code":"CON","name":"Connection"},"right":{"code":"GRP","name":"Group"}},"summary":"Group policy may authorize use, but vault scope is not modeled as a direct Group relationship.","route":"/docs/build/concepts/entity-model/relationships/rel-con-grp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-con-grp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CON-HUM","status":"implemented","entities":{"left":{"code":"CON","name":"Connection"},"right":{"code":"HUM","name":"Human"}},"summary":"Vault metadata now records `authored_by_user_id`; routes supply the session user.","route":"/docs/build/concepts/entity-model/relationships/rel-con-hum","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-con-hum.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CON-NSP","status":"implemented","entities":{"left":{"code":"CON","name":"Connection"},"right":{"code":"NSP","name":"Namespace"}},"summary":"User, Agent, and Namespace-scoped `ConnectionScope` behavior is current.","route":"/docs/build/concepts/entity-model/relationships/rel-con-nsp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-con-nsp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CON-RLY","status":"implemented","entities":{"left":{"code":"CON","name":"Connection"},"right":{"code":"RLY","name":"Relay"}},"summary":"Connection brokering through Relay/tool execution is current without exposing stored values in catalog metadata.","route":"/docs/build/concepts/entity-model/relationships/rel-con-rly","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-con-rly.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CON-RMS","status":"implemented","entities":{"left":{"code":"CON","name":"Connection"},"right":{"code":"RMS","name":"Room"}},"summary":"Room access resolves indirectly through its Namespace and active execution context.","route":"/docs/build/concepts/entity-model/relationships/rel-con-rms","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-con-rms.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CON-ROL","status":"implemented","entities":{"left":{"code":"CON","name":"Connection"},"right":{"code":"ROL","name":"Role"}},"summary":"Policy gates Connection operations; no direct Role join is necessary.","route":"/docs/build/concepts/entity-model/relationships/rel-con-rol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-con-rol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CON-SRV","status":"implemented","entities":{"left":{"code":"CON","name":"Connection"},"right":{"code":"SRV","name":"Server"}},"summary":"Each deployment owns its Vault backend; per-Namespace derived-key claims remain future crypto design.","route":"/docs/build/concepts/entity-model/relationships/rel-con-srv","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-con-srv.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-CON-TOL","status":"implemented","entities":{"left":{"code":"CON","name":"Connection"},"right":{"code":"TOL","name":"Tool"}},"summary":"Tool catalog entries can declare Connection requirements and runtime tooling resolves them.","route":"/docs/build/concepts/entity-model/relationships/rel-con-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-con-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-DEV-GRP","status":"implemented","entities":{"left":{"code":"DEV","name":"Device"},"right":{"code":"GRP","name":"Group"}},"summary":"Current session/client identity does not require a durable Device–Group join.","route":"/docs/build/concepts/entity-model/relationships/rel-dev-grp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-dev-grp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-DEV-HUM","status":"target","entities":{"left":{"code":"DEV","name":"Device"},"right":{"code":"HUM","name":"Human"}},"summary":"Installation and workstation identities exist, but a unified durable multi-user Device entity does not.","route":"/docs/build/concepts/entity-model/relationships/rel-dev-hum","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-dev-hum.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-DEV-NSP","status":"implemented","entities":{"left":{"code":"DEV","name":"Device"},"right":{"code":"NSP","name":"Namespace"}},"summary":"Namespace access follows authenticated principal context rather than Device ownership.","route":"/docs/build/concepts/entity-model/relationships/rel-dev-nsp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-dev-nsp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-DEV-RLY","status":"target","entities":{"left":{"code":"DEV","name":"Device"},"right":{"code":"RLY","name":"Relay"}},"summary":"Relay tokens bind user and installation and sessions bind Relay identity; the canonical Device ontology is still future work.","route":"/docs/build/concepts/entity-model/relationships/rel-dev-rly","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-dev-rly.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-DEV-RMS","status":"target","entities":{"left":{"code":"DEV","name":"Device"},"right":{"code":"RMS","name":"Room"}},"summary":"Durable per-Device Room/MLS membership is future application-encryption work.","route":"/docs/build/concepts/entity-model/relationships/rel-dev-rms","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-dev-rms.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-DEV-ROL","status":"implemented","entities":{"left":{"code":"DEV","name":"Device"},"right":{"code":"ROL","name":"Role"}},"summary":"Authorization belongs to the principal, not the client device.","route":"/docs/build/concepts/entity-model/relationships/rel-dev-rol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-dev-rol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-DEV-SRV","status":"implemented","entities":{"left":{"code":"DEV","name":"Device"},"right":{"code":"SRV","name":"Server"}},"summary":"Auth sessions, installation identity, and Relay binding provide the current runtime association; durable Device remains target-only.","route":"/docs/build/concepts/entity-model/relationships/rel-dev-srv","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-dev-srv.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-DEV-TOL","status":"implemented","entities":{"left":{"code":"DEV","name":"Device"},"right":{"code":"TOL","name":"Tool"}},"summary":"Platform/client constraints filter tool availability at runtime.","route":"/docs/build/concepts/entity-model/relationships/rel-dev-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-dev-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-GRP-HUM","status":"implemented","entities":{"left":{"code":"GRP","name":"Group"},"right":{"code":"HUM","name":"Human"}},"summary":"Human group membership is current.","route":"/docs/build/concepts/entity-model/relationships/rel-grp-hum","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-grp-hum.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-GRP-NSP","status":"implemented","entities":{"left":{"code":"GRP","name":"Group"},"right":{"code":"NSP","name":"Namespace"}},"summary":"Namespace authority is derived through group-role policy rather than a direct Group FK.","route":"/docs/build/concepts/entity-model/relationships/rel-grp-nsp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-grp-nsp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-GRP-RLY","status":"implemented","entities":{"left":{"code":"GRP","name":"Group"},"right":{"code":"RLY","name":"Relay"}},"summary":"Relay operations use authenticated principal policy rather than Group ownership.","route":"/docs/build/concepts/entity-model/relationships/rel-grp-rly","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-grp-rly.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-GRP-RMS","status":"implemented","entities":{"left":{"code":"GRP","name":"Group"},"right":{"code":"RMS","name":"Room"}},"summary":"Room access and membership are distinct from server-wide Group membership by design.","route":"/docs/build/concepts/entity-model/relationships/rel-grp-rms","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-grp-rms.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-GRP-ROL","status":"implemented","entities":{"left":{"code":"GRP","name":"Group"},"right":{"code":"ROL","name":"Role"}},"summary":"The many-to-many group-role join is current.","route":"/docs/build/concepts/entity-model/relationships/rel-grp-rol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-grp-rol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-GRP-SRV","status":"implemented","entities":{"left":{"code":"GRP","name":"Group"},"right":{"code":"SRV","name":"Server"}},"summary":"Groups are server-local current entities.","route":"/docs/build/concepts/entity-model/relationships/rel-grp-srv","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-grp-srv.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-GRP-TOL","status":"implemented","entities":{"left":{"code":"GRP","name":"Group"},"right":{"code":"TOL","name":"Tool"}},"summary":"Tool policy is derived through roles/capabilities, not a direct Group–Tool join.","route":"/docs/build/concepts/entity-model/relationships/rel-grp-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-grp-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-HUM-NSP","status":"implemented","entities":{"left":{"code":"HUM","name":"Human"},"right":{"code":"NSP","name":"Namespace"}},"summary":"Namespace readability queries and grants are current; normalize the file-and-symbol citation format.","route":"/docs/build/concepts/entity-model/relationships/rel-hum-nsp","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-hum-nsp.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-HUM-RLY","status":"implemented","entities":{"left":{"code":"HUM","name":"Human"},"right":{"code":"RLY","name":"Relay"}},"summary":"Relay tokens bind `user_id` and installation identity, giving current Relay sessions a persistent Human association.","route":"/docs/build/concepts/entity-model/relationships/rel-hum-rly","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-hum-rly.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-HUM-RMS","status":"implemented","entities":{"left":{"code":"HUM","name":"Human"},"right":{"code":"RMS","name":"Room"}},"summary":"Human Room membership through user-kind Actors is current.","route":"/docs/build/concepts/entity-model/relationships/rel-hum-rms","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-hum-rms.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-HUM-ROL","status":"implemented","entities":{"left":{"code":"HUM","name":"Human"},"right":{"code":"ROL","name":"Role"}},"summary":"Human roles are derived through group membership.","route":"/docs/build/concepts/entity-model/relationships/rel-hum-rol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-hum-rol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-HUM-SRV","status":"implemented","entities":{"left":{"code":"HUM","name":"Human"},"right":{"code":"SRV","name":"Server"}},"summary":"`users.server` records current deployment locality; foreign-user stubs belong to future federation.","route":"/docs/build/concepts/entity-model/relationships/rel-hum-srv","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-hum-srv.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-HUM-TOL","status":"implemented","entities":{"left":{"code":"HUM","name":"Human"},"right":{"code":"TOL","name":"Tool"}},"summary":"Per-user policy, activation, posture, and context filter tool use dynamically.","route":"/docs/build/concepts/entity-model/relationships/rel-hum-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-hum-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-NSP-RLY","status":"implemented","entities":{"left":{"code":"NSP","name":"Namespace"},"right":{"code":"RLY","name":"Relay"}},"summary":"Relay execution receives scoped context without a durable Namespace–Relay join.","route":"/docs/build/concepts/entity-model/relationships/rel-nsp-rly","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-nsp-rly.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-NSP-RMS","status":"implemented","entities":{"left":{"code":"NSP","name":"Namespace"},"right":{"code":"RMS","name":"Room"}},"summary":"Every Room has a Namespace; universal top-level 1:1 uniqueness is an application convention, not a schema guarantee.","route":"/docs/build/concepts/entity-model/relationships/rel-nsp-rms","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-nsp-rms.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-NSP-ROL","status":"implemented","entities":{"left":{"code":"NSP","name":"Namespace"},"right":{"code":"ROL","name":"Role"}},"summary":"Namespace access combines scoped grants and server policy; no direct Role FK is required.","route":"/docs/build/concepts/entity-model/relationships/rel-nsp-rol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-nsp-rol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-NSP-SRV","status":"implemented","entities":{"left":{"code":"NSP","name":"Namespace"},"right":{"code":"SRV","name":"Server"}},"summary":"Namespaces are deployment-local through their current Room and data relationships; there is no `namespaces.owner_id` column.","route":"/docs/build/concepts/entity-model/relationships/rel-nsp-srv","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-nsp-srv.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-NSP-TOL","status":"implemented","entities":{"left":{"code":"NSP","name":"Namespace"},"right":{"code":"TOL","name":"Tool"}},"summary":"Namespace-aware tool envelopes and execution context are current.","route":"/docs/build/concepts/entity-model/relationships/rel-nsp-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-nsp-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-RLY-RMS","status":"implemented","entities":{"left":{"code":"RLY","name":"Relay"},"right":{"code":"RMS","name":"Room"}},"summary":"Relay participates in Room work through authenticated sessions and tool/browser execution.","route":"/docs/build/concepts/entity-model/relationships/rel-rly-rms","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-rly-rms.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-RLY-ROL","status":"implemented","entities":{"left":{"code":"RLY","name":"Relay"},"right":{"code":"ROL","name":"Role"}},"summary":"Relay actions inherit principal policy and capability snapshots.","route":"/docs/build/concepts/entity-model/relationships/rel-rly-rol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-rly-rol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-RLY-SRV","status":"implemented","entities":{"left":{"code":"RLY","name":"Relay"},"right":{"code":"SRV","name":"Server"}},"summary":"Relay registration and endpoints are scoped to the deployment.","route":"/docs/build/concepts/entity-model/relationships/rel-rly-srv","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-rly-srv.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-RLY-TOL","status":"implemented","entities":{"left":{"code":"RLY","name":"Relay"},"right":{"code":"TOL","name":"Tool"}},"summary":"Relay capability advertisement and proxy execution are current.","route":"/docs/build/concepts/entity-model/relationships/rel-rly-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-rly-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-RMS-RMS","status":"implemented","entities":{"left":{"code":"RMS","name":"Room"},"right":{"code":"RMS","name":"Room"}},"summary":"Parent Room, thread-root, Room-kind, and inherited Namespace behavior define the current Subthread relationship.","route":"/docs/build/concepts/entity-model/relationships/rel-rms-rms","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-rms-rms.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-RMS-ROL","status":"implemented","entities":{"left":{"code":"RMS","name":"Room"},"right":{"code":"ROL","name":"Role"}},"summary":"Room actions use resolved server policy and membership rather than per-Room roles.","route":"/docs/build/concepts/entity-model/relationships/rel-rms-rol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-rms-rol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-RMS-SRV","status":"implemented","entities":{"left":{"code":"RMS","name":"Room"},"right":{"code":"SRV","name":"Server"}},"summary":"Rooms are server-local current entities; cross-server/federated Rooms remain future scope.","route":"/docs/build/concepts/entity-model/relationships/rel-rms-srv","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-rms-srv.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-RMS-TOL","status":"implemented","entities":{"left":{"code":"RMS","name":"Room"},"right":{"code":"TOL","name":"Tool"}},"summary":"Room/session context participates in current tool availability and execution.","route":"/docs/build/concepts/entity-model/relationships/rel-rms-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-rms-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ROL-SRV","status":"implemented","entities":{"left":{"code":"ROL","name":"Role"},"right":{"code":"SRV","name":"Server"}},"summary":"Roles are server-local, Groups carry them through the many-to-many `group_roles` join, and the canonical ladder is seeded per deployment.","route":"/docs/build/concepts/entity-model/relationships/rel-rol-srv","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-rol-srv.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-ROL-TOL","status":"implemented","entities":{"left":{"code":"ROL","name":"Role"},"right":{"code":"TOL","name":"Tool"}},"summary":"Tool authorization is indirect through `Role → Capability → Tool`; no direct Role-to-Tool join is required.","route":"/docs/build/concepts/entity-model/relationships/rel-rol-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-rol-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"},{"id":"REL-SRV-TOL","status":"implemented","entities":{"left":{"code":"SRV","name":"Server"},"right":{"code":"TOL","name":"Tool"}},"summary":"Tool catalog, activation, policy, and runtime availability are deployment-scoped.","route":"/docs/build/concepts/entity-model/relationships/rel-srv-tol","markdownEndpoint":"/docs/build/concepts/entity-model/relationships/rel-srv-tol.md","verification":"in-progress","productVersion":"alpha-source-4b3ea60"}]}