Commit Graph

  • 5abacbc5c1 Do not prune when a backup misses an earlier mount point (closes #395) v1.0.0-rc3 next clawbot 2026-10-15 08:32:28 +02:00
  • ff50a137dd Delete metadata directories a backup left without a manifest (closes #390) clawbot 2026-10-15 03:49:19 +02:00
  • e9b17cc5fd Do not prune after a backup that found a configured path empty (closes #388) clawbot 2026-10-15 02:49:21 +02:00
  • 850e2de25a Go on with a backup when the destination marker cannot be checked (closes #389) clawbot 2026-10-15 02:02:35 +02:00
  • 6a57750a7b Keep unreferenced blobs newer than prune_grace_period (closes #387) v1.0.0-rc2 clawbot 2026-10-14 13:06:35 +02:00
  • 2590f49583 Record the defect-hunt fixes in TODO.md Completed Steps (closes #334) v1.0.0-rc1 clawbot 2026-10-14 09:18:09 +02:00
  • 5b8d84e38a Do not prune after a backup that skipped unreadable files (closes #382) clawbot 2026-10-14 07:44:50 +02:00
  • 7a950ea2aa Exit non-zero when snapshot create --skip-errors skips anything it cannot read (closes #310) clawbot 2026-10-14 07:13:48 +02:00
  • 16b03dfda5 Keep the local index when remote nuke cannot list or find the destination (closes #292) clawbot 2026-10-14 06:47:38 +02:00
  • 2125a9d451 Stop counting directories and unchanged symlinks as files to back up (closes #305) clawbot 2026-10-14 06:46:45 +02:00
  • a0de8bfdb7 Refuse a backup destination an unplugged volume left empty (closes #239) clawbot 2026-10-14 05:46:42 +02:00
  • 291c39174f Warn about restored ownership only when an entry's owner or group differs (closes #316) clawbot 2026-10-14 05:39:27 +02:00
  • 65036bba1b Make snapshot list report a changed destination instead of advising prune (closes #317) clawbot 2026-10-14 04:29:36 +02:00
  • 54ad279dd6 Count a file as deleted only if the previous snapshot of its name had it (closes #304) clawbot 2026-10-14 04:24:30 +02:00
  • d156a02c49 Name each prefix once in restore, verify and purge errors (closes #327) clawbot 2026-10-14 04:04:14 +02:00
  • aeac897805 Refuse credentials in a storage URL's endpoint or rclone remote name (closes #322) clawbot 2026-10-14 03:26:02 +02:00
  • d8f4f62f41 Run $EDITOR through the shell in config edit (closes #315) clawbot 2026-10-14 03:06:57 +02:00
  • 9fd88a34c7 Fail snapshot remove when a destination-only snapshot's metadata cannot be deleted (closes #340) clawbot 2026-10-14 02:20:01 +02:00
  • 5db2e920e5 Label the index cleanup totals as totals (closes #306) clawbot 2026-10-14 02:03:51 +02:00
  • 66ea7f5f45 Free a cached blob once no file still to restore needs it (closes #324) clawbot 2026-10-14 01:47:48 +02:00
  • dd3667c8e9 Keep the whole startup error when it contains "): " (closes #320) clawbot 2026-10-14 01:34:38 +02:00
  • 30285c7a8c Silence prune and snapshot removal status under --cron and --quiet (closes #294) clawbot 2026-10-14 01:10:43 +02:00
  • 8d5e6f3399 Read the rclone config file named by RCLONE_CONFIG (closes #321) clawbot 2026-10-14 00:39:32 +02:00
  • abad8161bc Make **/ in an exclude pattern match zero directories (closes #338) clawbot 2026-10-14 00:13:27 +02:00
  • 05a2c86d65 Make the size defaults and the chunk_size minimum 1000-based (closes #313) clawbot 2026-10-13 23:56:22 +02:00
  • d8f78a1f45 Keep remote metadata when purge cannot remove a snapshot locally (closes #337) clawbot 2026-10-13 23:36:22 +02:00
  • 2c087be577 Fail restore for a requested path that matches nothing (closes #309) clawbot 2026-10-13 23:14:22 +02:00
  • 37d525c322 Make remote nuke delete every object under metadata/ and blobs/ (closes #291) clawbot 2026-10-13 22:50:09 +02:00
  • f89fac34f7 Make config set create a list for an index under a missing key (closes #308) clawbot 2026-10-13 22:43:41 +02:00
  • 5d8c515192 List a file:// destination through a symlinked directory (closes #296) clawbot 2026-10-13 21:36:23 +02:00
  • 2c4af6d0df Stop snapshot purge when a snapshot cannot leave the local index (closes #337) issue-337-purge-keeps-metadata clawbot 2026-10-13 19:35:57 +00:00
  • 42eb50b151 Report blob counts from snapshot verify --deep --json (closes #314) clawbot 2026-10-13 21:26:55 +02:00
  • 25ee9211d3 Limit and retry the module download in the Docker build (closes #351) clawbot 2026-10-13 21:11:11 +02:00
  • 3361e9ebd9 Record each snapshot's uncompressed size when its backup runs (closes #360) clawbot 2026-10-13 20:43:19 +02:00
  • fb8abcd049 Stop restore --verify re-reporting files that failed to restore (closes #323) clawbot 2026-10-13 20:12:48 +02:00
  • 6aceaaf086 Record the stored size of a blob a backup finds already stored (closes #300) clawbot 2026-10-13 20:01:42 +02:00
  • 3b2b9cec84 Return errors instead of exiting on rollback, rows close and blob temp file cleanup (closes #345) clawbot 2026-10-13 19:46:48 +02:00
  • dfa3bbc9e1 Stop a stalled snapshot database read when restore or deep verify is interrupted (closes #356) clawbot 2026-10-13 19:36:43 +02:00
  • 740f474c59 Make prune and remote nuke fail when a delete fails (closes #290) clawbot 2026-10-13 19:29:52 +02:00
  • 27e9798da5 Make an S3 listing the server cuts short an error (closes #297) clawbot 2026-10-13 19:25:49 +02:00
  • 4193ced1f6 Report blobs shallow verify could not check apart from missing ones (closes #318) clawbot 2026-10-13 18:50:48 +02:00
  • e48bafccef Restore the other files when a chunk is in no blob under --skip-errors (closes #326) clawbot 2026-10-13 16:53:05 +02:00
  • bffd4578fc Record each snapshot's new chunk size when its backup runs (closes #311) clawbot 2026-10-13 16:44:14 +02:00
  • f4ab1ba5ae Exit as interrupted when Ctrl-C lands during a local index write (closes #301) clawbot 2026-10-13 16:28:59 +02:00
  • 005927a7fc Print snapshot list and purge sizes like every other command (closes #312) clawbot 2026-10-13 16:22:03 +02:00
  • 09a0c01c43 Stop a stalled blob read when restore or deep verify is interrupted (closes #325) clawbot 2026-10-13 15:48:00 +02:00
  • 8c54e0ff75 Make a mistyped subcommand under a group command an error (closes #319) clawbot 2026-10-13 14:14:39 +02:00
  • d1213ecb34 Make a leading **/ in an exclude pattern match at the top level (closes #303) clawbot 2026-10-13 13:50:11 +02:00
  • 5f6455ba17 Refuse a relative file:// storage_url and decode its escapes (closes #299) clawbot 2026-10-13 11:27:59 +02:00
  • 0288735aaf Remove the blob temp file when a backup stops part-way (closes #302) clawbot 2026-10-13 11:14:55 +02:00
  • 35eed79b1a Check --keep-newer-than before the backup starts (closes #307) clawbot 2026-10-13 09:44:44 +02:00
  • 94412d9ef3 Stop remote info counting a non-blob file under blobs/ (closes #295) clawbot 2026-10-13 08:33:27 +02:00
  • 167c0a0746 Make snapshot remove fail for an unknown snapshot ID (closes #293) clawbot 2026-10-13 05:55:22 +02:00
  • 07c957f84b Bind the local index to the s3.* destination too (closes #298) clawbot 2026-10-13 03:48:36 +02:00
  • c9a519c233 Reject a retention duration longer than about 292 years (closes #289) clawbot 2026-10-13 01:51:24 +02:00
  • fa56165fe4 Stop a cancelled backup at once under --skip-errors (closes #286) clawbot 2026-10-08 15:12:07 +02:00
  • 34f61fb408 Make remote nuke delete leftover .partial uploads (closes #281) clawbot 2026-10-08 14:17:20 +02:00
  • 05bf73c48a Never skip a local index error for a directory or symlink (closes #284) clawbot 2026-10-08 12:59:26 +02:00
  • 79a73fa122 Count a file a backup could not store as failed (closes #280) clawbot 2026-10-08 10:12:10 +02:00
  • 0d0368df81 Report unknown blob figures for a snapshot whose manifest cannot be read (closes #272) clawbot 2026-10-08 08:46:11 +02:00
  • c06c4d201b Keep the progress line of a multi-path snapshot within 100% (closes #271) clawbot 2026-10-08 07:29:11 +02:00
  • 70f008a21a Document that --json skips the confirmation prompt (closes #268) clawbot 2026-10-08 04:59:30 +02:00
  • fce253fa39 Give a second snapshot create in the same second its own ID (closes #270) clawbot 2026-10-08 03:29:07 +02:00
  • e459a66099 Stop a backup on a symlink whose target cannot be read (closes #269) clawbot 2026-10-08 00:12:13 +02:00
  • 32c4a46b49 Write rclone uploads under a temporary name and move them into place (closes #266) clawbot 2026-10-07 22:59:26 +02:00
  • b5389a62b5 Exit 130 and say so when a command is interrupted (closes #267) clawbot 2026-10-07 21:59:27 +02:00
  • d87202fb70 Correct doc and help sentences that are false about the code (closes #233) clawbot 2026-10-07 17:59:27 +02:00
  • e161343eac Speed up the vaultik and database package tests (closes #235) clawbot 2026-10-07 17:12:07 +02:00
  • d53202eb86 Fix two misleading messages (closes #240) clawbot 2026-10-07 15:29:07 +02:00
  • 8b22ae8d42 Pass s3.part_size to the multipart uploader (closes #232) clawbot 2026-10-07 14:29:10 +02:00
  • 3fc8a8f2f4 Read the snapshot name using the stored hostname (closes #230) clawbot 2026-10-07 12:12:08 +02:00
  • 7696f83258 Leave remote info orphan figures unknown when a manifest is unreadable (closes #228) clawbot 2026-10-07 10:59:26 +02:00
  • 5d1118d143 Quote a string setting that YAML would read as a number (closes #229) clawbot 2026-10-07 09:29:19 +02:00
  • b57ce2277d Store and compare file mtimes to the nanosecond (closes #226) clawbot 2026-10-07 07:12:12 +02:00
  • 8496404d8b Make the process-wide lock atomic with flock (closes #227) clawbot 2026-10-07 06:12:10 +02:00
  • cdc60c4dfa Write only the document to stdout from snapshot remove --json (closes #251) clawbot 2026-10-07 04:46:13 +02:00
  • 49eed7a3e5 Count each file, byte and upload once in backup statistics (closes #225) clawbot 2026-10-07 02:59:27 +02:00
  • 85d4ef118d Keep command output to the README's stdout and stderr rules (closes #224) clawbot 2026-10-07 01:12:15 +02:00
  • b06f992152 Start the progress reporter once per snapshot, not once per path (closes #253) clawbot 2026-10-07 00:12:10 +02:00
  • 5d685f03ce List the files under a path by path, not by string prefix (closes #223) clawbot 2026-10-06 22:12:16 +02:00
  • f59086c0e5 Return an error, not a panic, on a malformed snapshot database (closes #231) clawbot 2026-10-06 21:16:28 +02:00
  • d276d891da Join the S3 prefix to every key with one slash (closes #222) clawbot 2026-10-06 19:46:09 +02:00
  • 5aa5ba5544 Apply restored owners, modes and times in an order that keeps them (closes #219) clawbot 2026-10-06 18:29:09 +02:00
  • 315b6483b8 Mark github.com/spf13/pflag as a direct dependency in go.mod (closes #246) clawbot 2026-10-06 16:59:26 +02:00
  • 14fc4c9893 Load a config that has no age recipient (closes #221) clawbot 2026-10-06 15:46:13 +02:00
  • 66c80a70e3 Skip files of an unreadable blob under restore --skip-errors (closes #218) clawbot 2026-10-06 14:46:05 +02:00
  • 81f83b29f6 Re-vendor the canonical files from sneak/prompts at dd4027b (closes #213) clawbot 2026-10-06 12:46:13 +02:00
  • c4adb72d80 Run the local index in WAL mode with a busy timeout (closes #217) clawbot 2026-10-06 11:29:18 +02:00
  • 4a167e153a Record the real uid and gid of backed-up files (closes #216) clawbot 2026-10-06 09:46:16 +02:00
  • ea72697992 List a missing file:// destination directory as an error (closes #220) clawbot 2026-10-06 08:46:17 +02:00
  • 713be502bd Reject a duration with characters outside its parts (closes #215) clawbot 2026-10-06 06:12:07 +02:00
  • 35cf985c18 Re-chunk a known file whose chunks no uploaded blob holds (closes #214) clawbot 2026-10-06 04:46:16 +02:00
  • 070090124a Stamp the tag or short commit in a plain docker build (closes #211) clawbot 2026-10-02 10:04:14 +02:00
  • 584444b619 List only after-1.0 work in the README roadmap (closes #208) clawbot 2026-10-01 21:41:41 +02:00
  • b30e79ee45 Run the disk-full restore test again (closes #207) clawbot 2026-10-01 20:24:30 +02:00
  • d886a9026f Merge branch 'main' into next sneak 2026-09-29 03:02:24 +02:00
  • 6e1f499048 Document that migrations are supported and none are added before 1.0 (closes #68) clawbot 2026-09-28 20:21:38 +02:00
  • 15e6506e5d next: integrate accumulated work into main (#114) main sneak 2026-09-23 13:03:02 +02:00
  • d24f5dc33c Adopt the canonical golangci-lint config (closes #90) clawbot 2026-09-23 02:14:40 +02:00
  • eed117fe25 Route direct-stdout command output through internal/ui (closes #149) clawbot 2026-09-22 20:28:50 +02:00