The merge Approve says the check's real state, and is asked again when it passes or fails (issue 1733) #514

Merged
mesh-tools merged 1 commits from fix/1733-ask-says-the-check into main 2026-10-26 21:25:37 +00:00
Member

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.

Reviewed-by: review-asktext@shanks at 099605ec70

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
mesh-tools added 1 commit 2026-10-26 21:22:37 +00:00
mesh-delivery-gate: the Approve's ask says the check's actual state at its heads, never a pass it has not had (issue 1733)
mesh/delivery merged: source.main moved to novox/mesh-catalog@53bf4bb84cb1
mesh/check checking 099605ec70a2 on 53bf4bb84cb1
099605ec70
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.
Author
Member

Delivery novox/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`.
mesh-tools merged commit 53bf4bb84c into main 2026-10-26 21:25:37 +00:00
mesh-tools deleted branch fix/1733-ask-says-the-check 2026-10-26 21:25:38 +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-catalog#514