0baf83deb6
Sign or timestamp an unchanged tree's manifest in freshen (closes#190)
clawbot2026-10-14 00:42:44 +02:00
589f1a9580
Finish docs/FORMAT.md as a specification with a test vector (closes#84)
clawbot2026-10-14 00:35:00 +02:00
7542a68863
Refuse a file whose size changed between freshen's scan and hash (closes#207)
clawbot2026-10-14 00:01:34 +02:00
6540e5f285
Refuse an empty --require-signature or --sign-key (closes#205)
clawbot2026-10-14 00:01:30 +02:00
2ac238d767
Send fetch progress at most once per second (closes#206)
clawbot2026-10-14 00:01:21 +02:00
2cfea66d27
Refuse a path with a . segment (closes#208)
clawbot2026-10-14 00:01:12 +02:00
8ec3fd9a67
Refuse a signature made when its key was not valid (closes#209)
clawbot2026-10-14 00:01:02 +02:00
0057f6463b
Report only symlinks to regular files as extra files in check (closes#192)
clawbot2026-10-14 00:00:53 +02:00
7abe9a0ab1
Read a path or URL named help or h as an argument (closes#198)
clawbot2026-10-14 00:00:44 +02:00
9199444d11
Take the version from the git tag, not a constant (closes#80)
clawbot2026-10-14 00:00:35 +02:00
60dbcc03bc
Refuse to freshen a signed manifest without --sign-key (closes#191)
clawbot2026-10-14 00:00:27 +02:00
a79dd463f1
Hold runMu in internal/cli tests that log outside a CLI run (closes#210)
clawbot2026-10-14 00:00:14 +02:00
24496880c5
Refuse an expired signature whose key has expired too (closes#193)
clawbot2026-10-13 19:21:53 +02:00
61238e4071
Refuse a file entry with no hash when loading a manifest (closes#194)
clawbot2026-10-13 18:04:47 +02:00
f68cc284ac
Log failed files at error level so check -q shows them (closes#195)
clawbot2026-10-13 16:46:13 +02:00
e633d3a31b
Read only regular files in gen, freshen and check (closes#189)
clawbot2026-10-13 16:39:09 +02:00
c36f27068f
Describe the signature scheme in docs/FORMAT.md as the code builds it (closes#187)
clawbot2026-10-13 15:55:47 +02:00
8f7170b77f
Read options after the path or URL and refuse a second argument (closes#196)
clawbot2026-10-13 14:21:56 +02:00
0fbb3da0a5
Sign and verify manifests in Go with OpenPGP instead of running gpg (closes#181)
clawbot2026-10-08 09:42:45 +02:00
c23367c216
List a file given to Scanner.EnumeratePath by its name (closes#182)
clawbot2026-10-08 07:08:40 +02:00
a5f218e42a
List a directory named through a symlink in gen and freshen (closes#185)
clawbot2026-10-08 05:59:02 +02:00
6229c4eca0
Write gen DIR's manifest to DIR/index.mf (closes#178)
clawbot2026-10-08 03:08:40 +02:00
e35cd4a045
Resolve check and freshen paths against the manifest's directory (closes#177)
clawbot2026-10-07 17:28:38 +02:00
c0b099cc48
Make error message wording consistent (closes#165)
clawbot2026-10-07 17:25:41 +02:00
dce5e050c3
Link docs/FORMAT.md as the format specification in the README (closes#166)
clawbot2026-10-07 15:59:10 +02:00
4fe1ff2fe1
Refuse a path listed twice in a manifest (closes#170)
clawbot2026-10-07 15:28:57 +02:00
01ff67a38e
Refuse a manifest whose inner message version is not one (closes#169)
clawbot2026-10-07 15:25:47 +02:00
f663f4242d
Limit how much fetch and check read for a manifest or a file (closes#168)
clawbot2026-10-07 14:25:45 +02:00
0762a728d4
Compare --require-signature with the key that signed (closes#167)
clawbot2026-10-07 13:59:17 +02:00
2a174e3ba2
Raise Go to the latest release, update dependencies, use the standard library uuid, add a vulnerability check (closes#102)
clawbot2026-10-06 20:26:15 +02:00
2a270b40c5
Record file mode in the manifest, 0000 unless asked (closes#161)
clawbot2026-10-06 11:43:18 +02:00
ce66f7c1c1
Re-vendor the canonical files from sneak/prompts dd4027b (closes#159, closes#116)
clawbot2026-10-06 04:43:18 +02:00
343431dd30
Drop atime from the format spec and pin the file entry fields (closes#158)
clawbot2026-10-06 03:26:16 +02:00
99b3e0e202
fetch refuses a manifest whose paths differ only in letter case (closes#154)
clawbot2026-10-06 01:43:33 +02:00
ce024baaed
Move the CLI to urfave/cli v3 (closes#110)
clawbot2026-10-04 22:02:12 +02:00