Record the stale-branch triage and advance TODO.md (closes #71)
All checks were successful
check / check (pull_request) Successful in 2m12s

Fourteen of the fifteen stale remote branches are deleted; the
per-branch disposition and its evidence live on issue #71. No product
code changes -- the triage resolved to deletions, so this commit is the
TODO.md Workflow step for the issue.

Two branches were the reason the issue existed, and both turned out to
be closed questions that main had already moved past:

fix/ctime-scanner-population would repopulate a field that no longer
exists. 1c72a37 removed the ctime column, the File.CTime field and
every use (#54/#55). Change detection compares size, mtime, mode, uid
and gid only, matching what ARCHITECTURE.md documents, so ctime never
participated and the silently-skipped-file data-loss risk that made
this a 1.0 item does not exist.

fix/sql-injection-whitelist would revert bfd7334, which deliberately
replaced that allow-list with regex sanitisation on review feedback,
and would break getTableCount("snapshots") because its allow-list omits
that table.

Containment was established with two-dot tip diffs, tree-hash equality
and git cherry rather than three-dot merge-base diffs, which replay
everything that landed on main after a branch diverged and make old
branches look like they hold unlanded work.

feature/daemon-mode is untouched, deferred to #94 pending an owner
decision. The stale TODO.md entry named in the issue needed no fix;
e496aa3 had already removed it.
This commit is contained in:
2026-08-09 08:18:10 +00:00
parent 50816b7415
commit 7e49b483d8

41
TODO.md
View File

@@ -14,11 +14,46 @@ pre-1.0
# Next Step # Next Step
Triage the stale remote branches (issue #71): for each, merge the work Define remaining scope for a first tagged release and cut v0.1.0.
or delete the branch.
# Completed Steps # Completed Steps
- 2026-08-09: Triaged all fifteen stale remote branches (issue #71) and
deleted fourteen of them; the full per-branch disposition with
evidence is recorded on that issue. Method mattered more than the
outcome here: a three-dot `git diff main...branch` diffs from the
merge base, so it replays everything that landed on `main` after the
branch diverged and makes any old branch look like it holds unlanded
work. That artifact is what made `golangci-v2.12.2` appear to carry
126 files of unpushed changes when its tree was byte-identical to
`main`'s. Every containment claim here therefore rests on two-dot tip
diffs, tree-hash equality, `git cherry`, and `git branch -r --merged`.
Nine branches were plain ancestors of `main` with zero `git cherry`
`+` commits. `golangci-v2.12.2` had landed squashed as `cc58583`,
whose tree hash equals the branch tip's exactly; note the hash
recorded in the issue had gone stale because `main` advanced, so the
check had to be redone rather than repeated.
`fix/sync-snapshot-cleanup` was redundant, its one line already on
`main` in `syncWithRemote`. `feature/restore-progress-bar` was
superseded by `printRestoreProgress` and the disk-backed blob cache,
and had become actively regressive — it would have deleted
`internal/blobgen/compress_test.go`, the #28 regression test that
landed separately. The two branches this issue was filed for both
turned out to be closed questions that `main` had already moved past
by a recorded decision, so neither was landed and no regression test
was owed: `ctime` no longer exists anywhere in the codebase after
`1c72a37` removed the column, the `File.CTime` field and every use
(#54/#55), and change detection compares size, mtime, mode, uid and
gid only, exactly as `ARCHITECTURE.md` documents — so the
silently-skipped-file data-loss risk that made this a 1.0 item does
not exist. The SQL allow-list branch would have reverted `bfd7334`,
which replaced that very allow-list with regex sanitisation on review
feedback, and would have broken `getTableCount("snapshots")` because
its allow-list omits that table. `feature/daemon-mode` is untouched
and deferred to #94 pending an owner decision, so it is the one
branch besides `main` still on the remote. The stale `TODO.md` entry
named in the issue needed no fix: `e496aa3` had already removed it.
No product code changed.
- 2026-08-09: Adopted the remaining upstream `CHECK_EPOCH` hardening - 2026-08-09: Adopted the remaining upstream `CHECK_EPOCH` hardening
(issue #91), closing the gap #85 knowingly left open. Four changes, (issue #91), closing the gap #85 knowingly left open. Four changes,
all four decided as adopt upstream in `sneak/prompts` #26. (1) Each all four decided as adopt upstream in `sneak/prompts` #26. (1) Each
@@ -182,4 +217,4 @@ or delete the branch.
# Future Steps # Future Steps
- Define remaining scope for a first tagged release and cut v0.1.0. None queued; the release-scoping item is now the Next Step.