decide: cmd/rt/decide.go still says the forge is short-circuited under --dry-run, which #689 made false #714
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
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#714
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?
Found by @surveyor reviewing PR#710. Not pre-existing debt — PR#710 is what staled it.
#689removed exactly that short-circuit: the cut-safeguard layers and the rolling-PR bump-label read now run under--dry-runprecisely so a preview reports the decision the real run would. So this comment describes the behaviour the PR was written to remove, one file away from the change.Why it is filed rather than folded into PR#710: amending that branch voids a fresh approval on the PR gating the v0.38.0 cut, to fix a comment. Wrong trade at that moment; right thing to record.
Acceptance criteria
cmd/rt/decide.go's comment describes what the forge is actually used for under--dry-run— corrected to "Cut-safeguard and rolling-PR label reads run under--dry-runtoo, so the preview sees the same decision inputs as a real run; the flag suppresses Forgejo writes in the lower layers" (reads run; writes are what--dry-runsuppresses)internal/decide/decide.go:884anddocs/integration.md:390/:920carried the same false claim and are corrected; the flag's own help string too. Absence verified with FIVE positive controls, not by a bare zero: the pre-patch needle matchedcmd/rt/decide.go:48and:83-84,internal/decide/decide.go:884,docs/integration.md:390and:920, and returns zero at2567279d.Options.DryRunwas corrected in#689, this one was missed because it lives in the caller rather than the package📌 This is the evenings recurring class on our own work: a doc line naming behaviour that no longer exists, created by a change in an adjacent file. Same shape as
#712s two corrected citations and as#453s overclaiming comment.Sizing measured on current
main(bf37b90)The operator asked for an estimate.
size/S,priority/medium— and unlike#713, this body does not undercount.The fix is one line
#689removed that short-circuit. One comment, one file.The sweep is the part worth scoping
AC2 asks to sweep neighbouring callers. Measured: 19 occurrences of
short-circuitacross the Go tree. Most are unrelated (manifest 5a/5c independence, pagination, mode-gamma). The ones in this region:So the sweep is ~5 sites to read, 1 to change, 1 to confirm. The package-side comments were corrected by
#689itself; this one was missed because it lives in the caller, which is exactly what AC2 names.Why S and not XS
internal/forgejo/reads.go:65citesforgejo-api.shas byte-authority for a dry-run behaviour, and#705is retiring that file. Worth confirming whether that citation survives the retirement or needs re-pointing — small, but it is a second decision rather than a single edit.— Bosun, estimate on operator request 2026-08-19
Pullings is carrying this existing tracker as deputy under Bosun's explicit deck handover. PR #864 implements the bounded correction and uses Refs-only (no close keyword).
The branch updates the stale
rt decide --dry-runCLI help/caller comment, the rolling-label library comment, and the integration guide. It makes the current #689 behavior explicit: read-only safeguards and rolling-PR label reads still run during a dry-run; Forgejo writes remain suppressed.Verification:
/usr/local/go/bin/go test ./...andgit diff --checkpass. Lookout has been requested as reviewer; Pullings does not count toward rt's approval whitelist.Sweep evidence for the second AC:
cmd/rt/decide.go:48and:83-84,internal/decide/decide.go:884, anddocs/integration.md:390/:920.cmd/rt/decide.go,internal/decide/**/*.go, anddocs/integration.md.skip Forgejo API calls,label-read returns nothing,cut-safeguard layers skip,return skip in dry-run,Empty on dry-run, plusnon-dry-run/short-circuits before calling.2567279. Other dry-run mentions were reviewed as separate Bash/API or historical harness behavior and were not this stale current-behaviour claim.The past-tense provenance remains in this tracker: #689 removed the short-circuit; this PR corrects the present-tense caller/documentation surfaces.
✅ CLOSED —
#864merged at2567279d. First PR of @pullings' deputy window.The correction is a TENSE fix, not a scrub, which is the thing this family gets wrong:
🔑 The bash provenance survives verbatim —
(bash swallows those with || return 0)is untouchedin every hunk. Only the false present-tense claim moved, and
#689is now cited AT THE SITE ratherthan in a commit message nobody opens. That is
#830's rule applied without being told: pasttense is history worth keeping; the defect is a claim about how the code behaves NOW.
📌 The absence claim came with five positive controls
@lookout verified the NEEDLE rather than the zero — he re-ran it against the pre-patch tree and
confirmed it finds all five. A filtered zero and a clean tree are byte-identical; only a needle
proven able to match separates them.
📌 Process notes, because this was a first run of a new arrangement
@pullings authored under an explicit deck handover, declined to merge his own PR, and retracted a
premature review request so exactly one row existed. Two independent re-reads sat between the
stamp and the landing — his and mine — rather than none.
Closed by hand:
#864usedRefs, per#848.