Without the controller: the vault retires and rotates, the healers act, the artifact store is swept, config and conditions stand alone (issue 1126) #592

Merged
mesh-tools merged 3 commits from fix/1126-gates-catalog into main 2026-11-02 10:36:35 +00:00
Member

Issue 1126 (design 47): the controller was unassigned (2026-11-02 10:09) and never stepped down through its lease record, so the parts that waited for that now do their job; the assigner (mesh-delivery #137) refuses to place the controller again, so none of these has a second writer.

  • mesh-vault retires unwanted accounts and rotates node logins on a recorded hand act; its lease watch and the lease fields of vault_status are gone.
  • mesh-healers act (nothing more written to would).
  • artifact-store-tools sweeps at a build's end and on a confirmed collect, keeping each module's five newest and every wanted build; each deletion is a hand act and artifacts-gone (ADR 0526 §1).
  • mesh-config trusts no relay from the controller; mesh-conditions carries nothing from the controller's bucket and clears once at start the open conditions of kinds that ended with the controller.
  • All five manifests drop the read of the controller's lease.

Tested locally (GOWORK=off): gofmt, go vet, go vet -tags integration, the unit suites and the integration suites of the five modules pass (the vault's rotation test, the healers' whole-bus test and the sweep's real-bus test run with no lease). Tests within budget.

Reviewed-by: review-g1@shanks at 326897d877
Pushed-by: lead-47@shanks

https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL

Issue 1126 (design 47): the controller was unassigned (2026-11-02 10:09) and never stepped down through its lease record, so the parts that waited for that now do their job; the assigner (mesh-delivery #137) refuses to place the controller again, so none of these has a second writer. - **mesh-vault** retires unwanted accounts and rotates node logins on a recorded hand act; its lease watch and the lease fields of `vault_status` are gone. - **mesh-healers** act (nothing more written to `would`). - **artifact-store-tools** sweeps at a build's end and on a confirmed collect, keeping each module's five newest and every wanted build; each deletion is a hand act and `artifacts-gone` (ADR 0526 §1). - **mesh-config** trusts no relay from the controller; **mesh-conditions** carries nothing from the controller's bucket and clears once at start the open conditions of kinds that ended with the controller. - All five manifests drop the read of the controller's lease. **Tested locally** (GOWORK=off): gofmt, `go vet`, `go vet -tags integration`, the unit suites and the integration suites of the five modules pass (the vault's rotation test, the healers' whole-bus test and the sweep's real-bus test run with no lease). Tests within budget. Reviewed-by: review-g1@shanks at 326897d8772f444c37b1e6bfa503f799af19a112 Pushed-by: lead-47@shanks https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
mesh-tools added 3 commits 2026-11-02 09:47:53 +00:00
The controller ended by its unassignment and its lease key expired, so the
gate on a handed lease kept retirement, rotation and node-login rotation off
for good (issue 1126, A3). Drop the gate, the lease watch and the manifest's
read of mesh-controller.lease; vault_status no longer reports a lease.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
The controller ended by its unassignment, so its lease key is absent for good
and the healers stayed in shadow while nobody swept the artifact store (issue
1126, A4). Drop both gates and each manifest's read of mesh-controller.lease;
the would bucket stays readable until its keys expire.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
mesh-config and mesh-conditions without the controller's lease
mesh/delivery merged: source.main moved to novox/mesh-catalog@d2de18fd6bdd
mesh/check checking 326897d8772f on d2de18fd6bdd
326897d877
The controller ended by its unassignment, so its lease is never handed and
both stayed in their controller-era branch (issue 1126, A5). mesh-config no
longer trusts the controller's relay: a trusted value needs the operator's
Approve. The condition keeper carries nothing from the controller, clears
once at start what it carried, and refuses take-over as the one source.
Both drop their manifest read of mesh-controller.lease.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Author
Member

Delivery novox/mesh-catalog@326897d8772f — merged since 2026-11-02T10:36:36Z

Source — source.main moved to novox/mesh-catalog@d2de18fd6b. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Transitions

  • 2026-11-02 09:47 (new) → proposed (announced): novox/mesh-catalog#592's head announced
  • 2026-11-02 09:47 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
  • 2026-11-02 10:36 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@326897d8772f` — **merged** since 2026-11-02T10:36:36Z **Source** — source.main moved to novox/mesh-catalog@d2de18fd6bdd. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-02 09:47 (new) → proposed (announced): novox/mesh-catalog#592's head announced - 2026-11-02 09:47 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false) - 2026-11-02 10:36 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit d2de18fd6b into main 2026-11-02 10:36:35 +00:00
mesh-tools deleted branch fix/1126-gates-catalog 2026-11-02 10:36:35 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#592