The node-engine without the controller's stream and lease (issue 1126 group B) #197

Merged
mesh-tools merged 14 commits from feat/1126-removal into main 2026-11-02 13:41:30 +00:00
Member

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 049c3b8c11

https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL

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
mesh-tools added 14 commits 2026-11-02 11:31:21 +00:00
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
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
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Every member builds against mesh-sdk 729a86b, the head of feat/1126-removal, so the group is checked as one contract.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Every member builds against mesh-sdk f569924, the head of feat/1126-removal, so the group is checked as one contract.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Pin mesh-sdk to the group head of issue 1126
mesh/delivery merged: source.main moved to novox/mesh-host@98fbc490a4c9
mesh/delivery-group group feat/1126-removal merged: every member is merged
mesh/check checking 049c3b8c11c9 on 84737f4cb26d | novox/mesh-host#197 in group feat/1126-removal
049c3b8c11
Every member builds against mesh-sdk abf5eac, the head of feat/1126-removal, so the group is checked as one contract.

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

Delivery novox/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.

Group feat/1126-removal: novox/mesh-catalog@fa6dc3a48b, novox/mesh-delivery@e2cb398186, novox/mesh-host@049c3b8c11, novox/mesh-sdk@abf5eace77, novox/mesh-tools@e475d9f849

  • 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`.
Author
Member

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.
Author
Member

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.
Author
Member

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-tools merged commit 98fbc490a4 into main 2026-11-02 13:41:30 +00:00
mesh-tools deleted branch feat/1126-removal 2026-11-02 13:41:33 +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-host#197