This website requires JavaScript.
f52bbe5d95
Say ZFS counts a new file's blocks up to seconds after the write (closes #152 )
next
clawbot
2026-11-03 05:00:51 +01:00
a00b97e299
Say ZFS counts a new file's blocks up to seconds after the write (closes #152 )
issue-152-zfs-block-count
sneak
2026-11-03 03:30:33 +00:00
30dae35c51
Stop the disk size tests failing at random on ZFS (closes #150 )
clawbot
2026-11-03 04:29:19 +01:00
5f51a4da78
Stop the disk size tests failing at random on ZFS (closes #150 )
issue-150-disk-size-test
sneak
2026-11-02 22:27:01 +00:00
4ecf8dc484
Rewrite TODO.md sentence by sentence (closes #135 )
clawbot
2026-11-02 23:29:22 +01:00
e895d9d39e
Add the entries that landed on next to TODO.md
issue-135-todo
sneak
2026-11-02 22:16:39 +00:00
da9b397b21
Rewrite TODO.md sentence by sentence (closes #135 )
sneak
2026-10-26 06:20:08 +00:00
2322f8bb02
Rewrite README.md sentence by sentence for a newcomer
clawbot
2026-11-02 23:12:27 +01:00
f373b7d9e4
Carry the README changes from next into the rewrite
issue-135-readme
sneak
2026-11-02 21:35:33 +00:00
d8b58bf281
Rewrite README.md sentence by sentence for a newcomer
sneak
2026-10-26 06:13:34 +00:00
4ed2e370b1
Record each file's size on disk and print it in trees (closes #147 )
clawbot
2026-10-27 19:56:49 +01:00
98193b2896
Keep the record count and total size in a totals table (closes #146 )
clawbot
2026-10-27 18:59:37 +01:00
ee09cda355
Never scan an operand inside a .zfs directory (closes #142 )
clawbot
2026-10-26 15:15:37 +01:00
fd76633211
Walk an operand below .zfs or a symlink on its own (closes #142 )
issue-142-zfs-symlink-operands
sneak
2026-10-26 12:23:51 +00:00
aa99b37b99
Skip removed paths silently and fix the progress line (closes #133 )
clawbot
2026-10-26 06:32:38 +01:00
68881f04f2
Store each hash as its raw 32 bytes in a BLOB column (closes #134 )
clawbot
2026-10-26 03:15:38 +01:00
f7a746f912
Hash every file's head, tail and content in the hash phase (closes #132 )
clawbot
2026-10-26 02:02:48 +01:00
eebf579f11
Merge pull request 'next into main' (#110 ) from next into main
main
v0.0.3
sneak
2026-10-22 18:44:20 +02:00
f4ddb58ae1
Keep modules, lint cache and system packages in check builds (closes #109 )
clawbot
2026-10-18 19:25:33 +02:00
6346319701
Install from @latest, retract v0.0.1, print a go-installed binary's version (closes #116 )
clawbot
2026-10-17 05:44:49 +02:00
4e4a94db2b
scan: create the database's directory where its path leads (closes #119 )
clawbot
2026-10-17 04:44:53 +02:00
dcfe0ea080
scan: never record its own database files (closes #115 )
clawbot
2026-10-17 04:10:50 +02:00
003e184f71
scan: skip OS default excludes, and record nothing on filesystems that are not persistent (closes #124 )
clawbot
2026-10-17 03:44:52 +02:00
68f6bde5ee
Show the progress rate over the last 5 seconds, and where a phase waits after 10 seconds with no item done (closes #125 )
clawbot
2026-10-17 01:10:57 +02:00
e9e09effc6
Add sfdupes info: show the database's details (closes #117 )
clawbot
2026-10-16 22:41:16 +02:00
ebe4d4dbeb
report: show its phases as N of M, with progress, elapsed time and ETA (closes #114 )
clawbot
2026-10-16 21:44:55 +02:00
8e0facdcd3
trees: show its phases as N of M, with progress, elapsed time and ETA (closes #113 )
clawbot
2026-10-16 21:00:14 +02:00
8dc73aa3f5
scan: show each phase as N of M, with progress, elapsed time and ETA, also while it waits (closes #112 )
clawbot
2026-10-16 19:11:10 +02:00
264817c413
Name the database each command uses on stderr (closes #111 )
clawbot
2026-10-16 15:28:02 +02:00
198cefa152
Re-vendor the canonical files from sneak/prompts at e3f79c4 (closes #95 )
clawbot
2026-10-15 18:28:54 +02:00
8a4616039b
Merge pull request 'next → main: trial-run fixes (escaping, read-only reports, scan lock, interrupts, streaming, README)' (#69 ) from next into main
v0.0.2
sneak
2026-10-15 09:50:27 +02:00
92c02c3bd1
Walk an operand nested on another filesystem with -x (closes #106 )
v1.0.0-rc2
clawbot
2026-10-14 21:40:02 +02:00
80bd7c0999
Keep records on other filesystems under an operand with -x (closes #99 )
clawbot
2026-10-14 20:22:50 +02:00
5dc6bfb6b7
Open files to hash without blocking and reject non-regular ones (closes #100 )
clawbot
2026-10-14 20:18:32 +02:00
1b26b5ce77
Name the scan lock file from the database's resolved path (closes #101 )
clawbot
2026-10-14 20:11:54 +02:00
a4d76af8fe
Redraw a finished bar below a warning for its last file (closes #102 )
clawbot
2026-10-14 19:55:58 +02:00
5900feb515
Store mtime to the nanosecond so a same-second rewrite is re-hashed (closes #12 )
v1.0.0-rc1
clawbot
2026-10-08 02:51:53 +02:00
0064eba542
Cut the narration from TODO.md and the script and Dockerfile comments (closes #49 )
clawbot
2026-10-04 20:47:21 +02:00
546203afe5
Run the tests under the race detector with make test-race (closes #18 )
clawbot
2026-10-04 20:01:26 +02:00
bebfac1dcb
Fail a bare docker build instead of serving cached gates (closes #39 )
clawbot
2026-10-04 19:30:20 +02:00
313aa0fc12
Format Markdown with prettier in make fmt and make fmt-check (closes #19 )
clawbot
2026-10-04 18:30:25 +02:00
1317d66589
Stop script/lint writing an image it never uses (closes #48 )
clawbot
2026-10-04 18:01:29 +02:00
0b7078301d
Test the remaining CLI cases (closes #16 )
clawbot
2026-10-04 17:47:26 +02:00
e2227ac07e
Copy the current canonical .golangci.yml (closes #26 )
clawbot
2026-10-04 16:13:20 +02:00
4a16a41bd7
Test both hashWorker cancellation checks on their own (closes #83 )
clawbot
2026-10-04 16:01:36 +02:00
722675f153
Escape the database path in the SQLite connection string (closes #55 )
clawbot
2026-10-04 15:13:19 +02:00
c9c8b1d06c
Reject scan --workers below 1 as a usage error (closes #10 )
clawbot
2026-10-04 14:30:21 +02:00
7278c354f0
Test both walk cancellation checks on their own (closes #81 )
clawbot
2026-10-04 14:01:38 +02:00
8032ea682b
Test that scan refuses another schema version (closes #64 )
clawbot
2026-10-04 13:30:23 +02:00
948fb03630
Correct four inaccurate comments in cancel_test.go and rename a constant (closes #33 )
clawbot
2026-10-04 13:01:31 +02:00
7ff0dbb6e1
Test the -x filesystem-boundary rejection branch (closes #17 )
clawbot
2026-10-04 12:13:23 +02:00
bccc14ffef
Refuse an unversioned database that already has a files table (closes #11 )
clawbot
2026-10-04 12:01:36 +02:00
33f8607e17
Document install, a daily cron scan and reading the reports (closes #54 )
clawbot
2026-10-04 11:47:20 +02:00
2eeba3df6f
Keep the module cache out of the build stage's chown (closes #43 )
clawbot
2026-10-04 10:01:28 +02:00
cb5dda4f45
Print --version to stdout (closes #15 )
clawbot
2026-10-04 09:47:28 +02:00
4847882e46
Stop scan cleanly on SIGINT or SIGTERM (closes #5 )
clawbot
2026-10-04 09:30:38 +02:00
33cf3dd29a
Stream report and trees instead of loading every record (closes #14 )
clawbot
2026-10-04 06:47:25 +02:00
9abf81535a
Print progress at once off a terminal, keep warnings out of redraws (closes #13 )
clawbot
2026-10-04 04:47:35 +02:00
2dd1194f33
Warn about and skip non-regular and .zfs operands, keeping their records (closes #9 )
clawbot
2026-10-04 04:01:43 +02:00
705c8729ca
Hold a lock so a second scan fails at once (closes #53 )
clawbot
2026-10-04 02:30:21 +02:00
01ff3bb5f0
Test report and trees stdout write failures (closes #30 )
clawbot
2026-10-03 18:01:27 +02:00
d63d3cc7fc
Open the database read-only for report and trees (closes #8 )
clawbot
2026-10-03 16:30:19 +02:00
c887f80f57
Escape tab, newline, CR and backslash in report paths (closes #7 )
clawbot
2026-10-03 15:30:37 +02:00
c9bf22d483
Stamp the git tag or short commit in a plain docker build (closes #67 )
clawbot
2026-10-02 08:49:03 +02:00
c2804d088b
Merge pull request 'next' (#50 ) from next into main
sneak
2026-09-26 15:27:29 +02:00
c737490a53
Compute the content hash only when head and tail match (closes #61 )
clawbot
2026-09-23 16:06:09 +02:00
09a39ddf37
Keep the database schema at version 1 (closes #61 )
clawbot
2026-09-23 13:38:06 +02:00
29a65016d0
Add 64 KiB head/tail and content-hash duplicate ladder (closes #61 ) (#62 )
clawbot
2026-09-22 16:40:43 +02:00
7ac4f6b723
Remove dead files.dat references from build config (closes #22 )
clawbot
2026-09-21 15:01:57 +02:00
282146a409
Reformat all Markdown with prettier
issue-19-markdown-fmt
clawbot
2026-09-21 07:32:12 +00:00
2dd4b8c401
Restore Markdown formatting in fmt/fmt-check and pin prettier (closes #19 )
clawbot
2026-09-21 07:31:53 +00:00
337b319542
Normalize the lint-image pin comments and FROM form (closes #25 )
sneak
2026-08-10 14:06:47 +00:00
d43c1d31ac
Merge branch 'next': run all linting in Docker (closes #46 )
clawbot
2026-08-10 15:55:42 +02:00
d4eaf5fed2
Run all linting in Docker via Dockerfile.lint (closes #46 )
sneak
2026-08-10 12:53:03 +00:00
e6a91711b0
Merge branch 'dockerfile-bootstrap': bootstrap the builder stage, guard the linter pin (closes #42 )
clawbot
2026-08-09 17:43:57 +02:00
5ca68804ac
Fail the Docker build when the lint stage's linter is not the pin
clawbot
2026-08-09 15:29:13 +00:00
3a183aa64b
Run script/bootstrap in the Docker build stage (closes #42 )
sneak
2026-08-09 14:43:04 +00:00
47fd4e8def
Merge branch 'refresh-repo-policies': re-vendor REPO_POLICIES.md (closes #20 )
clawbot
2026-08-09 12:00:54 +02:00
99d757c31d
Re-vendor REPO_POLICIES.md from the canonical copy (closes #20 )
clawbot
2026-08-09 09:57:43 +00:00
a5fa600c98
Merge branch 'readme-entrypoints': document the entrypoints, drop the tooling line (closes #21 )
clawbot
2026-08-09 09:53:49 +02:00
9322e8ddee
README: drop the tooling attribution, document the entrypoints (closes #21 )
sneak
2026-08-09 07:51:31 +00:00
a102b8fb06
Merge branch 'cibuild-cache-bust': make the Docker gates actually execute (closes #32 )
clawbot
2026-08-09 09:47:02 +02:00
964fc29ed3
Bust the Docker layer cache for the gate steps (closes #32 )
clawbot
2026-08-09 07:04:35 +00:00
b8ebe5f578
Merge branch 'bootstrap-version-check': check the linter version, not just presence (closes #24 )
clawbot
2026-08-09 08:38:36 +02:00
9d06c13777
Verify the golangci-lint install actually took effect
clawbot
2026-08-09 06:19:37 +00:00
9e924721e6
Check the golangci-lint version in bootstrap, not just presence (closes #24 )
clawbot
2026-08-09 05:52:55 +00:00
076d82231b
Merge branch 'hash-pool-cleanup': unwind the hash worker pool on error (closes #6 )
clawbot
2026-08-09 07:46:43 +02:00
1a38570301
Cover the post-walk cancellation guard with a test that reaches it
clawbot
2026-08-09 05:12:43 +00:00
1399249957
Unwind the hash worker pool instead of abandoning it (closes #6 )
sneak
2026-08-09 03:00:01 +00:00
2a055c0104
Merge branch 'db-close-on-fatal': close the database on every exit path (closes #4 )
clawbot
2026-08-09 04:39:28 +02:00
73841c9989
Guarantee the database is closed on every fatal exit path (closes #4 )
sneak
2026-08-09 02:27:07 +00:00
ce6d29dffb
Merge branch 'todo-next-step-stale': point TODO.md at the tracker (closes #27 )
clawbot
2026-08-09 04:05:04 +02:00
a7295750ef
Point TODO.md at the tracker and record landed work (closes #27 )
sneak
2026-08-09 02:03:23 +00:00
38a01bd27c
Merge branch 'golangci-v2.12.2': golangci-lint v2.12.2 and canonical config (closes #3 )
clawbot
2026-08-09 03:57:09 +02:00
814bdada2b
Update golangci-lint to v2.12.2 with canonical config
sneak
2026-08-07 16:46:10 +00:00
3abeacf8ee
Add scripts-to-rule-them-all scaffold (refs #1 )
sneak
2026-07-26 23:23:06 +07:00
b5f6faa00e
Merge branch 'inode-runs': inode-ordered hashing, hard links read once
sneak
2026-07-25 14:36:56 +07:00
b14b735c88
Hash in inode order, read hard links once, never open empty files
sneak
2026-07-25 14:36:55 +07:00
67bde6226d
Merge branch 'load-progress': never look hung during startup
sneak
2026-07-25 14:28:13 +07:00
57efa64f18
Show progress while loading the record index
sneak
2026-07-25 14:28:11 +07:00