The indexer says a merged manifest accepted, so a new build gets its part grant without a hand act (issue 1966) #207

Merged
mesh-tools merged 1 commits from fix/1966-new-build-grant into main 2026-11-12 12:28:39 +00:00
Member

Issue 1966 (note 208); design 25 bus-state §1, §12.2 and the lead's answer L1 (hq PR design/25-merged-verdict).

Met three times on 2026-11-12 (claude-licence-manager 40f23318, 6bbac339, 191c1964): the assigner held each new build with "the controller has not issued the credential" until indexer_judge + grants_first_view_again. Cause: a pull request's candidate manifest is judged and accepted before its merge (candidates.go:288, says nothing); the merge's pass finds the same verdict, writes nothing, and says no manifest-accepted, so the grants part (HearVerdict, noVerdictYet) never writes the new fingerprint's part grant; the bus module misses a merged manifest's bus-state entries the same way.

Fix (thorough, small): in the merge's pass, for the digest just taken in whose verdict is unchanged and not held, the indexer says manifest-accepted from the verdict it holds, with that verdict's revision (sayHeld); the grants part treats an older revision as a gap and asks the verdicts again (§12.2).

Test: a case in TestTheIndexerJudgesEveryManifestOnce (candidate judged, then merged unchanged) fails on main and passes now. vet, unit, the indexer's and the grants part's integration tests pass.

Reviewed-by: mesh-code-reviewer@shanks at 46af1648974101bf5d1d3079e5226756b9fc77a8 (round 1; its one finding, the lead's answer's hq commit, is answered by L1 and cited in the commit message only)
Pushed-by: fix-1965@shanks

Issue 1966 (note 208); design 25 bus-state §1, §12.2 and the lead's answer L1 (hq PR design/25-merged-verdict). Met three times on 2026-11-12 (claude-licence-manager 40f23318, 6bbac339, 191c1964): the assigner held each new build with "the controller has not issued the credential" until indexer_judge + grants_first_view_again. Cause: a pull request's candidate manifest is judged and accepted before its merge (candidates.go:288, says nothing); the merge's pass finds the same verdict, writes nothing, and says no manifest-accepted, so the grants part (HearVerdict, noVerdictYet) never writes the new fingerprint's part grant; the bus module misses a merged manifest's bus-state entries the same way. Fix (thorough, small): in the merge's pass, for the digest just taken in whose verdict is unchanged and not held, the indexer says manifest-accepted from the verdict it holds, with that verdict's revision (sayHeld); the grants part treats an older revision as a gap and asks the verdicts again (§12.2). Test: a case in TestTheIndexerJudgesEveryManifestOnce (candidate judged, then merged unchanged) fails on main and passes now. vet, unit, the indexer's and the grants part's integration tests pass. Reviewed-by: mesh-code-reviewer@shanks at 46af1648974101bf5d1d3079e5226756b9fc77a8 (round 1; its one finding, the lead's answer's hq commit, is answered by L1 and cited in the commit message only) Pushed-by: fix-1965@shanks
mesh-tools added 1 commit 2026-11-12 12:20:39 +00:00
indexer: say manifest-accepted for a merged manifest a pull request's judgement already accepted (issue 1966)
mesh/delivery merged: source.main moved to novox/mesh-delivery@76db40eb6be1
mesh/check being carried to 104909817b70 on 76db40eb6be1 | from 983c46e2576c
104909817b
A pull request's candidate is judged before its merge and its verdict written, said nowhere. At the merge the
digest becomes the module's trunk manifest, but the merge's judging pass finds the same verdict, writes nothing
and so said nothing: the bus module never heard the new manifest, and the grants part, which follows the
verdicts on manifest-accepted, held the module as having no verdict and wrote no grant for its new fingerprint
(claude-licence-manager, three times on 2026-11-12). The merge's pass now says a fresh trunk manifest's accepted
verdict from the verdict held, with its revision.

Builds: design 25 bus-state §1, §12.2 (the indexer says manifest-accepted for every newly accepted manifest; the
grants part follows the verdicts on it)

Builds: design 25 bus-state L1 (hq ff30ac16, the lead's answer: a merged candidate's manifest is newly accepted).
Author
Member

Delivery novox/mesh-delivery@104909817b70 — merged since 2026-11-12T12:28:40Z

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

Transitions

  • 2026-11-12 12:20 (new) → proposed (announced): novox/mesh-delivery#207's head announced
  • 2026-11-12 12:20 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 12:28 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-delivery@104909817b70` — **merged** since 2026-11-12T12:28:40Z **Source** — source.main moved to novox/mesh-delivery@76db40eb6be1. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-12 12:20 (new) → proposed (announced): novox/mesh-delivery#207's head announced - 2026-11-12 12:20 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 12:28 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 76db40eb6b into main 2026-11-12 12:28:39 +00:00
mesh-tools deleted branch fix/1966-new-build-grant 2026-11-12 12:28:39 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-delivery#207