Skip to content

chore: capture iss-194 — retention is documented as operating but has never run - #207

Merged
REPPL merged 1 commit into
mainfrom
docs/iss-194-retention-never-run
Aug 7, 2026
Merged

chore: capture iss-194 — retention is documented as operating but has never run#207
REPPL merged 1 commit into
mainfrom
docs/iss-194-retention-never-run

Conversation

@REPPL

@REPPL REPPL commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Record-only: one ledger capture plus a dated DECISIONS.md line. No behaviour changes.

What was found

The newest-per-line retention policy is described in the present tense in .abcd/development/brief/04-surfaces/04-launch.md:134 and the release glossary entry, and internal/core/launch/retention.go:30 implements it exactly — but nothing executes it. internal/core/launch/ship.go:41 stops before any network call ("the real GitHub Release + SLSA + tag push + retention prune are a later phase"), and .github/workflows/release.yml, which publishes every release this project has actually cut, carries no retention step. The brief's own phase note schedules the prune as itd-70, unshipped.

Live evidence: six releases exist, and the real preview keeps v0.1.0, v0.2.0, v0.3.0, v0.4.2 while it would prune v0.4.0 and v0.4.1 — so the repository's release list contradicts its own prose. Same implemented-but-never-run class as iss-183.

Scope is the doc-currency half only: state that the policy is computed and previewable but not yet enforced, on the channel-truthful pattern iss-183 established. Wiring the prune is itd-70 and is not assumed here.

Disposition recorded

v0.4.0 and v0.4.1 stay rather than being pruned by hand: they are the only live fixture itd-70 has to prove itself against on arrival, and the first real prune should be the shipped mechanism's.

Also noted in the ledger body as possibly separable: internal/core/launch/dryrun.go:126 discards the error from GitExistingTags, so a shallow or tagless checkout yields an empty existing set and the retention preview reports nothing to prune — indistinguishable from a genuine nothing-to-prune. Reproduced during this investigation.

Verification

make preflight exits 0; gofmt -l . is empty; go run ./cmd/record-lint reports 0 blockers.

… never run

The newest-per-line policy is implemented and previewable, but no caller
executes it and the release workflow carries no retention step, so the
repository's own release list contradicts the prose. A dated DECISIONS line
records why v0.4.0 and v0.4.1 stay: they are itd-70's live fixture.

Assisted-by: Claude:claude-opus-5
@REPPL
REPPL force-pushed the docs/iss-194-retention-never-run branch from 2abff7e to 77857ac Compare August 7, 2026 15:03
@REPPL
REPPL merged commit bddb6fa into main Aug 7, 2026
12 checks passed
@REPPL
REPPL deleted the docs/iss-194-retention-never-run branch August 7, 2026 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant