Context
Phase 1 of diagram sharing is implemented for agent mode (branch diagram-sharing-phase1): share-aware access core, $DB/{e}/{id}/share|unshare|shares + $DB/{e}/shared endpoints, _shares lockdown, transitive cascade, _shares index registration, and grantee email→canonical-id resolution (resolve-existing).
Design: docs/design/diagram-sharing.md. Plan: docs/design/diagram-sharing-phase1-plan.md.
The agent path (mqdb-agent execute_with_sender) was extended, but the cluster uses a separate JsonDb code path that does not yet handle the share operations. This issue tracks bringing the cluster to parity.
Scope
Acceptance
Notes
- Trace the cluster
$DB/... request path first — the cluster does not reuse execute_with_sender.
- Pending-grant resolution was intentionally deferred (resolve-existing only); not in scope here.
Context
Phase 1 of diagram sharing is implemented for agent mode (branch
diagram-sharing-phase1): share-aware access core,$DB/{e}/{id}/share|unshare|shares+$DB/{e}/sharedendpoints,_shareslockdown, transitive cascade,_sharesindex registration, and grantee email→canonical-id resolution (resolve-existing).Design:
docs/design/diagram-sharing.md. Plan:docs/design/diagram-sharing-phase1-plan.md.The agent path (
mqdb-agentexecute_with_sender) was extended, but the cluster uses a separateJsonDbcode path that does not yet handle the share operations. This issue tracks bringing the cluster to parity.Scope
Share/Unshare/Shares/Sharedthrough the cluster DB flow. The cluster uses its ownJsonDbOpenum +cluster/node_controller/db_ops.rs(match request.op, ~line 382) andcluster_agent/admin.rsdispatch — not the agentRequestmatch. This is net-new wiring, not a copy._sharesas a partitioned entity: a grant is written/read on the resource's partition primary;check_access/share_levelrun where the resource lives (cluster/db_handler/).transport_execute.rs: Read→View, Update→Edit, delete owner-only)._sharesindexes at cluster startup (parity withMqdbAgent::register_share_indexes)._sharesorphan cleanup when a diagram is deleted (cluster delete path)._shareson the cluster path (parity with the agent guard).identity_crypto, or resolve before routing.Acceptance
mqdb dev test --sharingpasses on a 3-node cluster (share / read / update / delete / cascade / discovery, cross-node).Notes
$DB/...request path first — the cluster does not reuseexecute_with_sender.