Problem
integration_failure_triage.py names its tracking issue per day ([serge] integration failure triage - YYYY-MM-DD) and refreshes that issue's body in place as tasks reconcile. Re-running the triage the same day reuses the same issue and regenerates the body from the new run's state — where the groups have just been re-dispatched and have no outcome yet — so the previous run's completed ## Outcome recap section (the per-group no_fix/error reason + token spend) is overwritten and lost from the body.
The recap is the only place the "why did this group open no PR" explanation is surfaced outside the Serge dashboard, so losing it mid-day is confusing and destroys useful analysis.
Evidence
huggingface/transformers#47563 (2026-07-26) edit history (userContentEdits):
| time |
editor |
body size |
note |
| 19:26 |
github-actions |
3497 |
created |
| 19:50 |
github-actions |
5016 |
run 1 reconcile adds ## Outcome recap (owlvit/florence2 reasons + tokens) |
| 20:24 |
github-actions |
3666 |
run 2 (re-trigger) regenerates body → recap gone |
The recap content was only recoverable via the GitHub edit-history API; the body itself no longer had it.
Impact
- Analysis (per-group no-PR reasons + token spend) silently disappears when the triage is re-run the same day.
- Only transiently "recovers" — the new run rewrites the recap when its tasks finish, but with different content (different run), so the prior run's record is permanently gone from the issue body.
Root cause
Per-day issue reuse + in-place body refresh in src/transformersci/agentic/integration_failure_triage.py (the recap builder — "Recap lines for groups that produced NO PR", ~L1006 — and the tracking-issue body/reconcile path). The recap is derived only from the current run's finished tasks and rendered into the mutable body.
Possible fixes (not prescriptive)
- Write the
## Outcome recap as a comment (durable; body-refresh doesn't touch comments) instead of in the mutable body.
- Don't reuse the same-day issue on a re-run — mint a fresh per-run issue and mark the prior "superseded" (append, don't overwrite).
- Preserve/append prior recaps in the body rather than regenerating from scratch.
Surfaced while validating the serge GPU verify loop (the owlvit recap that was lost is exactly the truncated-traceback case fixed by #42).
🤖 Filed via Claude Code
Problem
integration_failure_triage.pynames its tracking issue per day ([serge] integration failure triage - YYYY-MM-DD) and refreshes that issue's body in place as tasks reconcile. Re-running the triage the same day reuses the same issue and regenerates the body from the new run's state — where the groups have just been re-dispatched and have no outcome yet — so the previous run's completed## Outcome recapsection (the per-groupno_fix/errorreason + token spend) is overwritten and lost from the body.The recap is the only place the "why did this group open no PR" explanation is surfaced outside the Serge dashboard, so losing it mid-day is confusing and destroys useful analysis.
Evidence
huggingface/transformers#47563 (2026-07-26) edit history (
userContentEdits):## Outcome recap(owlvit/florence2 reasons + tokens)The recap content was only recoverable via the GitHub edit-history API; the body itself no longer had it.
Impact
Root cause
Per-day issue reuse + in-place body refresh in
src/transformersci/agentic/integration_failure_triage.py(the recap builder — "Recap lines for groups that produced NO PR", ~L1006 — and the tracking-issue body/reconcile path). The recap is derived only from the current run's finished tasks and rendered into the mutable body.Possible fixes (not prescriptive)
## Outcome recapas a comment (durable; body-refresh doesn't touch comments) instead of in the mutable body.Surfaced while validating the serge GPU verify loop (the owlvit recap that was lost is exactly the truncated-traceback case fixed by #42).
🤖 Filed via Claude Code