next into main #110

Open
clawbot wants to merge 3 commits from next into main
Collaborator

What next holds beyond main:

  • scan, report and trees print a first line on stderr naming the database file and where its path came from, and README "Database" says when scan writes each file (#111).
  • scan shows each phase as [n/5] with its progress, elapsed time and ETA, from the moment the phase starts and while it waits; under cron a line comes at least every 5 seconds, and on a terminal no line is wider than the terminal (#112).
  • The canonical build files re-vendored from sneak/prompts; what sfdupes does is unchanged.

The other fixes from your trial run (#56) land here one at a time as each passes review. Whatever is on next when you merge ships.

After you merge: once main's new tip passes script/cibuild, it is tagged v0.0.3, and go install sneak.berlin/go/sfdupes@latest installs it.

Model: opus-5-5

What `next` holds beyond `main`: - `scan`, `report` and `trees` print a first line on stderr naming the database file and where its path came from, and README "Database" says when `scan` writes each file (https://git.eeqj.de/sneak/sfdupes/issues/111). - `scan` shows each phase as `[n/5]` with its progress, elapsed time and ETA, from the moment the phase starts and while it waits; under cron a line comes at least every 5 seconds, and on a terminal no line is wider than the terminal (https://git.eeqj.de/sneak/sfdupes/issues/112). - The canonical build files re-vendored from `sneak/prompts`; what sfdupes does is unchanged. The other fixes from your trial run (https://git.eeqj.de/sneak/sfdupes/issues/56) land here one at a time as each passes review. Whatever is on `next` when you merge ships. After you merge: once `main`'s new tip passes `script/cibuild`, it is tagged `v0.0.3`, and `go install sneak.berlin/go/sfdupes@latest` installs it. Model: opus-5-5
clawbot added 1 commit 2026-10-16 04:07:16 +02:00
Every vendored file, REPO_POLICIES.md and every model script is the
copy at sneak/prompts e3f79c4, with this repository's own entries kept
after the canonical content. Lint and test are Dockerfile phases that
write no image; make test runs the suite under the race detector as
nobody. Every build in script/ passes a new CACHEBUST value, which every
stage declares first, so every RUN step runs again; the steps that
compile keep Go's build cache, and both go test runs pass -count=1.
Dockerfile.lint, script/verify-lint-image-pin and make test-race are
gone, prettier runs on the host, and .claude/settings.json is deleted.

Deviation: the set comes from e3f79c4 on next rather than dd4027b.
Judgement call: the test phase mounts the cache at nobody's
/tmp/.cache/go-build, owned by nobody.

Model: opus-5-5
sneak was assigned by clawbot 2026-10-16 04:07:17 +02:00
clawbot added the merge-ready label 2026-10-16 04:07:17 +02:00
clawbot added 1 commit 2026-10-16 15:28:04 +02:00
scan, report and trees now print one line on stderr before anything
else, naming the database and whether its path is the default or comes
from SFDUPES_DATABASE; scan also says when the file is new. report and
trees print it before opening the database, so a missing-database error
follows it. A relative path gets the working directory put in front of
it, with its symlinks resolved as the kernel reports it, and is not
cleaned: a ".." after a symlink names another file than the cleaned
path does. README "Database" lists when scan writes each file.

Unverified: the line on a terminal has no test of its own.

Model: opus-5-5
clawbot added 1 commit 2026-10-16 19:11:13 +02:00
Every scan display names its phase and its place among the five, as
"[2/5] walk", with its progress, elapsed time and ETA. load counts the
records first; the walk estimates its total from the records under the
operands; the content phase adds up the sizes of the matching groups
and says it is searching until the first record returns. Each display
redraws every 100 ms on a terminal and every 5 seconds in plain mode.

On a terminal no line reaches the last column: a line too wide drops
its rate, then its bar. After the terminal is made narrower than the
widest line drawn, the display makes a new library object, whose erase
fits.

Judgement call: load and the content checks draw the bar too, once their totals are known.
Judgement call: the bar is 10 columns wide, not the width the line leaves.

Model: opus-5-5
Some checks are pending
check / check (push) Waiting to run
You are not authorized to merge this pull request.
This pull request can be merged automatically.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin next:next
git checkout next
Sign in to join this conversation.