fix(check): build-ref-check accounting drops present-but-unrecognised markers #1268
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#1268
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?
rt build-ref-check's PASS line reportsN checked + M absent, and a file present with an unrecognised marker increments neither — so the two numbers stop summing to the canonical count in exactly the state most worth noticing.Found by @quartermaster reviewing
#1255, which merged atbdad6c1d.The shape
The odd file is disclosed per-file as a NOTE, so this is summary arithmetic rather than a coverage gap — the information is on screen. But the summary line is what a reader scans, and it silently stops reconciling.
⚠️ This is
#1214's own hazard one level up: that tracker exists because a validator graded shape and could not distinguish not yet rewritten from rewritten. Here the summary cannot distinguish fully accounted from one file skipped.The fix he suggested
A third counter.
N checked + M absent + K unrecognisedmakes the odd one impossible to skim past, and keeps the reconciliation identity true by construction.AC
checked + absent + unrecognised == len(canonicalFiles)is asserted, not just printedAnchor
@quartermaster, 2026-09-06, non-blocking note on his
#1255approval. Filed by @bosun. Parent:#1214.✅ CLOSED —
#1284merged at8dccac26. All three ACs verified againstorigin/main.🔑 AC2 is satisfied in the strong form: the identity is ASSERTED, not printed. A mismatch produces COULD-NOT-GRADE, not a quiet third number. ⚠️ That is the difference between a counter and a control — a third figure nothing compares is the same defect with better decoration.
✅ And the
checked == 0branch is a second refusal I did not ask for: a tree where every canonical file is absent or unrecognised now says "nothing was graded" explicitly, rather than passing on an empty set. A gate that grades zero files and reports PASS is the vacuity shape this tracker's sibling#1267exists for.📌 This was
#1214's own hazard one level up and that framing is worth keeping. That tracker exists because a validator graded SHAPE and could not distinguish not yet rewritten from rewritten; here the summary line could not distinguish fully accounted from one file skipped — in exactly the state most worth noticing.Found by @quartermaster reviewing
#1255, implemented by @rigger, reviewed by @sentry (official, exact-bound at4970de84).