frombus: a node composing itself takes its modules from their builds and reads what providers elsewhere serve (issue 1126, group fix/1126-node-creds) #109

Merged
mesh-tools merged 3 commits from fix/1126-node-creds into main 2026-10-27 20:32:30 +00:00
Member

Delivery group fix/1126-node-creds with mesh-host and mesh-delivery (merge order: one pass for all).

A node that composes its own modules (ADR 0549) must hand a moved module its credentials and settle a served operator setting (${config:domain}) as the controller does. frombus now composes each module from its build key (waiting, in the controller's words, on a done key whose artifact names no reference), reads served keys of providers on other nodes, and leaves a module the node runs inside its own composition to its manifest (fold guard, with a row).

Nothing live changes yet: no node composes itself until the placement seed returns.

Tests: rows in frombus TestInput (reference wait, fold guard), each failing without its fix; the bus permission is proven in mesh-host's H8 under the real per-node user (ADR 0560).

Quick or thorough: thorough (one composition path in the sdk for controller and node, not a node-only patch).

Reviewed-by: review-1126d@shanks at 7a8e9f9706

Delivery group fix/1126-node-creds with mesh-host and mesh-delivery (merge order: one pass for all). A node that composes its own modules (ADR 0549) must hand a moved module its credentials and settle a served operator setting (`${config:domain}`) as the controller does. frombus now composes each module from its build key (waiting, in the controller's words, on a done key whose artifact names no reference), reads served keys of providers on other nodes, and leaves a module the node runs inside its own composition to its manifest (fold guard, with a row). Nothing live changes yet: no node composes itself until the placement seed returns. Tests: rows in frombus TestInput (reference wait, fold guard), each failing without its fix; the bus permission is proven in mesh-host's H8 under the real per-node user (ADR 0560). Quick or thorough: thorough (one composition path in the sdk for controller and node, not a node-only patch). Reviewed-by: review-1126d@shanks at 7a8e9f9706486669e97705f1cdb6b2f6002e24f5
mesh-tools added 3 commits 2026-10-27 20:31:34 +00:00
frombus composed every module from the indexer's raw manifest: no moved module
was handed, so the node stood in for own secrets the vault leaves to the
provisioner (the seed's refusals on all four nodes), and a provider elsewhere
had no config values, so mailu's served domain refused shanks.

- takein: the controller's take-in of a done key (artifacts, launchers, the
  templates archive's texts, Resolve) as one SDK rule; catalogue.Launchers holds
  the launcher rule buildstep now delegates to.
- frombus: each module placed on the composing node, and each kept at another
  build (Scope.KeptAt, a fingerprint), composes from its built manifest; another
  node's modules give the keys their served values fill (Reader.Served).
- buscompose: Declared.Served and Principal.ServedReads grant every node the read
  of exactly those keys of mesh-config_resolved.
- compose.ArtifactStoreAddress: the store as the node's composition routes to it.
Wait for a done key whose artifact names no reference, as the controller's take-in does, and hold the fold guard with a row (issue 1126, review round 1)
mesh/delivery merged: source.main moved to novox/mesh-sdk@d48365aed010
mesh/delivery-group group fix/1126-node-creds merged: every member is merged
mesh/check checking 7a8e9f970648 on d48365aed010 | novox/mesh-sdk#109 in group fix/1126-node-creds
7a8e9f9706
Author
Member

Delivery novox/mesh-sdk@7a8e9f970648 — merged since 2026-10-27T20:32:31Z

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

Group fix/1126-node-creds: novox/mesh-delivery@bb7f2ff365, novox/mesh-host@6a4718b712, novox/mesh-sdk@7a8e9f9706

Transitions

  • 2026-10-27 20:31 (new) → proposed (announced): novox/mesh-sdk#109's head announced
  • 2026-10-27 20: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-10-27 20:32 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-sdk@7a8e9f970648` — **merged** since 2026-10-27T20:32:31Z **Source** — source.main moved to novox/mesh-sdk@d48365aed010. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/1126-node-creds`: novox/mesh-delivery@bb7f2ff365c7, novox/mesh-host@6a4718b712b2, novox/mesh-sdk@7a8e9f970648 **Transitions** - 2026-10-27 20:31 (new) → proposed (announced): novox/mesh-sdk#109's head announced - 2026-10-27 20: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-10-27 20:32 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.
mesh-tools merged commit d48365aed0 into main 2026-10-27 20:32:30 +00:00
mesh-tools deleted branch fix/1126-node-creds 2026-10-27 20:32:30 +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-sdk#109