* fix(ci): seed the dist-rebuild warning on every retryable A/B exit
The baseline leg rebuilds dist/ from baseline sources, and every
retryable exit of the verify gate hands that tree to the repair
agent — but the "run npm run build first" steering note only
reached the green-baseline rejection. The comm -23 comparison
failure and different-signature exits sent the repair agent in
blind, free to trust or test against stale baseline artifacts
(the different-signature exit carried the note on #8765's branch;
the #8878 port kept it on the green exit only). #8765's post-close
round-3 review flagged the comm path as Critical.
Append the note on both missing exits and pin all three paths:
the DIFFERENT-reason test now asserts the note, a new test stubs
comm to fail and asserts the same, and the pre-existing test pins
the note OUT of its document — no repair runs for that verdict.
Mutation-tested, 3 of 3 caught: comm-path note dropped,
different-reason note dropped, note leaked into the pre-existing
document.
* fix(ci): single emit point for the dist note, name the comm-failure exit
Address the two review suggestions on #8958:
- The steering note existed as three byte-identical copies, and the
"every retryable exit seeds the note" invariant depended on
copy-paste — the exact drift this PR was patching (one exit seeded
on #8765's branch, one lost in the #8878 port). Both reviewers
flagged it. The string now lives in seed_dist_note(), called from
all three exits.
- The comm-failure exit seeded the note but, unlike its sibling
retryable exits, emitted no verdict-rationale line — an oncall
could not distinguish "the comparison itself failed" from
"baseline is green" without re-running the A/B. It now says so.
Mutation-tested: mutating the string inside the helper fails all
three path assertions at once; mutating the rationale line fails
the comm-exit test.
* test(ci): pin the no-identity baseline arm of the A/B gate (#8958)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>