Commit Graph

  • 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