A module's own refusal refuses that module, not the node; contributions say unset values in config words; a folded module owns its manifest's paths (issue 1126, group fix/1126-seed-8) #117

Merged
mesh-tools merged 3 commits from fix/1126-seed-8 into main 2026-10-28 13:27:05 +00:00
Member

Delivery group fix/1126-seed-8 (mesh-sdk, mesh-host). The seed-8 placement probe (mesh-catalog#542, issue 1126 notes 70-71) found three faults in how a node composes:

  • One module refused the whole node (novox: same 0, over de-spiegel's unset route names). A stub that keeps its contributions failed the same way, so the culprit search ended empty. Now such a module is tried bare, and only it is refused. A refusal still fails the candidate (VerdictOf), so nothing can pass as same.
  • Wording: filledFromSettings returns *UnsetSettingError, so a contribution's unset value is said in the config form (${config:…}, set it with the config verb), as files, units and owners already are.
  • Folded modules' owned paths (ace: f1-circuits, snake, txt-game). The node counted every path a carried module runs at; the controller (ownedPaths, mesh-sdk f178323b) counts only the manifest's declared literal paths. Manifest.OwnsPaths (catalogue.DeclaredPaths) replaces RunsAt, so the node now agrees with the controller.

Quick vs thorough: thorough. The culprit search and the owned-paths rule are shared by every node and module; quick would have accepted the differences.
Tests: rows in existing tests only (mesh-sdk over budget, count unchanged: 1725). Captured manifests (sha256 = the indexer's digests). Each row fails on main. mesh-host's TestNatsANodeThePlacementNamesComposesAndAppliesItsOwn passes against this head.

Reviewed-by: rev-seed-8@shanks at f387581b6b

Delivery group fix/1126-seed-8 (mesh-sdk, mesh-host). The seed-8 placement probe (mesh-catalog#542, issue 1126 notes 70-71) found three faults in how a node composes: - **One module refused the whole node** (novox: same 0, over de-spiegel's unset route names). A stub that keeps its contributions failed the same way, so the culprit search ended empty. Now such a module is tried bare, and only it is refused. A refusal still fails the candidate (VerdictOf), so nothing can pass as same. - **Wording:** filledFromSettings returns *UnsetSettingError, so a contribution's unset value is said in the config form (${config:…}, set it with the config verb), as files, units and owners already are. - **Folded modules' owned paths** (ace: f1-circuits, snake, txt-game). The node counted every path a carried module runs at; the controller (ownedPaths, mesh-sdk f178323b) counts only the manifest's declared literal paths. Manifest.OwnsPaths (catalogue.DeclaredPaths) replaces RunsAt, so the node now agrees with the controller. Quick vs thorough: thorough. The culprit search and the owned-paths rule are shared by every node and module; quick would have accepted the differences. Tests: rows in existing tests only (mesh-sdk over budget, count unchanged: 1725). Captured manifests (sha256 = the indexer's digests). Each row fails on main. mesh-host's TestNatsANodeThePlacementNamesComposesAndAppliesItsOwn passes against this head. Reviewed-by: rev-seed-8@shanks at f387581b6bfba634c703a8a4bdc65611223585a8
mesh-tools added 3 commits 2026-10-28 13:09:57 +00:00
Author
Member

Delivery novox/mesh-sdk@f387581b6bfb — merged since 2026-10-28T13:27:08Z

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

Group fix/1126-seed-8: novox/mesh-host@daaa1962bd, novox/mesh-sdk@f387581b6b

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

Transitions

  • 2026-10-28 13:10 (new) → proposed (announced): novox/mesh-sdk#117's head announced
  • 2026-10-28 13:10 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-28 13:27 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@f387581b6bfb` — **merged** since 2026-10-28T13:27:08Z **Source** — source.main moved to novox/mesh-sdk@7aedd28f01dc. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/1126-seed-8`: novox/mesh-host@daaa1962bdab, novox/mesh-sdk@f387581b6bfb - composed together: pass — the checker's verdict at the members' heads (36cdde1912b7) **Transitions** - 2026-10-28 13:10 (new) → proposed (announced): novox/mesh-sdk#117's head announced - 2026-10-28 13:10 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-28 13:27 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-tools merged commit 7aedd28f01 into main 2026-10-28 13:27:05 +00:00
mesh-tools deleted branch fix/1126-seed-8 2026-10-28 13:27:05 +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#117