mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-11-07 06:19:43 -10:00
* fix(verify-pr): keep each verify round in its own comment Verify jobs are serialized per PR, but their publishers queue on hosted runners, so a round's live status is often still "running" when the next round's verify job starts. The status step took that comment over and both publishers then wrote into it, so one round's report replaced the other's. A cancelled pending run's notice could likewise replace another round's live status. The status comment now carries a run marker. The status step reuses a live status only when it is this run's own (a re-run attempt), and the publisher writes only into that status, posting fresh otherwise. WEAK_BODY no longer decides anything and is removed. Also, from the #15966 follow-ups: evidence images are collected from the round the comment publishes instead of from every round, oldest first, and the pre-agent sweep comment no longer describes the head -1 ordering. * fix(verify-pr): let a re-run publisher find its own comment The publisher looked only for this run's live status, but the body it publishes carries neither the running marker nor the run marker. A publish job re-run after it had posted therefore found nothing and posted the report a second time. Every terminal body now keeps the run marker right after the leading verify marker, and the publisher matches its own run's comment whether it is still the live status or already the report. The status step still reuses only a live status. Tests now pin the status body's leading markers in order, use a re-run attempt number distinct from the run id, check the run marker in every terminal body, and check that the evidence skip count comes from the published round. * fix(verify-pr): never let a notice replace a published report A publish job re-run on its own downloads its own attempt's artifact, which the verify job never uploaded, so it always renders "results unavailable". Since the previous commit matched this run's comment whatever it held, that notice replaced the round's report. The lookup now also reports whether this run's comment carries findings, and a body without findings is posted beside it instead. A notice may still replace this run's live status or its earlier notice. Every body now opens with a header written once, before the branches: the verify marker, the run marker and, when the body carries findings, the substantive marker, ended by a blank line. The build-failure body's substantive marker moves up into it. Both lookups that choose a comment to write into read markers only from the header, so a marker quoted further down a body is text. Tests pin the notice/report gate in both directions, the header of every terminal body and that it is written once, header-only matching in both lookups, and that the status step does not reuse this run's report. * fix(verify-pr): read the substantive marker from the header for the snapshot The previous-round snapshot was the last lookup still matching its marker anywhere in a body, so a newer notice quoting the substantive marker below its header would have been snapshotted in place of the newest real report. It now reads the header like the other lookups. Build-failure reports posted before the header change carry the marker below their header and are skipped by the snapshot during the transition. Tests add that notice shape to the snapshot case, and render the reportless body to check it carries no substantive marker.