Keep the kept declaration read while a module runs at an old-form build, so novox and shanks apply their own composition again (issue 774) #182

Merged
mesh-tools merged 3 commits from fix/kept-read-and-foreseen-account into main 2026-10-30 19:49:17 +00:00
Member

Since 19:43 novox and shanks refused their own apply ("would remove systemd-resolved.bundle-tools …"): allHave retired the kept declaration although systemd-resolved (shanks) and nats (novox) run at an old controller build with no fp. d5e8458: only a new-form fp counts; cc3f7e8: a module the mesh provides (mesh-wireguard) counts as covered, proved by a selfcompose test, so the read still retires; 15361c6 pins mesh-sdk 4e9621e. Quick fix: the thorough one (those two modules wanted and built in the new form) belongs to L3 before the lease write.

Please wait for mesh/check to pass before merging; merge mesh-sdk first.

Reviewed-by: rev-sweep@shanks at 15361c661f

Since 19:43 novox and shanks refused their own apply ("would remove systemd-resolved.bundle-tools …"): allHave retired the kept declaration although systemd-resolved (shanks) and nats (novox) run at an old controller build with no fp. d5e8458: only a new-form fp counts; cc3f7e8: a module the mesh provides (mesh-wireguard) counts as covered, proved by a selfcompose test, so the read still retires; 15361c6 pins mesh-sdk 4e9621e. Quick fix: the thorough one (those two modules wanted and built in the new form) belongs to L3 before the lease write. Please wait for mesh/check to pass before merging; merge mesh-sdk first. Reviewed-by: rev-sweep@shanks at 15361c661f51105bef1a57ab3ceda11edf71ce03
mesh-tools added 3 commits 2026-10-30 19:37:22 +00:00
At 19:43:01 on 2026-10-30 shanks' new engine said "the kept declaration is no longer read: each of the 77 modules
placed here has a have of its own", and from 19:43:57 every apply of the node's own was refused: it would remove
systemd-resolved's resources (novox the same for nats and restic). systemd-resolved's have names only a controller
build (build-1791404191702719760), no fingerprint, so the assigner wants it nowhere and it runs folded in the node's
own, of which the kept declaration is the one record; retired, the folded module was composed as nothing.

Quick fix: never retire the kept declaration. Thorough fix: allHave counts only a have naming a fingerprint of the new
form (or removed); a module at a build of the old form keeps the read, named with why, until it has one. Chose
thorough: the read retires by itself once every placed module is wanted.
The review of d5e8458 found that mesh-wireguard, provided by the mesh and never wanted at a fingerprint, kept the kept
declaration read on every node for ever, against ADR 0550 §2 once the lease is written. A selfcompose row shows the
node's own composes it from delivery.ProvidedManifest with nothing running, so the kept read holds nothing of it.

Quick fix: name mesh-wireguard in allHave. Thorough fix: allHave counts every module delivery.ProvidedByMesh says the
mesh provides as covered. Chose thorough: one list of provided modules, mesh-sdk's.
Pin mesh-sdk 4e9621ed, so a proposal foresees a bus account the Approve will mint and a held module's first reason leads a refusal (issue 774)
mesh/delivery merged: source.main moved to novox/mesh-host@16b8f591ed6d
mesh/delivery-group group fix/kept-read-and-foreseen-account merged: every member is merged
mesh/check pass 15361c661f51 on b133a8949dcb | unit 2719 run, 602 kept, 36 skipped | integration 2731 run, 645 kept, 29 skipped | over bound: unit, in…
15361c661f
Author
Member

Delivery novox/mesh-host@15361c661f51 — merged since 2026-10-30T19:49:19Z

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

Group fix/kept-read-and-foreseen-account: novox/mesh-host@15361c661f, novox/mesh-sdk@4e9621edd6

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

Transitions

  • 2026-10-30 19:37 (new) → proposed (announced): novox/mesh-host#182's head announced
  • 2026-10-30 19:37 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 19:49 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@15361c661f51` — **merged** since 2026-10-30T19:49:19Z **Source** — source.main moved to novox/mesh-host@16b8f591ed6d. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/kept-read-and-foreseen-account`: novox/mesh-host@15361c661f51, novox/mesh-sdk@4e9621edd664 - composed together: pass — the checker's verdict at the members' heads (b768acf00ada) **Transitions** - 2026-10-30 19:37 (new) → proposed (announced): novox/mesh-host#182's head announced - 2026-10-30 19:37 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 19:49 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 16b8f591ed into main 2026-10-30 19:49:17 +00:00
mesh-tools deleted branch fix/kept-read-and-foreseen-account 2026-10-30 19:49:18 +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-host#182