i'd like to finish sfdupes, secret, keyfunc asap, tag 1.0s, and quit working
on them other than bugfixes.
Definition of done
next passes script/cibuild, and every open issue that stands between
sfdupes and 1.0 is closed, except the trial run on the real server
(#56), which only sneak can run.
The release PR (#69) carries all of next, is mergeable and is merge-ready, assigned to sneak.
Once sneak has run the trial, its issue is closed, and he has merged the
release PR, v1.0.0 is tagged on main.
After the tag: bugfixes only. No new features, refactors or tidying; a
manager runs for this repo only when a bug is filed.
Model: opus-5-5
sneak, in chat, 2026-10-12:
> i'd like to finish sfdupes, secret, keyfunc asap, tag 1.0s, and quit working
> on them other than bugfixes.
**Definition of done**
- `next` passes `script/cibuild`, and every open issue that stands between
sfdupes and 1.0 is closed, except the trial run on the real server
(https://git.eeqj.de/sneak/sfdupes/issues/56), which only sneak can run.
- The release PR (https://git.eeqj.de/sneak/sfdupes/pulls/69) carries all of
`next`, is mergeable and is `merge-ready`, assigned to sneak.
- Once sneak has run the trial, its issue is closed, and he has merged the
release PR, `v1.0.0` is tagged on `main`.
- After the tag: bugfixes only. No new features, refactors or tidying; a
manager runs for this repo only when a bug is filed.
Model: opus-5-5
clawbot
self-assigned this 2026-10-12 11:11:06 +02:00
Everything for 1.0 apart from your trial run (#56) is done, and the release PR #69 is ready for you to merge.
Model: opus-5-5
Everything for 1.0 apart from your trial run (https://git.eeqj.de/sneak/sfdupes/issues/56) is done, and the release PR https://git.eeqj.de/sneak/sfdupes/pulls/69 is ready for you to merge.
Model: opus-5-5
clawbot
removed their assignment 2026-10-12 11:15:15 +02:00
sneak
was assigned by clawbot2026-10-12 11:15:15 +02:00
Correction to the definition of done above, from sneak's rulings in chat on 2026-10-12:
The final 1.0 is his call alone; no agent judges what satisfies it. The fleet tags release candidates only (v1.0.0-rc1, then rc2 and so on as fixes land), never the final v1.0.0.
Merging the release PR into main is never a blocker and never waits on him; he merges whenever he wishes. Nothing here is assigned to him.
Until he calls it finished, the repo keeps being worked: real defects found by running it and reading the code, fixed one reviewed PR each on next, with as many workers as the work allows.
Model: opus-5-5
Correction to the definition of done above, from sneak's rulings in chat on 2026-10-12:
- The final 1.0 is his call alone; no agent judges what satisfies it. The fleet tags release candidates only (`v1.0.0-rc1`, then `rc2` and so on as fixes land), never the final `v1.0.0`.
- Merging the release PR into main is never a blocker and never waits on him; he merges whenever he wishes. Nothing here is assigned to him.
- Until he calls it finished, the repo keeps being worked: real defects found by running it and reading the code, fixed one reviewed PR each on `next`, with as many workers as the work allows.
Model: opus-5-5
sneak
was unassigned by clawbot2026-10-12 23:57:38 +02:00
clawbot
self-assigned this 2026-10-12 23:57:38 +02:00
next at 5900feb is checked with script/cibuild; if it passes, its head is tagged v1.0.0-rc1.
The code is read for correctness in three parts: the walk, hash and update phases of scan with its lock and interrupt handling; the content phase, the database code and the exit codes; report, trees and the progress display. Separately, scan, report and trees built from next are run as a user would run them: about a million files, files over 50 MiB and over several GiB, hard links, unreadable and vanishing paths, a full disk, a second scan, a report during a scan, interrupts.
Each real defect found becomes its own issue with a definition of done, fixed in one reviewed PR on next. No features and no refactors. Each landed batch of fixes gets the next RC tag.
Plan for the release candidates:
- `next` at `5900feb` is checked with `script/cibuild`; if it passes, its head is tagged `v1.0.0-rc1`.
- The code is read for correctness in three parts: the walk, hash and update phases of `scan` with its lock and interrupt handling; the content phase, the database code and the exit codes; `report`, `trees` and the progress display. Separately, `scan`, `report` and `trees` built from `next` are run as a user would run them: about a million files, files over 50 MiB and over several GiB, hard links, unreadable and vanishing paths, a full disk, a second scan, a report during a scan, interrupts.
- Each real defect found becomes its own issue with a definition of done, fixed in one reviewed PR on `next`. No features and no refactors. Each landed batch of fixes gets the next RC tag.
- https://git.eeqj.de/sneak/sfdupes/pulls/97 keeps waiting on https://git.eeqj.de/sneak/prompts/issues/113, as https://git.eeqj.de/sneak/prompts/issues/78 says.
Model: opus-5-5
The audit of v1.0.0-rc1 starts again from scratch, as two sessions running at the same time, replacing the three-part split in the plan above:
scan and the database code (scan.go, db.go, main.go), read against the README: the walk, the hashes, which files a rescan hashes, deleting records, the lock, interrupts, exit codes.
report, trees, the progress display and the build files, read against the README; plus the binary built from the tag and run as a user would, on about a million files, with large and sparse files, hard links, escaped paths, rescans, interrupts, a full disk and the Docker image.
Each finding becomes its own issue with a definition of done and a severity. Critical findings carry the critical label and are fixed one reviewed PR each on next. If any fixes land, next is tagged v1.0.0-rc2. Other findings stay open for sneak and get no work.
Model: opus-5-5
The audit of `v1.0.0-rc1` starts again from scratch, as two sessions running at the same time, replacing the three-part split in the plan above:
- `scan` and the database code (`scan.go`, `db.go`, `main.go`), read against the README: the walk, the hashes, which files a rescan hashes, deleting records, the lock, interrupts, exit codes.
- `report`, `trees`, the progress display and the build files, read against the README; plus the binary built from the tag and run as a user would, on about a million files, with large and sparse files, hard links, escaped paths, rescans, interrupts, a full disk and the Docker image.
Each finding becomes its own issue with a definition of done and a severity. Critical findings carry the `critical` label and are fixed one reviewed PR each on `next`. If any fixes land, `next` is tagged `v1.0.0-rc2`. Other findings stay open for sneak and get no work.
Model: opus-5-5
The audit of v1.0.0-rc1 is done. It found nothing critical, so nothing was fixed and v1.0.0-rc1 stays the current release candidate. The four findings stay open for sneak:
#99 (major): scan -x deletes the records of other filesystems mounted under its operand.
#100 (minor): a file replaced by a FIFO before it is read hangs the scan.
#101 (minor): two scans run at once when one reaches the database through a symlink.
#102 (minor): on a terminal, a warning for a phase's last file erases its finished progress bar.
Not verified: go install sneak.berlin/go/sfdupes@main was not run; timings come from page cache, not spinning disks or ZFS.
Model: fable-5-1 (audit); opus-5-5 (summary)
The audit of `v1.0.0-rc1` is done. It found nothing critical, so nothing was fixed and `v1.0.0-rc1` stays the current release candidate. The four findings stay open for sneak:
- https://git.eeqj.de/sneak/sfdupes/issues/99 (major): `scan -x` deletes the records of other filesystems mounted under its operand.
- https://git.eeqj.de/sneak/sfdupes/issues/100 (minor): a file replaced by a FIFO before it is read hangs the scan.
- https://git.eeqj.de/sneak/sfdupes/issues/101 (minor): two scans run at once when one reaches the database through a symlink.
- https://git.eeqj.de/sneak/sfdupes/issues/102 (minor): on a terminal, a warning for a phase's last file erases its finished progress bar.
Not verified: `go install sneak.berlin/go/sfdupes@main` was not run; timings come from page cache, not spinning disks or ZFS.
Model: fable-5-1 (audit); opus-5-5 (summary)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
sneak, in chat, 2026-10-12:
Definition of done
nextpassesscript/cibuild, and every open issue that stands betweensfdupes and 1.0 is closed, except the trial run on the real server
(#56), which only sneak can run.
next, is mergeable and ismerge-ready, assigned to sneak.release PR,
v1.0.0is tagged onmain.manager runs for this repo only when a bug is filed.
Model: opus-5-5
Everything for 1.0 apart from your trial run (#56) is done, and the release PR #69 is ready for you to merge.
Model: opus-5-5
Correction to the definition of done above, from sneak's rulings in chat on 2026-10-12:
v1.0.0-rc1, thenrc2and so on as fixes land), never the finalv1.0.0.next, with as many workers as the work allows.Model: opus-5-5
Plan for the release candidates:
nextat5900febis checked withscript/cibuild; if it passes, its head is taggedv1.0.0-rc1.scanwith its lock and interrupt handling; the content phase, the database code and the exit codes;report,treesand the progress display. Separately,scan,reportandtreesbuilt fromnextare run as a user would run them: about a million files, files over 50 MiB and over several GiB, hard links, unreadable and vanishing paths, a full disk, a second scan, a report during a scan, interrupts.next. No features and no refactors. Each landed batch of fixes gets the next RC tag.Model: opus-5-5
The audit of
v1.0.0-rc1starts again from scratch, as two sessions running at the same time, replacing the three-part split in the plan above:scanand the database code (scan.go,db.go,main.go), read against the README: the walk, the hashes, which files a rescan hashes, deleting records, the lock, interrupts, exit codes.report,trees, the progress display and the build files, read against the README; plus the binary built from the tag and run as a user would, on about a million files, with large and sparse files, hard links, escaped paths, rescans, interrupts, a full disk and the Docker image.Each finding becomes its own issue with a definition of done and a severity. Critical findings carry the
criticallabel and are fixed one reviewed PR each onnext. If any fixes land,nextis taggedv1.0.0-rc2. Other findings stay open for sneak and get no work.Model: opus-5-5
The audit of
v1.0.0-rc1is done. It found nothing critical, so nothing was fixed andv1.0.0-rc1stays the current release candidate. The four findings stay open for sneak:scan -xdeletes the records of other filesystems mounted under its operand.Not verified:
go install sneak.berlin/go/sfdupes@mainwas not run; timings come from page cache, not spinning disks or ZFS.Model: fable-5-1 (audit); opus-5-5 (summary)