forked from heavy-duty/rig
Dropping the pull_request gate made merge_base == HEAD a routine path rather than a degradation, and the success line did not follow. On every push to main the step printed "all N release heading(s) at the merge base are still present" — a containment claim on the one event where deletion is undetectable, since the comparison is the file against itself. That is the dishonesty this PR fixed in the skip messages, surviving in the success message. The line now has two forms: containment vacuous, naming uniqueness as the half that ran, or the existing containment wording when a real base exists. Both pinned, plus a negative that the two do not collapse. The "an untouched branch passes" case turned out to be this exact shape — its fixture never commits on 'work', so it was asserting containment on a self-comparison. Its assertion moved to uniqueness's count, and a companion case with a real base now carries the containment wording it used to claim. Also scopes the ci.yml negative pin to the monotonic step's own block. As a file-wide grep it forbade any FUTURE step from being pull_request-gated and would have failed citing #98 when one legitimately was. A companion check keeps the awk extractor from matching nothing and going tautological. Ported from heavy-duty/box#144 (box@94d830c). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| changelog-monotonic.sh | ||
| labels-reconcile.sh | ||
| release-lib.sh | ||