Issue 1126 (remove the controller), delivery group feat/1126-removal: mesh-sdk, mesh-delivery, mesh-catalog, mesh-host, mesh-tools, mesh-networking. Decision: ADR 0590 (the controller ends by its unassignment; each sensitive vault verb judges its own caller). Also folds in mesh-catalog #593's commits and the fixes of issues 1748, 1926, 1930.
Tests: offline untagged suites of every module against mesh-sdk abf5eac, go vet -tags integration, the bus removal integration test; see the review record.
Issue 1126 (remove the controller), delivery group feat/1126-removal: mesh-sdk, mesh-delivery, mesh-catalog, mesh-host, mesh-tools, mesh-networking. Decision: ADR 0590 (the controller ends by its unassignment; each sensitive vault verb judges its own caller). Also folds in mesh-catalog #593's commits and the fixes of issues 1748, 1926, 1930.
Tests: offline untagged suites of every module against mesh-sdk abf5eac, go vet -tags integration, the bus removal integration test; see the review record.
Reviewed-by: review-1126@shanks at 049c3b8c11c9c1263e24221718b20c2c6c7cb12c
https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
The controller ended by its unassignment (issue 1126, ADR 0590), so no build is judged by the lease: the lease
witness, its contract and the direct get the witness asked it with are removed, and its tests now prove each rollback
path on the node tools' PING.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
The controller's declared-packages mirror ended with the controller (issue 1126) and is deleted after group B's
delivery, so the verb no longer reads or compares it.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
The controller that signed the hand-over, search, judgement, access and move asks ended (issue 1126), so a link
believes none of them by having no signer, and the per-ask key it was told to follow goes with the lease.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
The CONTROL stream the facts, the enrolment and the overlay rekey were published into was the controller's, which ended
by its unassignment (issue 1126) and whose stream is removed after group B's delivery: a publish there would fail every
facts event before its haves are written. The facts go into the haves as they did after the report, the enrolment goes
through mesh-enrolment alone, and overlay take is refused because no seat takes a rekey now.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
nox now calls the seats' verbs through the console itself (mesh-catalog #593), and the controller the engine forwarded
its lines to ended (issue 1126), so the socket, its forward and the subject it asked on go. The kernel's word on a
peer moves into the filled-file socket, its one remaining reader.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Every node composes its own since group A (issue 1126), so the resync that handed the vault an own secret's value
while a node applied the controller's compositions never runs, the shadow's answers read no want, and nothing follows
the heard vault key any more.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
The bus module on the bus node runs from what its agent holds (its own composition, or the declaration kept before the
switch: every novox have read 2026-11-02 names its own composition or none, and nats names a build alone), while
composed-<node> was written by the controller, which ended (issue 1126). The follower now looks at the agent's record
of what runs whenever it changed, writes again only when the file it names moved, and trusts no composition signer.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Deliverynovox/mesh-host@049c3b8c11c9 — merged since 2026-11-02T13:41:40Z
Source — source.main moved to novox/mesh-host@98fbc490a4. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
composed together: pass — the checker's verdict at the members' heads (f929346c4b40)
Transitions
2026-11-02 11:31 (new) → proposed (announced): novox/mesh-host#197's head announced
2026-11-02 11:31 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 13:41 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-host@049c3b8c11c9` — **merged** since 2026-11-02T13:41:40Z
**Source** — source.main moved to novox/mesh-host@98fbc490a4c9. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `feat/1126-removal`: novox/mesh-catalog@fa6dc3a48b0c, novox/mesh-delivery@e2cb3981866e, novox/mesh-host@049c3b8c11c9, novox/mesh-sdk@abf5eace7791, novox/mesh-tools@e475d9f849ca
- composed together: pass — the checker's verdict at the members' heads (f929346c4b40)
**Transitions**
- 2026-11-02 11:31 (new) → proposed (announced): novox/mesh-host#197's head announced
- 2026-11-02 11:31 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 13:41 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: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Issue 1126 (remove the controller), delivery group feat/1126-removal: mesh-sdk, mesh-delivery, mesh-catalog, mesh-host, mesh-tools, mesh-networking. Decision: ADR 0590 (the controller ends by its unassignment; each sensitive vault verb judges its own caller). Also folds in mesh-catalog #593's commits and the fixes of issues 1748, 1926, 1930.
Tests: offline untagged suites of every module against mesh-sdk abf5eac, go vet -tags integration, the bus removal integration test; see the review record.
Reviewed-by: review-1126@shanks at
049c3b8c11https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Delivery
novox/mesh-host@049c3b8c11c9— merged since 2026-11-02T13:41:40ZSource — source.main moved to novox/mesh-host@98fbc490a4. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
feat/1126-removal: novox/mesh-catalog@fa6dc3a48b, novox/mesh-delivery@e2cb398186, novox/mesh-host@049c3b8c11, novox/mesh-sdk@abf5eace77, novox/mesh-tools@e475d9f849Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.