The checker writes a loud verdict where it cannot judge, so no Approve waits silently (issue 1733) #104

Merged
mesh-tools merged 1 commits from fix/1733-no-hour into main 2026-10-28 21:29:57 +00:00
Member

Delivery group fix/1733-no-hour, with mesh-catalog fix/1733-no-hour (the gate's one-hour ask bound goes, so the Approve is asked only on a verdict).

Change (mesh-delivery-checker). Every path that left a candidate without a verdict writes one, from an event, with no timer:

  • A group with a member whose repository's trunk head is not known (a pull request the checker cannot claim) is not judged in part: its verdict fails naming that repository, and every status of the group says so. Before, the other members' pass could let the group merge with that member never checked.
  • The verdict of heads that cannot be judged replaces whatever the key held, such as a running verdict left by a check that can no longer run (issue 1422's path).
  • A deleted verdict key is judged again on its delete event, and a check running when its key is deleted writes it anew. The checker's one watch of its verdicts calls both handlers (VerdictWritten from #103, VerdictDeleted here).

Quick or thorough. Quick: keep the gate's fallback. Thorough, chosen: every unjudged path writes a verdict, so the gate needs no timer.

Tests. Three rows at the end of the no-trunk test; counts unchanged (checker 147 unit / 10 integration, repository 588 / 76). gofmt, vet, the unit suite and the checker's integration level pass locally.

Review. Rebased onto #103, one verdicts watch.

Pushed-by: fix-lost@shanks
Reviewed-by: rev-l2@shanks at 2d8ad2e66a

Delivery group fix/1733-no-hour, with mesh-catalog fix/1733-no-hour (the gate's one-hour ask bound goes, so the Approve is asked only on a verdict). **Change (mesh-delivery-checker).** Every path that left a candidate without a verdict writes one, from an event, with no timer: - A group with a member whose repository's trunk head is not known (a pull request the checker cannot claim) is not judged in part: its verdict fails naming that repository, and every status of the group says so. Before, the other members' pass could let the group merge with that member never checked. - The verdict of heads that cannot be judged replaces whatever the key held, such as a running verdict left by a check that can no longer run (issue 1422's path). - A deleted verdict key is judged again on its delete event, and a check running when its key is deleted writes it anew. The checker's one watch of its verdicts calls both handlers (VerdictWritten from #103, VerdictDeleted here). **Quick or thorough.** Quick: keep the gate's fallback. Thorough, chosen: every unjudged path writes a verdict, so the gate needs no timer. **Tests.** Three rows at the end of the no-trunk test; counts unchanged (checker 147 unit / 10 integration, repository 588 / 76). gofmt, vet, the unit suite and the checker's integration level pass locally. **Review.** Rebased onto #103, one verdicts watch. Pushed-by: fix-lost@shanks Reviewed-by: rev-l2@shanks at 2d8ad2e66a8f652dc9f90cd82a071cae8772767a
mesh-tools added 1 commit 2026-10-28 20:50:28 +00:00
Checker: no candidate is left without a verdict (issue 1733)
mesh/delivery merged: source.main moved to novox/mesh-delivery@5b2e5bc53776
mesh/delivery-group group fix/1733-no-hour merged: every member is merged
mesh/check pass 2d8ad2e66a8f on 38f89c6976c9 | carried from 1f6f4eda3208 | unit 470 run, 4760 kept, 13 skipped | integration 503 run, 4844 kept, 22 sk…
2d8ad2e66a
Once the gate's one-hour ask bound goes (mesh-catalog fix/1733-no-hour), the
gate asks the operator's Approve only on a verdict, so every path that left
a candidate without one now writes one, from an event and with no timer:
- a group with a member whose repository's trunk head is not known (a pull
  request the checker cannot claim) is not judged in part: its verdict fails
  naming that repository, and every status of the group says so (a pass of
  the others would have let it merge with that member never checked);
- the verdict of heads that cannot be judged replaces whatever the key held,
  such as a running verdict left by a check that can no longer run;
- a verdict key deleted is judged again on its delete (the checker watches its
  verdicts), and a check running when its key is deleted writes it anew.

Tests: three rows at the end of the no-trunk test; counts unchanged.
Author
Member

Delivery novox/mesh-delivery@2d8ad2e66a8f — merged since 2026-10-28T21:29:59Z

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

Group fix/1733-no-hour: novox/mesh-catalog@f37f93e812, novox/mesh-delivery@2d8ad2e66a

  • composed together: pass — the checker's verdict at the members' heads (f2aa87f2701d)

Transitions

  • 2026-10-28 20:50 (new) → proposed (announced): novox/mesh-delivery#104's head announced
  • 2026-10-28 20:50 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-10-28 21:29 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@2d8ad2e66a8f` — **merged** since 2026-10-28T21:29:59Z **Source** — source.main moved to novox/mesh-delivery@5b2e5bc53776. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/1733-no-hour`: novox/mesh-catalog@f37f93e812df, novox/mesh-delivery@2d8ad2e66a8f - composed together: pass — the checker's verdict at the members' heads (f2aa87f2701d) **Transitions** - 2026-10-28 20:50 (new) → proposed (announced): novox/mesh-delivery#104's head announced - 2026-10-28 20:50 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-10-28 21:29 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 5b2e5bc537 into main 2026-10-28 21:29:57 +00:00
mesh-tools deleted branch fix/1733-no-hour 2026-10-28 21:29:58 +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#104