Skip to content

Expose the last normalize failure on /tasks/.../status - #84

Merged
tarekziade merged 1 commit into
mainfrom
fix/normalize-editable-install
Jul 30, 2026
Merged

Expose the last normalize failure on /tasks/.../status#84
tarekziade merged 1 commit into
mainfrom
fix/normalize-editable-install

Conversation

@tarekziade

Copy link
Copy Markdown
Collaborator

Why

On the 2026-07-29 nightly, the longcat_flash integration-failure group was reported in transformers#47631 as ⚠️ task failed / "LLM returned unparseable output". That is the last symptom, not the cause.

What actually happened (job 34d4b1f3…): the model produced a patch, the normalizer rejected it with 1 failed: docstrings, both corrections hit the same unfixable failure, and the tool-free re-asks then came back empty — so the run surfaced the empty-answer error and the normalizer failure was never mentioned. It only existed in the job history, which the dispatcher rendering the triage issue cannot see.

The normalize gate is the single most common reason a dispatched task opens no PR, so the caller should be able to explain the outcome without a dashboard round trip.

What

GET /tasks/{owner}/{repo}/{job_id}/status now returns normalizer_error: the most recent persisted normalize_error event, tail-bounded to 8k chars (checker output is tail-informative — traceback, then the N failed: <names> summary).

Derived from the persisted history rather than a new column, so it works for jobs already on disk and needs no migration. null when the normalizer never rejected a patch.

Consumed by a companion transformers-ci PR that renders it in the triage issue's outcome recap.

Test

tests/test_webapp_tasks.py: last-failure-wins when several are recorded, null when the gate never failed, tail-preserving bound, and tolerance of missing/blank history. Full suite: 618 passed.

🤖 Generated with Claude Code

The normalize gate is the most common reason a dispatched task opens no
PR, but on the error path the terminal `error` string names only the last
symptom. The 2026-07-29 nightly reported the longcat_flash group as "LLM
returned unparseable output"; what actually doomed it was the normalizer
failing on check_docstrings, three corrections earlier. That detail only
existed in the job history, so the dispatcher rendering the triage issue
could not explain the outcome.

Add `normalizer_error` to the status payload, derived from the most recent
persisted `normalize_error` event (tail-bounded — checker output is
tail-informative). Derived from history rather than a new column so it
works for jobs already on disk.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@tarekziade
tarekziade merged commit 823dc94 into main Jul 30, 2026
3 checks passed
@tarekziade
tarekziade deleted the fix/normalize-editable-install branch July 30, 2026 07:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant