A node folds a placed module with no new-form build into its own composition, as the controller does, so the tunnel and the bus are not dropped when nodes compose themselves (issue 1126) #107

Merged
mesh-tools merged 1 commits from fix/1126-fold into main 2026-10-27 08:09:04 +00:00
Member

Issue 1126, notes 22-23. Delivery group fix/1126-fold with mesh-host.

Found by the seed's review: nine placed modules have no new-form (src2) build and no want (mesh-wireguard on every node; nats, photos, de-spiegel, link2pay on novox; f1-circuits, snake, txt-game on ace; systemd-resolved on shanks). The controller folds their resources into the node's own composition (mesh-controller composed_writer.go compositionsOf); compose.compositions cut them out, so after the placement seed a self-composing node would drop the tunnel everywhere and the bus on novox.

  • compose.Node.InOwn: compositions() folds a module in InOwn with no src2 fingerprint into the node's own composition (resources keep their place, module key deleted, filled paths appended in declaration order), exactly as compositionsOf; a want naming a src2 build still moves the module out.
  • frombus.Scope.InOwn (+ frombus.InOwn, unused by mesh-host now; to remove with the next sdk change).

Quick vs thorough: quick = new-form builds and wants for the eight old modules (leaves mesh-wireguard, which the indexer does not hold); thorough chosen = the controller's fold rule in the shared composer.
Safety: no node composes itself before the seed (indexer_placement empty), so delivering this changes nothing a node runs today.
Tests: frombus Answer row (mesh-wireguard + an old-form module answer 'same' against an independently written controller-style fold; fails without), composed_test fold row; whole suite + integration vet pass; no new test functions.

Reviewed-by: review-fold@shanks at 05b6783103

Issue 1126, notes 22-23. Delivery group fix/1126-fold with mesh-host. Found by the seed's review: nine placed modules have no new-form (src2) build and no want (mesh-wireguard on every node; nats, photos, de-spiegel, link2pay on novox; f1-circuits, snake, txt-game on ace; systemd-resolved on shanks). The controller folds their resources into the node's own composition (mesh-controller composed_writer.go compositionsOf); compose.compositions cut them out, so after the placement seed a self-composing node would drop the tunnel everywhere and the bus on novox. - compose.Node.InOwn: compositions() folds a module in InOwn with no src2 fingerprint into the node's own composition (resources keep their place, module key deleted, filled paths appended in declaration order), exactly as compositionsOf; a want naming a src2 build still moves the module out. - frombus.Scope.InOwn (+ frombus.InOwn, unused by mesh-host now; to remove with the next sdk change). Quick vs thorough: quick = new-form builds and wants for the eight old modules (leaves mesh-wireguard, which the indexer does not hold); thorough chosen = the controller's fold rule in the shared composer. Safety: no node composes itself before the seed (indexer_placement empty), so delivering this changes nothing a node runs today. Tests: frombus Answer row (mesh-wireguard + an old-form module answer 'same' against an independently written controller-style fold; fails without), composed_test fold row; whole suite + integration vet pass; no new test functions. Reviewed-by: review-fold@shanks at 05b6783103665207162d278543ffa9ec2a6ed7b1
mesh-tools added 1 commit 2026-10-27 08:06:40 +00:00
Fold a module no new-form build names into the node's own composition, as the controller does, so a self-composing node keeps the tunnel and the bus (issue 1126)
mesh/delivery merged: source.main moved to novox/mesh-sdk@a262c7dbe0ff
mesh/delivery-group group fix/1126-fold merged: every member is merged
mesh/check checking 05b678310366 on 56de5ba84010 | novox/mesh-sdk#107 in group fix/1126-fold
05b6783103
mesh-wireguard (built by nobody) and every module a node runs inside its own
composition (Node.InOwn, from frombus.InOwn of what it runs) were cut out as
skipped: every node's shadow answered differs to the placement seed, and a node
composing itself after it would drop their resources. compositions now folds
them in place, module taken off, filled paths with them, as mesh-controller's
compositionsOf does; a want naming a new-form build still moves one out.
Author
Member

Delivery novox/mesh-sdk@05b678310366 — merged since 2026-10-27T08:09:05Z

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

Group fix/1126-fold: novox/mesh-host@69b845c0f7, novox/mesh-sdk@05b6783103

Transitions

  • 2026-10-27 08:06 (new) → proposed (announced): novox/mesh-sdk#107's head announced
  • 2026-10-27 08:06 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 08:09 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@05b678310366` — **merged** since 2026-10-27T08:09:05Z **Source** — source.main moved to novox/mesh-sdk@a262c7dbe0ff. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/1126-fold`: novox/mesh-host@69b845c0f7b2, novox/mesh-sdk@05b678310366 **Transitions** - 2026-10-27 08:06 (new) → proposed (announced): novox/mesh-sdk#107's head announced - 2026-10-27 08:06 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 08:09 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.
mesh-tools merged commit a262c7dbe0 into main 2026-10-27 08:09:04 +00:00
mesh-tools deleted branch fix/1126-fold 2026-10-27 08:09:04 +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#107