Commit a6b0fd1
merge-queue triage: excerpt the failure REASON, and aggregate same-signature ejections into one anchor issue (#10140)
* feat(ci): merge-queue triage excerpts the failure REASON, and aggregates same-signature ejections into one anchor issue
Two limbs on the #4859 merge-queue-triage bot, plus the gate that exercises it.
Limb 1 — the excerpt now prints the deciding line beside the FAIL line. A
timeout and an assertion produce byte-identical FAIL lines and opposite
diagnoses; on 2026-08-20 that ambiguity produced a confidently wrong card
(#10112) and cost a full dispatch to falsify.
Limb 2 — each ejection is keyed by the failing test file path and records the
sighting in its own comment. When one key has ejected >= 2 distinct PRs inside
24h the bot files ONE anchor issue for it, or refreshes the open one, and links
it from every later victim's comment. The bot still decides nothing: no
requeue, no quarantine, no label on anybody's PR.
Also: the cross marks in the FAIL matcher must now sit at line start, so a
multiplication sign inside a test TITLE stops spending excerpt budget.
Fixes #10128
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XqDQYVU5smx29ts9pAErja
* fix(ci): a line reported as a failure reason is not excerpted twice
`AssertionError` qualifies under both the FAIL matcher and the reason matcher,
so without a consumed-line guard the assertion case reports every failure twice
and spends half the excerpt budget saying the same thing. Measured on the real
captured assertion log: 12 excerpt lines before, 9 after.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XqDQYVU5smx29ts9pAErja
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>1 parent 5a2ce6c commit a6b0fd1
7 files changed
Lines changed: 1709 additions & 19 deletions
File tree
- .github/workflows
- scripts
- fixtures/merge-queue-triage
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1043 | 1043 | | |
1044 | 1044 | | |
1045 | 1045 | | |
| 1046 | + | |
| 1047 | + | |
| 1048 | + | |
| 1049 | + | |
| 1050 | + | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
| 1080 | + | |
| 1081 | + | |
| 1082 | + | |
| 1083 | + | |
| 1084 | + | |
| 1085 | + | |
1046 | 1086 | | |
1047 | 1087 | | |
1048 | 1088 | | |
| |||
Large diffs are not rendered by default.
0 commit comments