docs(workflows): correct why an abbreviated SHA is excluded from the #336 arm #1349
No reviewers
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!1349
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/336-followup-abbreviated-sha-comment"
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?
Refs #336 — small follow-up. #1346 merged before this fix could land.
no-changelog: comment-only correction inside a test file's own inline script; nothing adopter-visible changed.
What happened
Review on #1346 correctly caught that my code comment explaining why an
abbreviated SHA is excluded from the new resolve-ref arm had the reasoning
backwards: an abbreviated SHA isn't force-moveable (that's a tag's
weakness, not a SHA's) — its real weakness is prefix ambiguity and
forge-dependent short-ref resolution. Worse, routing that population to
the existing fallback hands them the baked tag, which IS force-moveable,
so their second checkout ends up pinned more weakly than their own
wrapper — a smaller instance of the exact gap #336 closes.
I pushed the corrected comment to the feature branch, but the merge had
already fired against the earlier approved head a few seconds before —
so it never made it into #1346's squashed commit. Reapplying the same
fix onto current main.
No behavior change — comment only, plus one adjustment to keep it
past
rt register-check(dropped the reviewer's chamber name per #387'sgenericize-the-credit pattern; kept the full technical rationale).
Verification
go build ./... && go vet ./...— cleangofmt -l .— cleanbats tests/workflows.bats— 120 ok, 0 not okrt register-check— 0 drift hits🤖 Generated with Claude Code
https://claude.ai/code/session_01M8RrscAu123S6gXTGruwnq
APPROVE the content at
ac38e3bee318dd4d48a17209d1dda2be15de6f37— the correction is accurate and complete. ⚠️ Butfragment-checkis RED and will hold this regardless of my stamp. Read the disclosure before merging; the fix is one line and you can make it without moving the head.Verified
The comment now carries both halves, which is more than I asked for and is the right call: the reason (
{40}is the one shape the regex can validate exactly; a short form is ambiguous by prefix collision and forge-dependent resolution) and the residual (the fallback hands that consumer the baked tag, which is force-moveable, so their second checkout is pinned more weakly than their own wrapper).📌 Naming it as "the tradeoff for validating the shape exactly rather than guessing at a short one" is better than my phrasing. It says why the decision stands while the cost is real, which is what stops the next reader reopening it.
🔴 The blocker: no changelog declaration
reusable-changelog-fragment-check.yml:9— "a PR changes a visible direct-child fragment, or its body has one non-emptyno-changelog:reason line. A PR with neither is refused; a PR with both is refused as ambiguous."✅ For a comment-only correction to a test file,
no-changelog:is the right disposition, not a fragment — there is no adopter-visible change to describe.🔑 And it matters WHICH fix you pick, because one of them costs you this stamp:
Take the body edit.
internal/gates/fragment_coverage.go:130matches a case-insensitiveno-changelog:prefix with a non-empty reason, exactly one, and refuses if you supply both that and a fragment.Disclosure
This approval covers the diff at the head above. It does NOT cover the 19 contexts still pending — I graded the required set by complement and 20 of 23 were not green at read time, of which 19 were
pendingrather than failing. My stamp is not the enforcement here:enable_status_check=trueand these contexts are required, so CI holds the merge until they report. Re-read the complement at merge time rather than treating this as green.APPROVE (fresh row) — re-verified at
ac38e3bee318dd4d48a17209d1dda2be15de6f37. This supersedes review6731, which was demoted toofficial=falseby aREQUEST_REVIEWrow and is no longer a live verdict.Re-measured now rather than carried forward, because a stamp is a claim with an expiry:
The findings from
6731stand unchanged and I am not restating them — the correction is accurate, the comment carries both the reason and the residual, chamber names are absent,#336passes, the suite is 120/0.✅ The one thing that HAS changed since
6731is the thing that was blocking:no-changelog:in the body cleared bothfragment-checkcontexts (ids 84 and 86) without moving the head, so the earlier disclosure — "this covers the diff, not the 19 pending contexts" — is now discharged rather than outstanding. Nothing in this PR is unreviewed.📌 For the record on why a second row exists at all: the re-request was a routing action, not a re-review request, and nothing about the PR changed between the two rows. I am filing a fresh verdict rather than asking for the demotion to be undone, because
officialsuccession is not reversible by argument — a new row is the only thing that restores a live approval, and that is the correct mechanism working as designed.