mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-08-03 13:24:41 +00:00
* fix(autofix): salvage race-lost pushes by merging the moved head and retrying The review-address push is one-shot: when anything pushes to the PR head during the agent's ~50-minute window, the final push dies 'fetch first' and the entire verified agent run is discarded. The per-PR head-write concurrency group cannot prevent this — it serialises this repo's workflows, not the PR author or the fork side. Observed twice in one day (#7983 after a 56-minute run, #7985 after 43 minutes). On rejection, fetch the moved head, merge it into the local line, and retry (bounded at 3 attempts). Merge rather than rebase: the agent's own conflict-resolution rounds create merge commits, and a rebase would flatten them and can silently re-introduce the conflicts they resolved. The merge result descends from the remote head, so the retried push is a fast-forward and rewrites nothing. A genuine content conflict aborts the merge and falls through to the existing failure path unchanged. When a salvage merge happened, the round report discloses that the round's verification predates the merge so mid-run commits get re-checked by a human. * fix(autofix): address salvage-loop review findings - Gate the PUSH_RACE_MERGED disclosure on HEAD actually advancing: a transient push failure (upload timeout, 503) on an unmoved branch no-ops the merge ('Already up to date') and must not tell the reviewer to re-check mid-run commits that never existed. - Annotate the salvage fetch failure with ::error:: like the two adjacent failure paths, so a deleted fork branch or network error does not kill the step with an unannotated exit 128 under bash -e. - Re-pin the same-repo push URL construction in tests: it lost its old 'origin "${BRANCH}"' pin in this rework, leaving a ${REPO}→${HEAD_REPO} mutation (malformed remote in the same-repo case) unkillable. * test(autofix): restore dropped mutation-killing pins and add structural assertions (#8042) * test(autofix): pin exit 1 in the give-up guard regex to kill the deletion mutation (#8042) * test(autofix): pin exit 1 in the fetch-failure and merge-conflict salvage paths (#8042) * test(autofix): strengthen salvage-test pins to kill init-value and capture-order mutations (#8042) --------- Co-authored-by: verify <verify@local> Co-authored-by: qwen-code-dev-bot <qwen-code-dev@service.alibaba.com> |
||
|---|---|---|
| .. | ||
| audio-capture-prebuilds.yml | ||
| auto-minimize-spam.yml | ||
| build-and-publish-image.yml | ||
| cd-cua-driver.yml | ||
| cd-mobile-mcp.yml | ||
| ci.yml | ||
| codeql.yml | ||
| comment-attachment-guard.yml | ||
| desktop-release.yml | ||
| docs-page-action.yml | ||
| dsw-swe-verified-release.yml | ||
| e2e.yml | ||
| finalize-release.yml | ||
| gemini-scheduled-pr-triage.yml | ||
| main-ci-failure-issue.yml | ||
| pr-force-push-reminder.yml | ||
| pr-self-report-label.yml | ||
| qwen-autofix.yml | ||
| qwen-ci-flaky-rerun.yml | ||
| qwen-code-pr-review.yml | ||
| qwen-fleet-shepherd.yml | ||
| qwen-issue-followup-bot.yml | ||
| qwen-pr-safety-precheck.yml | ||
| qwen-triage-finalize.yml | ||
| qwen-triage.yml | ||
| release-sdk-java.yml | ||
| release-sdk-python.yml | ||
| release-sdk.yml | ||
| release-vscode-companion.yml | ||
| release.yml | ||
| sdk-java.yml | ||
| sdk-python.yml | ||
| serve-ab-publish.yml | ||
| serve-ab.yml | ||
| stale.yml | ||
| sync-cua-driver-to-oss.yml | ||
| sync-release-to-oss.yml | ||
| terminal-bench.yml | ||
| update-ecs-runner-qwen.yml | ||
| web-shell-visuals-cleanup.yml | ||
| web-shell-visuals-publish.yml | ||
| web-shell-visuals.yml | ||
| windows-runner-smoke.yml | ||