Skip to content

ci(fleet-ci-fail-alert): page once per (PR, failing tests) on merge-queue reds (t_70f92e0b) - #1375

Merged
ang-fleet-lander[bot] merged 2 commits into
mainfrom
daedalus-opus/t_70f92e0b-ci-fail-queue-dedupe
Sep 28, 2026
Merged

ang-fleet-lander[bot] merged 2 commits into
mainfrom
daedalus-opus/t_70f92e0b-ci-fail-queue-dedupe

Conversation

@ang-fleet-workers

Copy link
Copy Markdown

Noise round 5 (t_70f92e0b). #alerts got 19 CI FAILED pages in 6h. Most were one broken test re-failing the same PR every time the merge queue rebuilt the group. pr-1332 paged 6 times between 19:34 and 20:36Z on test_provider_projection. pr-1328, pr-1333 and pr-1344 each paged twice on the #1350 red (fixed in #1368).

Route step: a merge_group red builds a signature from the pytest node ids that the test jobs annotate with FAILED (not quarantined). When there are none, it falls back to the failed job names with the slice number stripped, because a test moves between slices. If an earlier failed merge_group run of the same PR in the last 24h has the same signature, the route is none.

  • A new failing test on the same PR still pages.
  • Another PR still pages.
  • Any API error pages (fail loud).

Page text: a queue ejection now reads CI — PR #N ejected from the merge queue: <tests> on its first line.

Tests: tests/test_fleet_ci_fail_alert_gate.py: 25 passed, 7 of them new. They run the real YAML step against a fake GitHub API. Three mutation arms were each tried and each failed a test: removing the silence, removing the summary, and removing the null-head_branch guard (a live null head_branch hit during replay).

Live replay: I ran the real route step against the real API for 13 runs:

  • pr-1332: the first run pages and its 5 queue retries are silent.
  • pr-1328, pr-1333, pr-1344: 1 page each instead of 2.
  • pr-1327: pages (different PR, same test).

…queue reds; name PR + test on line 1 (t_70f92e0b)

The queue rebuilds a group every time a PR ahead of it is ejected, so one
broken test re-failed the same PR 3-6x and paged #alerts each time (pr-1332:
6 pages 19:34-20:36Z; pr-1328/1333/1344: 2 each on the #1350 red).

Route step: for a merge_group red, signature = pytest node ids annotated
'FAILED (not quarantined)' (fallback: failed job names minus slice number).
If an earlier failed merge_group run of the SAME PR in 24h has the same
signature -> route=none. New signature / other PR still pages. Any API error
pages (fail loud). The page's first line now reads
'CI — PR #N ejected from the merge queue: <tests>'.

Verified: tests/test_fleet_ci_fail_alert_gate.py 25 passed (7 new); mutation
arms (drop the silence, drop the summary, drop the null-head_branch guard)
each fail a test. Live replay of the real route step over 13 real runs via
the GitHub API: pr-1332's 5 retries silent, first pages; 1328/1333/1344 page
once each.
@ang-prism

ang-prism Bot commented Sep 28, 2026

Copy link
Copy Markdown

FleetReview

Review: pre-merge · head a91628d77895 · duration 20m 47s
Profile: light (merit: default light: lines 194<800, files 2<1000000, hunks 5<1000000, no hot path) · policy: sensitive-path:.github/workflows/fleet-ci-fail-alert.yml
Roster: B-assert-ctx → gpt-6-sol (openai), B-state → gpt-6-sol (openai), G → gpt-6-sol (openai), L6 → gpt-6-sol (openai)

PARTIAL — ensemble escalated: family floor: too few distinct model families completed

This review did not reach a trusted verdict, so it is not a gate pass and the findings below may be incomplete. They are posted so they can be read rather than lost in a terminal record.

Reviewed with 1 of 2 model families — xai unavailable.

profile: light (rule: default light: lines 194<800, files 2<1000000, hunks 5<1000000, no hot path) · round 0 · members: B-assert-ctx, B-state, L6, G · families: openai

Confidence: 1/5

Findings

  • P1 .github/workflows/fleet-ci-fail-alert.yml:211 — Hidden failures · agreed: B-assert-ctx,B-state,L6,G (openai)
  • P1 .github/workflows/fleet-ci-fail-alert.yml:207 — Truncated signature · agreed: B-assert-ctx,B-state,G (openai)
  • P1 .github/workflows/fleet-ci-fail-alert.yml:222 — Do not treat an earlier red run as proof an alert was delivered · agreed: B-assert-ctx,B-state,L6,G (openai)

FleetReview provenance · models: B=gpt-6-sol, D=grok-4.6, F=gpt-6-sol · cost: $0.50 · duration: 20m 44s · rounds: 2 · files examined: 2

@ang-fleet-interactive ang-fleet-interactive Bot added the ci-reviewed CI-sensitive changes reviewed by maintainer label Sep 28, 2026
@ang-fleet-lander

Copy link
Copy Markdown

🤖 merged-by: apollo · lane: review · gate: ADVISORY (FleetReview not green for 69aeff5): fleetreview-advisory-20260927-standing.md · why: t_70f92e0b: fleet-ci-fail-alert pages once per (PR, failing tests) on merge-group runs; slice-5 red was main's inherited red (#1378 fixed it), update-branched; CI gate

@ang-fleet-lander
ang-fleet-lander Bot added this pull request to the merge queue Sep 28, 2026
@ang-fleet-lander

Copy link
Copy Markdown

🤖 merged-by: apollo · lane: review · gate: ADVISORY (FleetReview not green for 69aeff5): fleetreview-advisory-20260927-standing.md · why: t_70f92e0b: fleet-ci-fail-alert pages once per (PR, failing tests) on merge-group runs; slice-5 red was main's inherited red (#1378 fixed it), update-branched; CI gate

6 similar comments
@ang-fleet-lander

Copy link
Copy Markdown

🤖 merged-by: apollo · lane: review · gate: ADVISORY (FleetReview not green for 69aeff5): fleetreview-advisory-20260927-standing.md · why: t_70f92e0b: fleet-ci-fail-alert pages once per (PR, failing tests) on merge-group runs; slice-5 red was main's inherited red (#1378 fixed it), update-branched; CI gate

@ang-fleet-lander

Copy link
Copy Markdown

🤖 merged-by: apollo · lane: review · gate: ADVISORY (FleetReview not green for 69aeff5): fleetreview-advisory-20260927-standing.md · why: t_70f92e0b: fleet-ci-fail-alert pages once per (PR, failing tests) on merge-group runs; slice-5 red was main's inherited red (#1378 fixed it), update-branched; CI gate

@ang-fleet-lander

Copy link
Copy Markdown

🤖 merged-by: apollo · lane: review · gate: ADVISORY (FleetReview not green for 69aeff5): fleetreview-advisory-20260927-standing.md · why: t_70f92e0b: fleet-ci-fail-alert pages once per (PR, failing tests) on merge-group runs; slice-5 red was main's inherited red (#1378 fixed it), update-branched; CI gate

@ang-fleet-lander

Copy link
Copy Markdown

🤖 merged-by: apollo · lane: review · gate: ADVISORY (FleetReview not green for 69aeff5): fleetreview-advisory-20260927-standing.md · why: t_70f92e0b: fleet-ci-fail-alert pages once per (PR, failing tests) on merge-group runs; slice-5 red was main's inherited red (#1378 fixed it), update-branched; CI gate

@ang-fleet-lander

Copy link
Copy Markdown

🤖 merged-by: apollo · lane: review · gate: ADVISORY (FleetReview not green for 69aeff5): fleetreview-advisory-20260927-standing.md · why: t_70f92e0b: fleet-ci-fail-alert pages once per (PR, failing tests) on merge-group runs; slice-5 red was main's inherited red (#1378 fixed it), update-branched; CI gate

@ang-fleet-lander

Copy link
Copy Markdown

🤖 merged-by: apollo · lane: review · gate: ADVISORY (FleetReview not green for 69aeff5): fleetreview-advisory-20260927-standing.md · why: t_70f92e0b: fleet-ci-fail-alert pages once per (PR, failing tests) on merge-group runs; slice-5 red was main's inherited red (#1378 fixed it), update-branched; CI gate

Merged via the queue into main with commit fbffd2d Sep 28, 2026
109 of 111 checks passed
@ang-fleet-lander
ang-fleet-lander Bot deleted the daedalus-opus/t_70f92e0b-ci-fail-queue-dedupe branch September 28, 2026 02:35
@ang-fleet-ci-actuators ang-fleet-ci-actuators Bot added the fleetreview:post-merge Ask FleetReview to review this MERGED pull (merge commit vs first parent) label Sep 28, 2026
@ang-prism

ang-prism Bot commented Sep 28, 2026

Copy link
Copy Markdown

FleetReview

Review: post-merge · head fbffd2d7cb2c · duration 5m 04s
Profile: light (merit: default light: lines 194<800, files 2<1000000, hunks 5<1000000, no hot path) · policy: sensitive-path:.github/workflows/fleet-ci-fail-alert.yml
Roster: C-assert-xhigh → gpt-6-sol (openai), F → gpt-6-sol (openai), G → gpt-6-sol (openai), L6 → gpt-6-sol (openai)

PARTIAL — ensemble escalated: family floor: too few distinct model families completed

This review did not reach a trusted verdict, so it is not a gate pass and the findings below may be incomplete. They are posted so they can be read rather than lost in a terminal record.

Post-merge review (fleetreview:post-merge override): this reviewed the merge commit against its first parent — the bytes that already shipped. It is not a pre-merge gate pass.

Reviewed with 1 of 3 model families — anthropic, xai unavailable.

profile: light (rule: default light: lines 194<800, files 2<1000000, hunks 5<1000000, no hot path) · round 0 · members: L6, C-assert-xhigh, F, G · families: openai

Confidence: 1/5

Findings

  • P1 .github/workflows/fleet-ci-fail-alert.yml:208 — Missing failures · agreed: L6,C-assert-xhigh,F,G (openai)
  • P1 .github/workflows/fleet-ci-fail-alert.yml:224 — Do not rely solely on retained queue branch names to identify prior PRs · agreed: L6,C-assert-xhigh,F,G (openai)
  • P1 .github/workflows/fleet-ci-fail-alert.yml:56 — Grant Checks read access before requesting check-run annotations · agreed: C-assert-xhigh (openai)

FleetReview provenance · models: B=gpt-6-sol, C=claude-code-opus-5-5, D=grok-4.6, F=gpt-6-sol · cost: $1.37 (estimated) · duration: 5m 02s · rounds: 2 · files examined: 2

@ang-prism

ang-prism Bot commented Sep 28, 2026

Copy link
Copy Markdown

FleetReview

FleetReview's daily member-call budget is spent (60/600 for 2026-09-28 UTC); review skipped.


FleetReview · reviewKind: skipped-budget

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-reviewed CI-sensitive changes reviewed by maintainer fleetreview:post-merge Ask FleetReview to review this MERGED pull (merge commit vs first parent)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants