Issue 1733 (note 9): while the check gates no merge (the gate's setting check-gates-merge false), mesh-delivery-gate asked the operator's merge Approve with "passed its checks" before any verdict existed. On 2026-10-26 the operator approved mesh-delivery #79, the six-repository L2 group and mesh-catalog #513 on that claim; L2 and #513 merged with no check at all.
One reader, checkAt, of the checker's verdict at exactly the ask's heads (falling back to the forge's mesh/check only for a single delivery), with four states: passed, running (since T), no verdict yet, failed (with the first failure).
The ask says that state: "passed its check" only on a pass; otherwise "its check has no verdict yet ... Approve merges it now, before its check ends", or "its check failed: ... Approve merges it although its check failed". A group whose members passed alone but whose composed check has not answered says so.
While an ask is open and the check gates no merge, a check that passes or fails withdraws the ask, and the next look asks again with the true words; a check that only starts does not ask again. Event-driven (the checker's verdict change), no timer.
Log and stalled lines that named a check result say checkAt's words.
Whether a merge waits is unchanged: that is the operator's setting.
Quick fix: neutral words in the two summaries. Thorough fix (chosen, one helper and one case): one reader of the check's state used by every text that names it, and the ask said again when that state changes; the quick one would leave an open ask silent about a failure after it.
Not in this change (notes on issue 1733): asks open at delivery keep their old text until they lapse; three Rejected-path texts would claim a pass only after a switch from ungated to gated mode; issue 1733's original subject (an ask counted as asked while the router refused it) needs mesh-sdk and the teller.
Tests: rows in two existing tests, no new test function (187 unit, 4 integration; budget 500 and 50). Unit suite and go vet -tags integration pass; each ask's text passes asks.Glance.
Issue 1733 (note 9): while the check gates no merge (the gate's setting `check-gates-merge` false), mesh-delivery-gate asked the operator's merge Approve with "passed its checks" before any verdict existed. On 2026-10-26 the operator approved mesh-delivery #79, the six-repository L2 group and mesh-catalog #513 on that claim; L2 and #513 merged with no check at all.
- One reader, `checkAt`, of the checker's verdict at exactly the ask's heads (falling back to the forge's mesh/check only for a single delivery), with four states: passed, running (since T), no verdict yet, failed (with the first failure).
- The ask says that state: "passed its check" only on a pass; otherwise "its check has no verdict yet ... Approve merges it now, before its check ends", or "its check failed: <cause> ... Approve merges it although its check failed". A group whose members passed alone but whose composed check has not answered says so.
- While an ask is open and the check gates no merge, a check that passes or fails withdraws the ask, and the next look asks again with the true words; a check that only starts does not ask again. Event-driven (the checker's verdict change), no timer.
- Log and stalled lines that named a check result say `checkAt`'s words.
- Whether a merge waits is unchanged: that is the operator's setting.
Quick fix: neutral words in the two summaries. Thorough fix (chosen, one helper and one case): one reader of the check's state used by every text that names it, and the ask said again when that state changes; the quick one would leave an open ask silent about a failure after it.
Not in this change (notes on issue 1733): asks open at delivery keep their old text until they lapse; three Rejected-path texts would claim a pass only after a switch from ungated to gated mode; issue 1733's original subject (an ask counted as asked while the router refused it) needs mesh-sdk and the teller.
Tests: rows in two existing tests, no new test function (187 unit, 4 integration; budget 500 and 50). Unit suite and `go vet -tags integration` pass; each ask's text passes `asks.Glance`.
Reviewed-by: review-asktext@shanks at 099605ec70a26db5ae8cc9cb1959ec0ce7a0c060
With check-gates-merge false a head is ready and asked before any verdict exists, yet the ask said "<pr> passed its
checks" (a group: "passed its checks"): on 2026-10-26 the operator approved mesh-delivery #79 and a six-repository group
on that claim while their checks had not answered.
The ask now reads the checker's verdict at exactly the heads it covers (checkAt, beside checkerAt): "passed its check"
only for a pass there; otherwise "its check has no verdict yet[: it is running (since HH:MM UTC)]" or "its check failed:
<first failure>", and the Approve clause says it merges "now, before its check ends" or "although its check failed".
While the check gates no merge, a pending ask whose check then passes or fails (or loses a pass it named) is withdrawn
and asked again in new words (the ask's AskCheck against the state now, endStaleAsks, the review-record path's
withdrawAsk); a check that starts running is no new word, so the wait stays one message. Whether a merge waits is
unchanged. The gate's log lines and stalled lines that claimed a pass for a ready head say the same state.
Quick fix: replace "passed its checks" by neutral words in the two summaries. Thorough fix: one reader of the check's
state at the ask's heads (checkAt) used by every text that names it, and the ask re-said when that state changes.
Chosen: thorough, as it costs one helper and one case in endStaleAsks, and the quick one would still leave a pending
ask silent about a failure that came after it.
Tests: rows in TestAnApprovedPullRequestIsMergedThroughTheMergeTool (gated pass; ungated no verdict, running, then
passed, then failed) and the ungated group's wording; no new test function.
Deliverynovox/mesh-catalog@099605ec70a2 — merged since 2026-10-26T21:25:39Z
Source — source.main moved to novox/mesh-catalog@53bf4bb84c. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-10-26 21:22 (new) → proposed (announced): novox/mesh-catalog#514's head announced
2026-10-26 21:22 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-26 21: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@099605ec70a2` — **merged** since 2026-10-26T21:25:39Z
**Source** — source.main moved to novox/mesh-catalog@53bf4bb84cb1. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-10-26 21:22 (new) → proposed (announced): novox/mesh-catalog#514's head announced
- 2026-10-26 21:22 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-26 21: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.
Issue 1733 (note 9): while the check gates no merge (the gate's setting
check-gates-mergefalse), mesh-delivery-gate asked the operator's merge Approve with "passed its checks" before any verdict existed. On 2026-10-26 the operator approved mesh-delivery #79, the six-repository L2 group and mesh-catalog #513 on that claim; L2 and #513 merged with no check at all.checkAt, of the checker's verdict at exactly the ask's heads (falling back to the forge's mesh/check only for a single delivery), with four states: passed, running (since T), no verdict yet, failed (with the first failure).checkAt's words.Quick fix: neutral words in the two summaries. Thorough fix (chosen, one helper and one case): one reader of the check's state used by every text that names it, and the ask said again when that state changes; the quick one would leave an open ask silent about a failure after it.
Not in this change (notes on issue 1733): asks open at delivery keep their old text until they lapse; three Rejected-path texts would claim a pass only after a switch from ungated to gated mode; issue 1733's original subject (an ask counted as asked while the router refused it) needs mesh-sdk and the teller.
Tests: rows in two existing tests, no new test function (187 unit, 4 integration; budget 500 and 50). Unit suite and
go vet -tags integrationpass; each ask's text passesasks.Glance.Reviewed-by: review-asktext@shanks at
099605ec70Delivery
novox/mesh-catalog@099605ec70a2— merged since 2026-10-26T21:25:39ZSource — source.main moved to novox/mesh-catalog@53bf4bb84c. 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.