{ "plan": "docs/plans/2026-07-21-per-cluster-mesh-phase1.md", "branch": "feat/mesh-phase1", "decisions": { "seal-semantics": "DB-derived + Enabled hatch (confirmed 2026-07-22)", "cluster-scope": "Dropped \u2014 no cluster-scoped deployment exists; expected set = all enabled ClusterNode rows", "node-roles": "Every ClusterNode row is a driver node; documented + pinned by test, no Roles column", "adminui-edit": "Deferred to Phase 2 (nothing reads the columns until then)", "maintenance-hatch": "MaintenanceMode column, not Enabled=0 (blocked by DraftValidator on any 2-node pair)" }, "tasks": [ { "id": 1, "subject": "Address columns on ClusterNode", "status": "completed", "commit": "2bbb0271", "blockedBy": [] }, { "id": 2, "subject": "EF migration AddClusterNodeTransportPorts", "status": "completed", "commit": "da74ebd6", "blockedBy": [ 1 ] }, { "id": 3, "subject": "Coordinator sources expected-ack set from ClusterNode", "status": "completed", "commit": "d88e2455", "blockedBy": [ 2 ] }, { "id": 4, "subject": "Reconcile duplicated AkkaPort with the node's own Cluster:Port", "status": "completed", "blockedBy": [ 2 ], "commit": "90c1302f" }, { "id": 5, "subject": "Rig seed + docs", "status": "completed", "blockedBy": [ 3, 4 ], "commit": "57e1d017" }, { "id": 6, "subject": "Live gate on docker-dev", "status": "completed", "blockedBy": [ 5 ], "result": "live-gate PASSED (2026-07-22-mesh-phase1-live-gate.md)" }, { "id": 7, "subject": "MaintenanceMode \u2014 escape hatch the live gate proved missing", "status": "completed", "commit": "ee69caa2", "blockedBy": [ 6 ], "origin": "added from gate step 4 failure" } ] }