A build not done yet holds its module, never every module of a node, and a refusal names what was held (issue 774) #140

Merged
jschoubben merged 3 commits from fix/build-not-done-holds-one-module into main 2026-10-30 18:53:04 +00:00
Member

At 19:30 on 2026-10-30 node-tools' want moved to a build not yet done; ace, g14 and shanks composed it from its source manifest (0 bundles) and refused every module, and the culprit rule hid the first error. c1bc21c: a node-wide refusal ends with (held before: ...). d539d7e: the runtime is blamed only where its stub composes. 9685990: Compose reads each placed module at its want's build; a running module whose build is not done is held and keeps what runs. Quick fix: none safe (a restart did not clear it); thorough: these three plus the engine's watch (mesh-host).

Please wait for mesh/check to pass before merging (today's 19:13 and 19:30 faults both merged ahead of their check). Merge mesh-sdk first.

Reviewed-by: rev-sweep@shanks at 9685990a15

At 19:30 on 2026-10-30 node-tools' want moved to a build not yet done; ace, g14 and shanks composed it from its source manifest (0 bundles) and refused every module, and the culprit rule hid the first error. c1bc21c: a node-wide refusal ends with (held before: ...). d539d7e: the runtime is blamed only where its stub composes. 9685990: Compose reads each placed module at its want's build; a running module whose build is not done is held and keeps what runs. Quick fix: none safe (a restart did not clear it); thorough: these three plus the engine's watch (mesh-host). Please wait for mesh/check to pass before merging (today's 19:13 and 19:30 faults both merged ahead of their check). Merge mesh-sdk first. Reviewed-by: rev-sweep@shanks at 9685990a15ed4d37931a176f5aa7e97b5210ee6c
mesh-tools added 3 commits 2026-10-30 18:52:27 +00:00
At 19:30 on 2026-10-30 ace, g14 and shanks refused every module with "node-tools … its build produced 0 bundle(s)":
the refusal of node-tools' stand-in, while why node-tools could not be composed was dropped with the hold.

Quick fix: log held in mesh-host before marking. Thorough fix: Compose's node-wide error carries "(held before:
<module>: <why>; …)", so the engine's journal, every have's detail and any caller see the cause. Chose thorough.
The culprit rule held a module whose stub made the composition fail otherwise. The runtime's stub carries no bundle,
so it always fails otherwise: any refusal naming node-tools (or a module whose name holds it) held the runtime, and
the node was then refused whole for the runtime's "0 bundle(s)".

Quick fix: never take node-tools as a culprit. Thorough fix: blames, the rule as one function, takes the runtime only
where its stub composes. Chose thorough: a runtime whose stub composes may still be held alone.
Compose a module at the build its want names and hold a running one whose build is not done, so the runtime never loses its bundle (issue 774)
mesh/delivery merged: source.main moved to novox/mesh-sdk@14de8dadb4ce
mesh/delivery-group group fix/build-not-done-holds-one-module merged: every member is merged
mesh/check checking 9685990a15ed on 14de8dadb4ce | novox/mesh-sdk#140 in group fix/build-not-done-holds-one-module
9685990a15
At 19:30 on 2026-10-30 node-tools' trunk fingerprint moved to a build not yet done; fromBuilds then composed it from
the indexer's manifest, which names no bundle, and ace, g14 and shanks refused every module ("its build produced 0
bundle(s)") until another input moved after the build landed.

Quick fix: skip the runtime's check while its build is not done. Thorough fix: Compose reads each placed module at the
build its want names (as Scope.KeptAt), and a module that runs whose build is not done is held, keeping what runs (a
held runtime is composed as what runs of it, its running bundle), named with why; a module nothing runs of still
composes from the indexer's manifest as before. Input, PlansHeld and Answer read the trunk's builds as before. Chose
thorough: no running module is ever composed from a source manifest that names no build.
Author
Member

Delivery novox/mesh-sdk@9685990a15ed — merged since 2026-10-30T18:53:05Z

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

Group fix/build-not-done-holds-one-module: novox/mesh-host@33131dcbfe, novox/mesh-sdk@9685990a15

Transitions

  • 2026-10-30 18:52 (new) → proposed (announced): novox/mesh-sdk#140's head announced
  • 2026-10-30 18:52 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-30 18:53 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@9685990a15ed` — **merged** since 2026-10-30T18:53:05Z **Source** — source.main moved to novox/mesh-sdk@14de8dadb4ce. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/build-not-done-holds-one-module`: novox/mesh-host@33131dcbfe77, novox/mesh-sdk@9685990a15ed **Transitions** - 2026-10-30 18:52 (new) → proposed (announced): novox/mesh-sdk#140's head announced - 2026-10-30 18:52 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-30 18:53 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`.
jschoubben merged commit 14de8dadb4 into main 2026-10-30 18:53:04 +00:00
jschoubben deleted branch fix/build-not-done-holds-one-module 2026-10-30 18:53: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#140