A level's digest is stored as a list, and an end the state refuses is said, so a check of a repository with a package named token ends (issue 1930, with mesh-catalog and mesh-delivery)
#74
Merged
jschoubbenmerged 1 commits from fix/1930-digest-shape into main2026-10-23 22:08:07 +00:00
Fixes issue 1930 with mesh-catalog and mesh-delivery on fix/1930-digest-shape (one delivery group): every mesh-controller check was refused, because the stored level answer keyed a digest by package path (.../internal/token) and the runtime's state refuses a field named with a credential word; buildstep's finish then gave up silently and acked the ask.
delivery: LevelAnswer.Digest is a *LevelDigest whose packages are a list of {package, digest} sorted by package; its decoder also reads the old map form; Map() gives the lookup. The digest tool's own reply is unchanged.
buildstep: finish logs a refused end, writes a small failed end naming the write error and the step's state, and returns an error only when no end can be written; pull.go acks only once an end is written, else Naks (the poison rule still ends the ask after 3 runs).
Tests: 1930/AC1, 1930/AC2 (go/buildstep/digestshape_test.go, go/delivery/stepasks_test.go). Local unit and integration levels green; try-1792791494870749776 passed (unit 1734 run, integration 1777 run).
Moves nothing by itself; its users are re-pinned in the group's other members.
Reviewed-by: review-1930@shanks at 403a5d72ab
Pushed-by: fix-1930@shanks
Fixes issue 1930 with mesh-catalog and mesh-delivery on fix/1930-digest-shape (one delivery group): every mesh-controller check was refused, because the stored level answer keyed a digest by package path (`.../internal/token`) and the runtime's state refuses a field named with a credential word; buildstep's finish then gave up silently and acked the ask.
- delivery: `LevelAnswer.Digest` is a `*LevelDigest` whose packages are a list of {package, digest} sorted by package; its decoder also reads the old map form; `Map()` gives the lookup. The digest tool's own reply is unchanged.
- buildstep: `finish` logs a refused end, writes a small failed end naming the write error and the step's state, and returns an error only when no end can be written; pull.go acks only once an end is written, else Naks (the poison rule still ends the ask after 3 runs).
Tests: 1930/AC1, 1930/AC2 (go/buildstep/digestshape_test.go, go/delivery/stepasks_test.go). Local unit and integration levels green; try-1792791494870749776 passed (unit 1734 run, integration 1777 run).
Moves nothing by itself; its users are re-pinned in the group's other members.
Reviewed-by: review-1930@shanks at 403a5d72ab934af19257884e5b00d9df2b1d5518
Pushed-by: fix-1930@shanks
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792794944815912745 (novox/mesh-sdk at e1f393bb into main, don…
A check ask's answer kept the digest's packages as a map keyed by Go import path;
the node runtime refuses a state value with a field ending in a credential word,
so the end of any check of mesh-controller (internal/token) was never written and
the ask was acked anyway. The level's digest is now delivery.LevelDigest, packages
a sorted list of {package, digest}, reading the old map form too. finish logs an
end refused every time, writes a small failed end naming the write's error, and
the puller gives the ask back instead of acking it when no end could be written.
Deliverynovox/mesh-sdk@403a5d72ab93 — failed since 2026-10-23T22:10:49Z
Covered: covered after its failure: a later walk that contains it was delivered: plan-1792794944815912745 (novox/mesh-sdk at e1f393bb into main, done, contains its merge 53a1de2a)
Delivery plan — builds mesh-sdk, sent nowhere; no bus step
composed together: pass — the checker's verdict at the members' heads (7cabd2c25e99)
Transitions
2026-10-23 21:54 (new) → proposed (announced): novox/mesh-sdk#74's head announced
2026-10-23 22:08 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-23 22:10 held → delivering (release): the operator's word 2026-10-24 00:11 in the lead's session: release; the group fix/1930-digest-shape passed its check at 00:07 (key 7cabd2c25e99), result never reached the forge because of issue 1726; merged by the operator by hand
2026-10-23 22:10 delivering → failed (failed): its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-sdk@403a5d72ab93` — **failed** since 2026-10-23T22:10:49Z
**Covered**: covered after its failure: a later walk that contains it was delivered: plan-1792794944815912745 (novox/mesh-sdk at e1f393bb into main, done, contains its merge 53a1de2a)
**Delivery plan** — builds mesh-sdk, sent nowhere; no bus step
- tier 0: mesh-sdk
**Group** `fix/1930-digest-shape`: novox/mesh-catalog@30b22c198e6a, novox/mesh-delivery@9261347a8f91, novox/mesh-sdk@403a5d72ab93
- composed together: pass — the checker's verdict at the members' heads (7cabd2c25e99)
**Transitions**
- 2026-10-23 21:54 (new) → proposed (announced): novox/mesh-sdk#74's head announced
- 2026-10-23 22:08 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-23 22:10 held → delivering (release): the operator's word 2026-10-24 00:11 in the lead's session: release; the group fix/1930-digest-shape passed its check at 00:07 (key 7cabd2c25e99), result never reached the forge because of issue 1726; merged by the operator by hand
- 2026-10-23 22:10 delivering → failed (failed): its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
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.
Fixes issue 1930 with mesh-catalog and mesh-delivery on fix/1930-digest-shape (one delivery group): every mesh-controller check was refused, because the stored level answer keyed a digest by package path (
.../internal/token) and the runtime's state refuses a field named with a credential word; buildstep's finish then gave up silently and acked the ask.LevelAnswer.Digestis a*LevelDigestwhose packages are a list of {package, digest} sorted by package; its decoder also reads the old map form;Map()gives the lookup. The digest tool's own reply is unchanged.finishlogs a refused end, writes a small failed end naming the write error and the step's state, and returns an error only when no end can be written; pull.go acks only once an end is written, else Naks (the poison rule still ends the ask after 3 runs).Tests: 1930/AC1, 1930/AC2 (go/buildstep/digestshape_test.go, go/delivery/stepasks_test.go). Local unit and integration levels green; try-1792791494870749776 passed (unit 1734 run, integration 1777 run).
Moves nothing by itself; its users are re-pinned in the group's other members.
Reviewed-by: review-1930@shanks at
403a5d72abPushed-by: fix-1930@shanks
A check ask's answer kept the digest's packages as a map keyed by Go import path; the node runtime refuses a state value with a field ending in a credential word, so the end of any check of mesh-controller (internal/token) was never written and the ask was acked anyway. The level's digest is now delivery.LevelDigest, packages a sorted list of {package, digest}, reading the old map form too. finish logs an end refused every time, writes a small failed end naming the write's error, and the puller gives the ask back instead of acking it when no end could be written.Delivery
novox/mesh-sdk@403a5d72ab93— failed since 2026-10-23T22:10:49ZCovered: covered after its failure: a later walk that contains it was delivered: plan-1792794944815912745 (novox/mesh-sdk at
e1f393bbinto main, done, contains its merge53a1de2a)Delivery plan — builds mesh-sdk, sent nowhere; no bus step
Group
fix/1930-digest-shape: novox/mesh-catalog@30b22c198e, novox/mesh-delivery@9261347a8f, novox/mesh-sdk@403a5d72abTransitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.