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
jschoubben merged 1 commits from fix/1930-digest-shape into main 2026-10-23 22:08:07 +00:00
Member

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-tools added 1 commit 2026-10-23 21:54:18 +00:00
Keep a level's digest as a list and say an end the state refuses, so a check of a repository with a package named token ends (issue 1930)
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792794944815912745 (novox/mesh-sdk at e1f393bb into main, don…
mesh/check pass 403a5d72ab93 on 1ff6d339780c | unit 4545 run, 2097 kept, 13 skipped | integration 4595 run, 2188 kept, 21 skipped | over bound: unit, …
mesh/delivery-group group fix/1930-digest-shape merged: every member is merged
403a5d72ab
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.
Author
Member

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@30b22c198e, novox/mesh-delivery@9261347a8f, novox/mesh-sdk@403a5d72ab

  • 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`.
jschoubben merged commit 53a1de2aaa into main 2026-10-23 22:08:07 +00:00
jschoubben deleted branch fix/1930-digest-shape 2026-10-23 22:08:07 +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#74