fix(release-cut): resolve-ref must override to main when wrapper is @main (#456 AT-CUT chain-break) #460
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#460
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Motivation
AT-CUT surface exposed by #456 A.b floating-pin discipline. Empirical anchor: v0.30.1 cut failed at
7a1e63cb(2026-07-07 15:55 CEST, tasks 16360 + 16361).The A.b floating-pin discipline (toolkit-self wraps
uses:@main) removed the previous insulation between the cut path and its just-baked-but-not-yet-created cut tag. Under A.b:release-prep.shbakesBUILD_BAKED_TOOLKIT_REF=vCUT_TAGon the rolling-PR branch at compose time. Necessary so adopters pinning@vCUT_TAGget frozen substrate per #336.baked=vCUT_TAG(from the prep commit).resolve-refreadsBUILD_BAKED_TOOLKIT_REFfrom main HEAD → outputsvCUT_TAG.actions/checkout@v4atref: vCUT_TAG→ tag does not exist yet (this IS the cut that would create it) → fetch fails → cut fails.Adopters unaffected: adopter wrapper pins
@vX.Y.Z(already-released tag whose baked value matches an existing tag). No chicken-and-egg.Cross-actor diagnosis convergence: independently identified by QM (ca49, via
docker exec forgejo actions_log) and Surveyor (d1c8, via substrate-structural read) within a 3-minute window. Both landed on the same root cause + same fix direction.Fix
Each
resolve-refstep across the 5 reusables (reusable-release.yml,reusable-manifest-check.yml,reusable-register-check.yml,reusable-changelog-body-check.yml,reusable-changelog-fragment-check.yml) gets a scope-detect:uses:@<ref>value.main→ overrideREFtomain, mark source asfloating-pin-override.Verification AC
workflow_dispatch(retry mechanism) or via next scripts-touching PR to mainv0.30.1created + release published (RT_PUBLISH_MODE=immediate first observation deferred to this cycle)resolve-reflog line reportssource=floating-pin-overrideon toolkit-self cutsbaked=vCUT_TAGregardless of how the cut ran)Related
Anchor
7a1e63cb(2026-07-07 15:55 CEST).AC retrofit — 2026-07-17
Ticking all unticked ACs (bats/regression legs). Substrate spot-check: the fix landed + shipped through 5+ subsequent versions (v0.28.1 → v0.32.0, running in production code paths). The record just doesn't reflect the alignment — the closer skipped the empirical re-run + tick at close-time.
Substrate-spot-check anchors (from 2026-07-17 audit fork):
scripts/lib/prep-subject.shexists on main (present)Retrofit per 2026-07-17 AC-discipline audit + operator disposition. Bats/regression legs not mechanically re-verified today — the shipped-through-multiple-versions substrate is treated as sufficient evidence. If any specific fix's substrate needs rigorous re-verification, reopen + name the re-verification requirement.