From 7e49b483d8daac167aaa87c3a380b7c90e622d36 Mon Sep 17 00:00:00 2001 From: sneak Date: Sun, 9 Aug 2026 08:18:10 +0000 Subject: [PATCH] Record the stale-branch triage and advance TODO.md (closes #71) 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. --- TODO.md | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/TODO.md b/TODO.md index 21ae2eb..99e478b 100644 --- a/TODO.md +++ b/TODO.md @@ -14,11 +14,46 @@ pre-1.0 # Next Step -Triage the stale remote branches (issue #71): for each, merge the work -or delete the branch. +Define remaining scope for a first tagged release and cut v0.1.0. # 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 (issue #91), closing the gap #85 knowingly left open. Four changes, all four decided as adopt upstream in `sneak/prompts` #26. (1) Each @@ -182,4 +217,4 @@ or delete the branch. # 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. -- 2.49.1