Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
a747f64
feat(autofix): audit the approach instead of stopping on growth-budge…
wenshao Aug 16, 2026
364d28d
fix(autofix): update the artifact-list pin for the growth-audit.json …
wenshao Aug 16, 2026
f7c3c66
Merge remote-tracking branch 'origin/main' into feat/autofix-growth-a…
wenshao Aug 16, 2026
ba4eb09
fix(autofix): surface conflict verdicts past the failure.md exits and…
wenshao Aug 16, 2026
b5e8ca6
fix(autofix): harden the growth-audit verdict pipeline and park wake …
wenshao Aug 16, 2026
7bb4d2f
fix(autofix): close the verdict-pipeline forgeries and loop-generated…
wenshao Aug 17, 2026
cfde2d9
Merge branch 'main' into feat/autofix-growth-audit
qwen-code-dev-bot Aug 17, 2026
4aaee34
Merge branch 'main' into feat/autofix-growth-audit
qwen-code-dev-bot Aug 17, 2026
5430b6e
Merge remote-tracking branch 'origin/main' into feat/autofix-growth-a…
wenshao Aug 18, 2026
df5a79e
Merge branch 'main' into feat/autofix-growth-audit
qwen-code-dev-bot Aug 18, 2026
361c745
Merge branch 'main' into feat/autofix-growth-audit
qwen-code-dev-bot Aug 18, 2026
a4c984e
Merge branch 'main' into feat/autofix-growth-audit
qwen-code-dev-bot Aug 18, 2026
4653f8c
Merge remote-tracking branch 'origin/main' into feat/autofix-growth-a…
wenshao Aug 19, 2026
2c73f3d
Merge branch 'main' into feat/autofix-growth-audit
qwen-code-dev-bot Aug 20, 2026
33168c6
Merge remote-tracking branch 'origin/main' into feat/autofix-growth-a…
wenshao Aug 20, 2026
9ae9e7c
fix(ci): drop the retired divergence rationale records (af-046/af-047…
wenshao Aug 20, 2026
c2ebf0e
Merge remote-tracking branch 'origin/main' into feat/autofix-growth-a…
wenshao Aug 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
311 changes: 255 additions & 56 deletions .github/scripts/run-autofix-review-verification.sh

Large diffs are not rendered by default.

83 changes: 0 additions & 83 deletions .github/workflows/qwen-autofix.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,6 @@ YAML, and never delete a section without deleting its pointer.
- [43. review-address · Prepare branch and feedback — Growth brake: measure the PR's net size (insertions minus deletions vs the merge base),…](#af-043)
- [44. review-address · Prepare branch and feedback — An orphan-history branch (fork takeover / adoption admits one — nothing on this job's…](#af-044)
- [45. review-address · Prepare branch and feedback — The marker's window field is spelled `key=`, NOT `win=`: this marker can legitimately…](#af-045)
- [46. review-address · Prepare branch and feedback — Divergence: Critical-only only trims non-Criticals, so when the GROWTH that trips the…](#af-046)
- [47. review-address · Prepare branch and feedback — Count runs whenever the net is measured (not only over budget), so the trajectory clause…](#af-047)
- [48. review-address · Prepare branch and feedback — Which trusted humans have exhausted their per-window regular feedback budget (see…](#af-048)
- [49. review-address · Prepare branch and feedback — Time-budget exhaustions SINCE THE LAST SUCCESSFUL ROUND mean the standard…](#af-049)
- [50. review-address · Triage and address — Bound the agent below the job timeout so a runaway agent fails THIS step (not the whole…](#af-050)
Expand Down Expand Up @@ -1397,87 +1395,6 @@ post-update size. (A conflict round's own merge of main is the
narrower residual; its delta is bounded by the overlap.)
```

<a id="af-046"></a>

### 46. review-address · Prepare branch and feedback — Divergence: Critical-only only trims non-Criticals, so when the GROWTH that trips the…

In `review-address` · `Prepare branch and feedback`.

```text
Divergence: Critical-only only trims non-Criticals, so when the
GROWTH that trips the brake is Critical-driven the diff keeps
climbing anyway. Read this window's prior per-round growth markers
(written by the report step): count the rounds that were over
budget, and take the MOST RECENT prior over-budget run's growth
SUM (latest measured= — see below; NOT the window-wide max, which a
one-off spike would raise forever). The round is DIVERGING when it
is over budget now, the brake has already fired for
>= GROWTH_DIVERGENCE_ROUNDS prior rounds, and the diff has NOT
shrunk from that most-recent sum — the fixes are not converging, so
the round must escalate to a human decision instead of patching
again. A diff that is over budget but SHRINKING (agent removing
code) or a one-off overshoot stays in ordinary Critical-only.
```

<a id="af-047"></a>

### 47. review-address · Prepare branch and feedback — Count runs whenever the net is measured (not only over budget), so the trajectory clause…

In `review-address` · `Prepare branch and feedback`.

```text
Count runs whenever the net is measured (not only over budget), so
the trajectory clause below is accurate even on a round that pulled
back under budget. markers:
<!-- autofix-growth-now src=N test=N over=BOOL round=N run=ID measured=TS key=W -->
Deduped by run=GITHUB_RUN_ID (the per-workflow-run id) and ORDERED
by measured=: the report post's bounded retry re-posts one run's
marker, and a failed job's re-run keeps the same run_id, so a run
collapses to its LATEST measurement — and that collapse happens
BEFORE the over/window/cutoff filters, or a re-run that came back
under budget would still be represented by its stale over=true
attempt. Within the collapse an explicit measured= beats the
created_at fallback: a re-run attempt that crashed BEFORE prepare
— or whose measurement failed — posts an inert over=false marker
with no measured=, whose fallback (post-run) timestamp would
otherwise outdate and erase the same run's real prepare-time
measurement. Every distinct address run has a fresh run_id.
KNOWN RESIDUAL (#9114): during the one-time deploy transition a
run whose FIRST attempt posted a legacy (no measured=) over=true
marker and whose re-run crashes before prepare still collapses
fallback-vs-fallback on created_at — the later inert marker wins
and erases the count. Self-limiting: once deployed, every real
measurement carries measured= and beats any inert marker.
round=/eval-watermark are NOT a safe identity — a state-triggered
lane (a persistent merge conflict selects the PR every scan with no
new evaluable feedback) freezes both NEWEST and ROUND, so distinct
over-budget runs would share them and collapse, stalling the count.
Filtered on measured= (the prepare-time measurement instant, NOT
the comment's post-agent created_at) after GROWTH_NOW_CUTOFF, so a
prior sum measured against a pre-base-update tree is dropped rather
than compared to this round's. KNOWN RESIDUAL (#9114): the tree is
fixed at the branch fetch/checkout while the cutoff comes from
ic.json fetched afterwards, so a base update landing between the
fetch and the measured_at stamp admits a pre-update marker;
self-heals at the next re-arm/base update. measured= is OPTIONAL in
the scan:
markers posted before it existed fall back to their comment's
created_at, so deploying this does not blank the census of a window
that is already in flight. KNOWN RESIDUAL (#9114): during that
transition the sort mixes two clocks — a legacy marker's fallback
is its POST-RUN created_at while a new marker stamps prepare time —
so PREV_SUM can briefly come from an older measurement; the count
is unaffected and it self-heals at the next re-arm/base update.
The "not shrinking" test compares against the MOST RECENT prior
over-budget run's sum (latest measured=), not the window-wide max: a
single transient spike would otherwise raise the bar forever and a
genuine plateau-over-budget runaway (the exact case to escalate)
would never clear it. The CURRENT run's own markers are excluded
(run != GITHUB_RUN_ID): a re-run of a failed job keeps the same run
id and its failed attempt already posted a marker, so counting it
would over-report the round's own attempt as a PRIOR one.
```

<a id="af-048"></a>

### 48. review-address · Prepare branch and feedback — Which trusted humans have exhausted their per-window regular feedback budget (see…
Expand Down
Loading
Loading