L3 final: the node-engine reads core-credentials and tool-runner with no fallback, and states its manifest reads (ADR 0601 §4, ADR 0614 §4, issue 774) #203

Merged
mesh-tools merged 24 commits from feat/l3-final into main 2026-11-04 00:23:57 +00:00
Member

One delivery group, branch feat/l3-final in mesh-sdk, mesh-delivery, mesh-catalog, mesh-tools and mesh-host: the final release of design 47's step L3 (issue 774, with 1367 and 1585).

This member:

  • The reviewed L3 node-engine commits a24a1d7..a0ce37f (the words read with no fallback; a module whose manifest lacks them keeps what runs, ADR 0601 §4).
  • The node record states manifest-reads from the mesh-sdk built in (ADR 0614 §4). Its own manifest needs nothing beyond the baseline, so the running node-engines are not held from receiving it.
  • After check 278aa5f0ccbe failed: compose.Input carries the held mark over the bus, and the sandbox names a module the input's engine holds ("its node-engine holds it: ") instead of failing on its stub as "0 bundle(s)".
  • Pins mesh-sdk 85ba0a9a70d8.
    What the operator sees: the node-engine updates itself on all four nodes.
    Tests: unit count unchanged; one integration test added (under 50).

Reviewed-by: mesh-code-reviewer@shanks at 30b86ea602
Pushed-by: lead-47@shanks

https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn

One delivery group, branch feat/l3-final in mesh-sdk, mesh-delivery, mesh-catalog, mesh-tools and mesh-host: the final release of design 47's step L3 (issue 774, with 1367 and 1585). This member: - The reviewed L3 node-engine commits a24a1d7..a0ce37f (the words read with no fallback; a module whose manifest lacks them keeps what runs, ADR 0601 §4). - The node record states `manifest-reads` from the mesh-sdk built in (ADR 0614 §4). Its own manifest needs nothing beyond the baseline, so the running node-engines are not held from receiving it. - After check 278aa5f0ccbe failed: compose.Input carries the held mark over the bus, and the sandbox names a module the input's engine holds ("its node-engine holds it: <why>") instead of failing on its stub as "0 bundle(s)". - Pins mesh-sdk 85ba0a9a70d8. What the operator sees: the node-engine updates itself on all four nodes. Tests: unit count unchanged; one integration test added (under 50). Reviewed-by: mesh-code-reviewer@shanks at 30b86ea602a8f157bcd05aad745c44f32ef7897c Pushed-by: lead-47@shanks https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
mesh-tools added 23 commits 2026-11-03 22:50:53 +00:00
Pin mesh-sdk cf5812101b0b, the group's final head: the module graph is no part of mesh-sdk (ADR 0603, ADR 0604, issue 1367)
mesh/check failed (4): unit: modules/mesh-provisioner.gofmt: not as gofmt writes them (run gofmt -w): modul…; and 3 more | a24a1d72ad45 on 798d73eb11e9
mesh/delivery-group group feat/l3b-bus rejected: composed together: the checker's verdict at the members' heads (a1cb9beeb97a): unit: modules/mesh-provisioner.…
mesh/delivery closed: the pull request closed unmerged
a24a1d72ad
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
The node record states the reader capabilities of the mesh-sdk the engine is built with (ADR 0614 §4, issue 774)
mesh/delivery closed: a newer head of the same pull request
mesh/delivery-group group feat/l3-final checking: 3 of 5 member(s) ready
mesh/check failed (2): unit: mesh-provisioner-client/cmd/mesh-provisioner-client.TestNatsANodeComingBackFil…; and 1 more | 32a99144f65e on 798d73eb11e9
32a99144f6
recordOf writes catalogue.ManifestReads in NodeRecord.ManifestReads, once per build, so the assigner moves a want only
to an engine that reads its manifest. A row holds the engine's own manifest to the baseline's words, so its new build is
never held for a word only it reads.

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

Delivery novox/mesh-host@30b86ea602a8 — merged since 2026-11-04T00:24:02Z

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

Group feat/l3-final: novox/mesh-catalog@6c09be4a70, novox/mesh-delivery@70ade15c36, novox/mesh-host@30b86ea602, novox/mesh-sdk@85ba0a9a70, novox/mesh-tools@7fd9d893c0

  • composed together: pass — the checker's verdict at the members' heads (d6a3e805db4a)

Transitions

  • 2026-11-03 23:56 (new) → proposed (announced): novox/mesh-host#203's head announced
  • 2026-11-03 23:56 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-04 00:24 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@30b86ea602a8` — **merged** since 2026-11-04T00:24:02Z **Source** — source.main moved to novox/mesh-host@83e135f10187. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `feat/l3-final`: novox/mesh-catalog@6c09be4a703e, novox/mesh-delivery@70ade15c36eb, novox/mesh-host@30b86ea602a8, novox/mesh-sdk@85ba0a9a70d8, novox/mesh-tools@7fd9d893c0a5 - composed together: pass — the checker's verdict at the members' heads (d6a3e805db4a) **Transitions** - 2026-11-03 23:56 (new) → proposed (announced): novox/mesh-host#203's head announced - 2026-11-03 23:56 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-04 00:24 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: not merged. The merge of this pull request into main at 32a99144f6 was declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.

mesh-delivery: **not merged.** The merge of this pull request into main at 32a99144f65e27c13b7db4fdb6d78b4fecd21f50 was declined: the operator, via telegram (user id verified), chose Decline. A new head asks the operator again.
jschoubben added 1 commit 2026-11-03 23:56:54 +00:00
An input carries the modules it holds as their stubs across the bus, and the sandbox names why the node-engine holds one (issue 774, group check 278aa5f0ccbe)
mesh/delivery-group group feat/l3-final merged: every member is merged
mesh/delivery merged: source.main moved to novox/mesh-host@83e135f10187
mesh/check checking 30b86ea602a8 on 83e135f10187 | novox/mesh-host#203 in group feat/l3-final
30b86ea602
The stub's mark (Manifest.Stubbed) is no field of a manifest's JSON, so an input a node-engine sent the check's
sandbox lost it: node-tools, held by its manifest's verdict, read as a tool runner with no bundle and refused every
module of ace, g14 and shanks for "its build produced 0 bundle(s)". compose.Input now writes its held modules (catalogue
and each node's kept) beside its fields and marks them again on reading; an input from an engine before the mark is
read by its contract, every module Refused names held as its stub. The sandbox composer also says, in the module's
read, why the input's node-engine holds a module the case carries, so the check names the cause, not a rule about the
stub. One subtest round-trips an input holding a refused tool runner, in both shapes; it refused for 0 bundles before.

Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
mesh-tools merged commit 83e135f101 into main 2026-11-04 00:23:57 +00:00
mesh-tools deleted branch feat/l3-final 2026-11-04 00:23:57 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-host#203