Issue 1937 (critical). The controller serves held (read-only, using #451's store check) and says artifacts-gone on mesh.seat.mesh-controller.event.artifacts-gone when a take-in is refused because blobs are gone, naming every gone blob. The grant lets it publish the event.
Also carries, merged from fix/1931-reconnects-verb:
Issue 1938: chainBuildByID (internal/inventory/chain_builds.go) returns the build's SourceFingerprint again, so the controller writes the grants the assigner reads; it has written none since 2026-10-18 (the live grants bucket holds 0 keys).
Issue 1931: about 20 integration test files made to match R4g (modules taken from the builder's done key, no build asked), so mesh-controller's integration level passes: 2566 tests, nothing kept, in 5m38s (try-1792817721004558884); and the rollout test's race between anchor's report and the silence bound removed (anchor reports on its send).
Group fix/1937-done-key-blobs: mesh-sdk, mesh-controller, mesh-delivery. The builder's recovery at its start holds when this controller is delivered before the builder (the delivery plan's tiers will be read). Nothing the operator sees changes.
Reviewed-by: review-1937@shanks at 3b51d3f86e
Reviewed-by: review-453b@shanks at 16ea033124
Reviewed-by: review-453b@shanks at c06f75d083
Pushed-by: lead-47@shanks
Issue 1937 (critical). The controller serves `held` (read-only, using #451's store check) and says `artifacts-gone` on `mesh.seat.mesh-controller.event.artifacts-gone` when a take-in is refused because blobs are gone, naming every gone blob. The grant lets it publish the event.
Also carries, merged from fix/1931-reconnects-verb:
- Issue 1938: chainBuildByID (internal/inventory/chain_builds.go) returns the build's SourceFingerprint again, so the controller writes the grants the assigner reads; it has written none since 2026-10-18 (the live grants bucket holds 0 keys).
- Issue 1931: about 20 integration test files made to match R4g (modules taken from the builder's done key, no build asked), so mesh-controller's integration level passes: 2566 tests, nothing kept, in 5m38s (try-1792817721004558884); and the rollout test's race between anchor's report and the silence bound removed (anchor reports on its send).
Group `fix/1937-done-key-blobs`: mesh-sdk, mesh-controller, mesh-delivery. The builder's recovery at its start holds when this controller is delivered before the builder (the delivery plan's tiers will be read). Nothing the operator sees changes.
Reviewed-by: review-1937@shanks at 3b51d3f86ea65c17af9753430550ee271a8d8703
Reviewed-by: review-453b@shanks at 16ea033124e1a6b9b2aa7ac74dd0778046915708
Reviewed-by: review-453b@shanks at c06f75d083a990e43cd25f7e69c4f54056edf327
Pushed-by: lead-47@shanks
mesh/delivery-group group fix/1937-done-key-blobs rejected: composed together: the checker's verdict at the members' heads (c20fdcb8c623): integration: github.…
A done key the controller never took in holds no manifest, and the store's nightly collector deleted its bare blob:
node-tools', mesh-host's and the forge bridge's keys name blobs that answer 404. Since issue 1933 the take-in refuses such a
key, and nothing built it again. held (in the serving process, HEADs only) lets the builder ask before it reuses a key; a
refused take-in now names every gone archive and says artifacts-gone with the module, key, fingerprint and references.
Deliverynovox/mesh-controller@c06f75d083a9 — stopped since 2026-10-24T10:53:06Z
Covered: covered after its stop: a later walk that contains it was delivered: plan-1792856223268385098 (novox/mesh-controller at 34b105ea into main, done, contains its merge 1b0fd8b4)
Delivery plan — builds mesh-controller → novox; no bus step
composed together: pass — the checker's verdict at the members' heads (5bd558b99155)
Transitions
2026-10-24 05:16 (new) → proposed (announced): novox/mesh-controller#453's head announced
2026-10-24 10:35 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
2026-10-24 10:35 held → delivering (release): the operator merged the reviewed group fix/1937-done-key-blobs by hand at 12:35 (temporary build-publish-deliver mode since 00:24; their merge is their word to release); the group's composed check passed at 07:26 but never reached the forge (issue 1726)
2026-10-24 10:53 delivering → stopped (stop): its walk plan-1792838111606250980 was stopped by a person (mesh-controller): the operator's word 12:53: close it. Its tier 0 waits for ever on mesh-sdk ('builders disagree': a stale ace.typescript key in mesh-build-node_toolchains, issue 1940), and the 1940 fix can become a plan only after this one ends (ADR 0276 §4). Retried after the 1940 fix is delivered.
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-controller@c06f75d083a9` — **stopped** since 2026-10-24T10:53:06Z
**Covered**: covered after its stop: a later walk that contains it was delivered: plan-1792856223268385098 (novox/mesh-controller at 34b105ea into main, done, contains its merge 1b0fd8b4)
**Delivery plan** — builds mesh-controller → novox; no bus step
- tier 0: mesh-controller
- novox: receives mesh-controller
**Group** `fix/1937-done-key-blobs`: novox/mesh-controller@c06f75d083a9, novox/mesh-delivery@28ee22ef27e2, novox/mesh-sdk@34f210e5eba1
- composed together: pass — the checker's verdict at the members' heads (5bd558b99155)
**Transitions**
- 2026-10-24 05:16 (new) → proposed (announced): novox/mesh-controller#453's head announced
- 2026-10-24 10:35 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
- 2026-10-24 10:35 held → delivering (release): the operator merged the reviewed group fix/1937-done-key-blobs by hand at 12:35 (temporary build-publish-deliver mode since 00:24; their merge is their word to release); the group's composed check passed at 07:26 but never reached the forge (issue 1726)
- 2026-10-24 10:53 delivering → stopped (stop): its walk plan-1792838111606250980 was stopped by a person (mesh-controller): the operator's word 12:53: close it. Its tier 0 waits for ever on mesh-sdk ('builders disagree': a stale ace.typescript key in mesh-build-node_toolchains, issue 1940), and the 1940 fix can become a plan only after this one ends (ADR 0276 §4). Retried after the 1940 fix is delivered.
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
chainBuildByID answered a trimmed build without SourceFingerprint since builds moved to the builds bucket (issue 1090), so
currentFingerprints read every fingerprint empty and grantsFrom skipped every module: mesh-controller_grants has never held
a key, and TestTheGrantOfAnIssuedCredentialIsOnTheBus failed on main.
mesh/delivery-group group fix/1937-done-key-blobs rejected: composed together: the checker's verdict at the members' heads (dbd9c3771cd8): integration: github.…
mesh-tools
changed title from Answer held and say artifacts-gone, so the builder rebuilds a done key whose blob is gone (issue 1937) to Answer held and say artifacts-gone; write the grants again; integration tests match R4g (issues 1937, 1938, 1931)2026-10-24 05:07:11 +00:00
Under a loaded run the report came 5.7 s and then more than 10 s after the send, and anchor was named silent. Now the
fake send makes anchor's report as soon as tier 1 is recorded, and the test waits for it; laptop never reports and is
named silent.
mesh/delivery covered after its stop: a later walk that contains it was delivered: plan-1792856223268385098 (novox/mesh-controller at 34b105ea into main,…
mesh/check failed: forge: go.mod of novox/mesh-controller#453 cannot be read to place the mesh-sdk its tests read: nats: no responders available for r…
mesh/delivery-group group fix/1937-done-key-blobs delivering: 0 of 3 delivered
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Issue 1937 (critical). The controller serves
held(read-only, using #451's store check) and saysartifacts-goneonmesh.seat.mesh-controller.event.artifacts-gonewhen a take-in is refused because blobs are gone, naming every gone blob. The grant lets it publish the event.Also carries, merged from fix/1931-reconnects-verb:
Group
fix/1937-done-key-blobs: mesh-sdk, mesh-controller, mesh-delivery. The builder's recovery at its start holds when this controller is delivered before the builder (the delivery plan's tiers will be read). Nothing the operator sees changes.Reviewed-by: review-1937@shanks at
3b51d3f86eReviewed-by: review-453b@shanks at
16ea033124Reviewed-by: review-453b@shanks at
c06f75d083Pushed-by: lead-47@shanks
Delivery
novox/mesh-controller@c06f75d083a9— stopped since 2026-10-24T10:53:06ZCovered: covered after its stop: a later walk that contains it was delivered: plan-1792856223268385098 (novox/mesh-controller at
34b105eainto main, done, contains its merge1b0fd8b4)Delivery plan — builds mesh-controller → novox; no bus step
Group
fix/1937-done-key-blobs: novox/mesh-controller@c06f75d083, novox/mesh-delivery@28ee22ef27, novox/mesh-sdk@34f210e5ebTransitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Answer held and say artifacts-gone, so the builder rebuilds a done key whose blob is gone (issue 1937)to Answer held and say artifacts-gone; write the grants again; integration tests match R4g (issues 1937, 1938, 1931)