The operator, 2026-10-27 23:54 CET: "if you don't want me to approve it, don't send the approval request". With check-gates-merge false the gate asked the Approve as soon as a pull request opened, before its check ("its check has no verdict yet ... Approve merges it now"), and five changes were approved before their checks tonight.
Change (only while check-gates-merge is false; the check still gates no merge). The Approve is asked once the check has a verdict at the asked heads (for a group, the group's): on a pass ("passed its check") or a fail (with the failure's words; the operator may still merge). While the check runs, nothing is sent and mesh-delivery.show reads "waits its check before asking the operator's Approve ... asked anyway at HH:MM if it has not answered". After 60 minutes with no verdict, counted from the latest head (a member with no ready run counts from now; a check that starts running again or a verdict removed restarts it), it asks anyway and says so. A later verdict re-asks in its words. A placement change waits for every node's shadow answer through the checker's composition (ADR 0559 §5); a pass whose composition was not judged says so. Times in the operator's zone (Europe/Brussels).
No decision record changes: ADR 0421 §1 already says "as soon as the checks pass"; the early ask came from mesh-catalog #514's wording fix.
Quick or thorough. Quick: change only the words. Thorough (chosen): change when the gate asks, in the one place it is decided (ready.go).
Tests. Rows in the issue-1733 table and the ungated group test (pass, no verdict, running, past the bound, passed after the bound, failed; group re-push after 60 min not asked, failing with the old rule; placement uncomposed; local times). Gate suite, vet with and without the integration tag, words check clean. No new test functions.
Review: round 1 CHANGES (the bound counted from older group members), round 2 APPROVED dea390ac with a test gap, round 3 APPROVED the head (the re-push row now fails on the old rule).
The operator, 2026-10-27 23:54 CET: "if you don't want me to approve it, don't send the approval request". With check-gates-merge false the gate asked the Approve as soon as a pull request opened, before its check ("its check has no verdict yet ... Approve merges it now"), and five changes were approved before their checks tonight.
**Change (only while check-gates-merge is false; the check still gates no merge).** The Approve is asked once the check has a verdict at the asked heads (for a group, the group's): on a pass ("passed its check") or a fail (with the failure's words; the operator may still merge). While the check runs, nothing is sent and mesh-delivery.show reads "waits its check before asking the operator's Approve ... asked anyway at HH:MM <local> if it has not answered". After 60 minutes with no verdict, counted from the latest head (a member with no ready run counts from now; a check that starts running again or a verdict removed restarts it), it asks anyway and says so. A later verdict re-asks in its words. A placement change waits for every node's shadow answer through the checker's composition (ADR 0559 §5); a pass whose composition was not judged says so. Times in the operator's zone (Europe/Brussels).
No decision record changes: ADR 0421 §1 already says "as soon as the checks pass"; the early ask came from mesh-catalog #514's wording fix.
**Quick or thorough.** Quick: change only the words. Thorough (chosen): change when the gate asks, in the one place it is decided (ready.go).
**Tests.** Rows in the issue-1733 table and the ungated group test (pass, no verdict, running, past the bound, passed after the bound, failed; group re-push after 60 min not asked, failing with the old rule; placement uncomposed; local times). Gate suite, vet with and without the integration tag, words check clean. No new test functions.
Review: round 1 CHANGES (the bound counted from older group members), round 2 APPROVED dea390ac with a test gap, round 3 APPROVED the head (the re-push row now fails on the old rule).
Reviewed-by: review-ask@shanks at 354d62340d4d3d907d72146fc77f6fa49f12ef5e
The operator, 2026-10-27 23:54: "if you don't want me to approve it, don't send
the approval request". The gate asked the Approve the moment a pull request
opened, before its check answered, and five changes were approved unchecked.
Now the ask waits for the checker's verdict at the heads it covers (a group's
verdict of all its heads together; a placement change's verdict ends only once
its nodes answered, ADR 0559 §5). A pass or a failure is asked, the failure in
its words, since check-gates-merge false lets the operator merge it anyway. A
check with no verdict 60 minutes after the heads became ready is asked anyway,
saying so, and asked again in new words when its verdict comes.
Quick fix (only the ask's wording) against thorough (the one place that decides
when to ask, ungatedWaits): thorough, which is one place here.
A group member made ready in an event handler has no ready run when its sibling
is looked at; the bound counted from the older sibling alone, so a re-push past
60 minutes asked at once as unanswered. Such a member now counts as ready now.
The bound also counts from a check starting again at the same heads, or its
verdict being taken away, so a pass that turns back into running never asks at
once as unanswered. Times in the wait and the ask are the operator's zone
(Europe/Brussels, as the messenger says them), and a placement change whose pass
holds no composition says that no node answered its placement.
Deliverynovox/mesh-catalog@354d62340d4d — merged since 2026-10-27T23:25:30Z
Source — source.main moved to novox/mesh-catalog@0c63b4c906. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-10-27 23:08 (new) → proposed (announced): novox/mesh-catalog#530's head announced
2026-10-27 23:08 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-27 23:25 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-catalog@354d62340d4d` — **merged** since 2026-10-27T23:25:30Z
**Source** — source.main moved to novox/mesh-catalog@0c63b4c906c6. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-10-27 23:08 (new) → proposed (announced): novox/mesh-catalog#530's head announced
- 2026-10-27 23:08 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-27 23:25 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`.
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.
The operator, 2026-10-27 23:54 CET: "if you don't want me to approve it, don't send the approval request". With check-gates-merge false the gate asked the Approve as soon as a pull request opened, before its check ("its check has no verdict yet ... Approve merges it now"), and five changes were approved before their checks tonight.
Change (only while check-gates-merge is false; the check still gates no merge). The Approve is asked once the check has a verdict at the asked heads (for a group, the group's): on a pass ("passed its check") or a fail (with the failure's words; the operator may still merge). While the check runs, nothing is sent and mesh-delivery.show reads "waits its check before asking the operator's Approve ... asked anyway at HH:MM if it has not answered". After 60 minutes with no verdict, counted from the latest head (a member with no ready run counts from now; a check that starts running again or a verdict removed restarts it), it asks anyway and says so. A later verdict re-asks in its words. A placement change waits for every node's shadow answer through the checker's composition (ADR 0559 §5); a pass whose composition was not judged says so. Times in the operator's zone (Europe/Brussels).
No decision record changes: ADR 0421 §1 already says "as soon as the checks pass"; the early ask came from mesh-catalog #514's wording fix.
Quick or thorough. Quick: change only the words. Thorough (chosen): change when the gate asks, in the one place it is decided (ready.go).
Tests. Rows in the issue-1733 table and the ungated group test (pass, no verdict, running, past the bound, passed after the bound, failed; group re-push after 60 min not asked, failing with the old rule; placement uncomposed; local times). Gate suite, vet with and without the integration tag, words check clean. No new test functions.
Review: round 1 CHANGES (the bound counted from older group members), round 2 APPROVED
dea390acwith a test gap, round 3 APPROVED the head (the re-push row now fails on the old rule).Reviewed-by: review-ask@shanks at
354d62340dDelivery
novox/mesh-catalog@354d62340d4d— merged since 2026-10-27T23:25:30ZSource — source.main moved to novox/mesh-catalog@0c63b4c906. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.