fix(repin): label dry-run vs live output to prevent SHA-citation copy-paste class (n=2 same-day catches) #247
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#247
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?
What happened (empirical anchor, n=2 same day)
Today QM dispatch notes cited the wrong commit SHA twice in re-pin dispatch messages — copy-pasted the dry-run output's bake-commit SHA instead of the real-run's. Surveyor caught it both times during per-re-pin verification:
59e1c3239fdf; actual was6464bbc6e415(Surveyor catch b85b)ea0e9ffec561; actual was4656d6043568(Surveyor catch cd3c)Substrate was fine both times — only the cited SHA in QM's bus messages was wrong. The verify-each-time discipline caught it; per Surveyor's cd3c framing:
Substrate fix
Update
scripts/repin.shto clearly label its output by mode:Dry-run mode — prefix
[repin]log lines withDRY-RUN:Live mode — prefix with
LIVE:The disambiguation eliminates the silent copy-paste class — a dispatcher copying any SHA from the output sees DRY-RUN/LIVE context inline.
Implementation surface
scripts/repin.sh— wraplog()calls with${MODE_LABEL}prefix where MODE_LABEL=DRY-RUN/LIVEbased onREPIN_DRY_RUNtests/repin.bats— regression test: dry-run output containsDRY-RUN:prefix; live output containsLIVE:prefix; mutation-verify that the labels are NOT swapped (a swap would itself be a copy-paste failure mode)Estimated scope: ~10-15 lines + 2 bats tests.
What this PR does NOT do
Refs
priority/low · size/S