-
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
-
dd7a610c23
Mark a snapshot complete only after its metadata export succeeds (closes #177)
clawbot
2026-09-22 20:00:41 +02:00
-
1548c0f933
Correct the security claims in docs and comments, and record the accepted risks (closes #171)
clawbot
2026-09-22 19:28:31 +02:00
-
c3bec7d3aa
Reject a metadata database truncated to the age header and nonce (closes #152)
clawbot
2026-09-22 18:11:57 +02:00
-
1244c9e48d
Bound download expansion and escape control chars on the terminal (closes #164)
clawbot
2026-09-22 17:00:35 +02:00
-
82c51a5337
Validate blob hashes, offsets and lengths from the destination (closes #155)
clawbot
2026-09-22 16:11:28 +02:00
-
d88ed64489
Parse the age identity key once and accept every identity in it (closes #165)
clawbot
2026-09-22 15:45:27 +02:00
-
bd9656dbd4
Reject a decrypted snapshot database that is not the requested one (closes #156)
clawbot
2026-09-22 15:01:02 +02:00
-
7e611b95db
Check blob sizes and the database in shallow verify (closes #169)
clawbot
2026-09-22 14:28:44 +02:00
-
4f27608560
Add negative and boundary tests for blobgen and types (closes #170)
clawbot
2026-09-22 14:28:34 +02:00
-
ae6aaaa388
Wait for the interrupted operation to clean up before exit (closes #159)
clawbot
2026-09-22 14:00:49 +02:00
-
f788668287
Remove the unused crypto path and write the blob-ID hash step once (closes #151)
clawbot
2026-09-22 13:46:02 +02:00
-
238ce3985f
Scrub example config of real credentials and internal hosts (closes #172)
clawbot
2026-09-22 13:45:52 +02:00
-
548a7ae156
Give the local index and its export copy an explicit 0600 mode (closes #168)
clawbot
2026-09-22 13:12:07 +02:00
-
3a58377127
Parse age_recipients at config load and never echo the entry (closes #153)
clawbot
2026-09-22 13:01:00 +02:00
-
a6434de57f
Open the downloaded snapshot database read-only, on a private temp dir (closes #162)
clawbot
2026-09-22 12:45:53 +02:00
-
b4654f8e52
Abort the run when packing fails, even under --skip-errors (closes #161)
clawbot
2026-09-22 12:28:44 +02:00
-
39aef1c47c
Stop config set echoing secrets; reject credential-bearing storage URLs (closes #166)
clawbot
2026-09-22 12:28:32 +02:00
-
96ebcd40d7
Reconcile purge against remote by hashed key, not human ID (closes #160)
clawbot
2026-09-22 12:11:49 +02:00
-
d9f0220f94
Restore files at 0600 and make the blob hash check unskippable (closes #163)
clawbot
2026-09-22 11:45:52 +02:00
-
4c83e82543
Reject a blob_size_limit below the largest possible chunk (closes #167)
clawbot
2026-09-22 11:45:41 +02:00
-
86361c8b50
Fail closed on unreadable manifests instead of losing blobs (closes #157)
clawbot
2026-09-22 11:45:30 +02:00
-
d77663d039
Default a scheme-less s3.* endpoint to TLS (closes #158)
clawbot
2026-09-22 11:11:34 +02:00
-
3abe9cbd9e
Scope the PID lock to mutating commands (closes #150)
clawbot
2026-09-22 11:01:29 +02:00
-
76a6917a35
Keep restore writes inside the target directory (closes #154)
clawbot
2026-09-22 11:01:01 +02:00
-
38ebfd843a
Trust only uploaded blobs for deduplication (closes #148)
clawbot
2026-09-22 10:29:21 +02:00
-
6b7517a4dc
Add fault-injection tests for interruption and corruption (closes #72)
clawbot
2026-09-22 09:46:46 +02:00
-
994e5de613
Quiet only the stdout UI under --json, not the log level (closes #112)
clawbot
2026-09-22 09:05:52 +02:00
-
42f4e648d7
Reconcile docs with code across the accuracy-sweep items (closes #74)
clawbot
2026-09-22 09:05:36 +02:00
-
343129f891
Accept a remote key for restore and verify, and document it (closes #124)
clawbot
2026-09-22 01:01:25 +02:00
-
a50e3fa038
Add tests for internal/storage: URL parsing, backends, shared conformance suite (closes #66)
clawbot
2026-09-22 00:58:27 +02:00
-
6fcd8e1668
Stamp Docker image version from the host; flush profiles on error exit (closes #75)
clawbot
2026-09-21 22:01:05 +02:00
-
aab6a87f8c
Reconcile the schema/migration docs with the code (closes #68)
clawbot
2026-09-21 21:58:37 +02:00
-
c355ef4d25
Report a prune count that could not be read as unknown, not 0 (closes #96)
clawbot
2026-09-21 21:41:57 +02:00
-
5927e1aa3d
Write file:// blobs atomically via temp file and rename (closes #130)
clawbot
2026-09-21 21:24:42 +02:00
-
9ca962969a
Map s3 not-found to storage.ErrNotFound in Get and Stat (closes #129)
clawbot
2026-09-21 21:07:35 +02:00
-
89ebfc78e2
Use one duration parser and fix the --older-than months example (closes #123)
clawbot
2026-09-21 20:58:30 +02:00
-
07ef3a1c78
Drop the lint-guard shell scanner, keep the Dockerfile.lint checks (closes #121)
clawbot
2026-09-21 20:41:33 +02:00
-
c423d13191
Hash the plaintext, not the encrypted bytes, in verify --deep (closes #131)
clawbot
2026-09-21 20:24:37 +02:00
-
75a10d3a22
Hash-verify the Go toolchain in the release workflow (closes #105)
clawbot
2026-09-21 19:48:52 +02:00
-
3d56dd7eb0
VACUUM snapshot metadata through the sqlite driver, not a CLI (closes #120)
clawbot
2026-09-21 19:41:28 +02:00
-
bdce350041
Delete dead code and stale fixtures, fix config set reindent (closes #70)
clawbot
2026-09-21 19:25:01 +02:00
-
753bc3ef60
Correct remote layout and privacy docs for hashed snapshot keys (closes #67)
clawbot
2026-09-21 19:24:44 +02:00