The provisioner's retiring asks get a bounded id, and a refused one is said (issue 1966) #666

Merged
mesh-tools merged 1 commits from fix/1966-unpublished-placed-module into main 2026-11-12 15:34:21 +00:00
Member

Issue 1966; design 47 fix-unpublished-placed-module U6 and U7 (hq design/47-unpublished-placed-module). Group with mesh-host fix/1966-unpublished-placed-module.

Live: the four *.mesh-build-node.secret-npm-package-registry keys stay retiring with the why "its ask waits until fewer than 3 of mesh-provisioner's asks stand open", while the router refuses each ask at every pass because its id is over 64 characters (holder.go ask id, operatorchannelclient ask.go:240).

  • U7: askID is retire-<16 hex of sha256(key)>- (34 characters); a refused ask sets the key's why to "its ask is refused: ", read back by Holder.RefusedAsks, and provisioner_health is unhealthy naming the key and the refusal; a later accepted ask clears it.
  • U6: the comments at holder.go:113-114 and FromCompositions say what the code does: an unpublished module keeps only its own plan and keys.

Tests: TestARetiringAskIsBoundedAndARefusedOneIsSaid (fails with the old id). vet, vet -tags integration, unit and integration tests of the module pass.

Reviewed-by: mesh-code-reviewer@shanks at 3bb8ace833 (round 2)
Pushed-by: fix-1965@shanks

Issue 1966; design 47 fix-unpublished-placed-module U6 and U7 (hq design/47-unpublished-placed-module). Group with mesh-host fix/1966-unpublished-placed-module. Live: the four *.mesh-build-node.secret-npm-package-registry keys stay retiring with the why "its ask waits until fewer than 3 of mesh-provisioner's asks stand open", while the router refuses each ask at every pass because its id is over 64 characters (holder.go ask id, operatorchannelclient ask.go:240). - U7: askID is retire-<16 hex of sha256(key)>-<unix> (34 characters); a refused ask sets the key's why to "its ask is refused: <words>", read back by Holder.RefusedAsks, and provisioner_health is unhealthy naming the key and the refusal; a later accepted ask clears it. - U6: the comments at holder.go:113-114 and FromCompositions say what the code does: an unpublished module keeps only its own plan and keys. Tests: TestARetiringAskIsBoundedAndARefusedOneIsSaid (fails with the old id). vet, vet -tags integration, unit and integration tests of the module pass. Reviewed-by: mesh-code-reviewer@shanks at 3bb8ace833d11070401dbc306627cfaf8fa3bee7 (round 2) Pushed-by: fix-1965@shanks
mesh-tools added 1 commit 2026-11-12 15:03:06 +00:00
U6, U7 provisioner: a bounded retiring ask id, a refused ask said, the Composition comment corrected
mesh/delivery merged: source.main moved to novox/mesh-catalog@c0d666fdcf55
mesh/delivery-group group fix/1966-unpublished-placed-module merged: every member is merged
mesh/check checking 3bb8ace833d1 on c0d666fdcf55 | novox/mesh-catalog#666 in group fix/1966-unpublished-placed-module
3bb8ace833
The retiring ask's id is made from the key's digest and the time (at most 64 characters),
so a long key is asked. An ask the router's rules refuse is said in the key's why and in
provisioner_health. The Composition comment says what the code does: an unpublished
module keeps only its own plan and keys.

Builds: design 47 fix-unpublished-placed-module U6, U7, ADR 0593 §8
Author
Member

Delivery novox/mesh-catalog@3bb8ace833d1 — merged since 2026-11-12T15:34:22Z

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

Group fix/1966-unpublished-placed-module: novox/mesh-catalog@3bb8ace833, novox/mesh-host@8e993c759a

Transitions

  • 2026-11-12 15:03 (new) → proposed (announced): novox/mesh-catalog#666's head announced
  • 2026-11-12 15:03 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-11-12 15:34 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-catalog@3bb8ace833d1` — **merged** since 2026-11-12T15:34:22Z **Source** — source.main moved to novox/mesh-catalog@c0d666fdcf55. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/1966-unpublished-placed-module`: novox/mesh-catalog@3bb8ace833d1, novox/mesh-host@8e993c759a5c **Transitions** - 2026-11-12 15:03 (new) → proposed (announced): novox/mesh-catalog#666's head announced - 2026-11-12 15:03 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-11-12 15:34 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 c0d666fdcf into main 2026-11-12 15:34:21 +00:00
mesh-tools deleted branch fix/1966-unpublished-placed-module 2026-11-12 15:34:22 +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-catalog#666