Commit Graph

  • d08867ae56 Describe the signature scheme in docs/FORMAT.md as the code builds it (closes #187) issue-187-signature-scheme-doc sneak 2026-10-12 09:03:05 +00:00
  • 0fbb3da0a5 Sign and verify manifests in Go with OpenPGP instead of running gpg (closes #181) next clawbot 2026-10-08 09:42:45 +02:00
  • c23367c216 List a file given to Scanner.EnumeratePath by its name (closes #182) clawbot 2026-10-08 07:08:40 +02:00
  • a5f218e42a List a directory named through a symlink in gen and freshen (closes #185) clawbot 2026-10-08 05:59:02 +02:00
  • 6229c4eca0 Write gen DIR's manifest to DIR/index.mf (closes #178) clawbot 2026-10-08 03:08:40 +02:00
  • e35cd4a045 Resolve check and freshen paths against the manifest's directory (closes #177) clawbot 2026-10-07 17:28:38 +02:00
  • c0b099cc48 Make error message wording consistent (closes #165) clawbot 2026-10-07 17:25:41 +02:00
  • dce5e050c3 Link docs/FORMAT.md as the format specification in the README (closes #166) clawbot 2026-10-07 15:59:10 +02:00
  • 4fe1ff2fe1 Refuse a path listed twice in a manifest (closes #170) clawbot 2026-10-07 15:28:57 +02:00
  • 01ff67a38e Refuse a manifest whose inner message version is not one (closes #169) clawbot 2026-10-07 15:25:47 +02:00
  • f663f4242d Limit how much fetch and check read for a manifest or a file (closes #168) clawbot 2026-10-07 14:25:45 +02:00
  • 0762a728d4 Compare --require-signature with the key that signed (closes #167) clawbot 2026-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) clawbot 2026-10-06 20:26:15 +02:00
  • 2a270b40c5 Record file mode in the manifest, 0000 unless asked (closes #161) clawbot 2026-10-06 11:43:18 +02:00
  • ce66f7c1c1 Re-vendor the canonical files from sneak/prompts dd4027b (closes #159, closes #116) clawbot 2026-10-06 04:43:18 +02:00
  • 343431dd30 Drop atime from the format spec and pin the file entry fields (closes #158) clawbot 2026-10-06 03:26:16 +02:00
  • 99b3e0e202 fetch refuses a manifest whose paths differ only in letter case (closes #154) clawbot 2026-10-06 01:43:33 +02:00
  • ce024baaed Move the CLI to urfave/cli v3 (closes #110) clawbot 2026-10-04 22:02:12 +02:00
  • ab72692439 Pin the remaining developer tool installs (closes #68) clawbot 2026-10-04 20:48:51 +02:00
  • 9bb0ab3a03 fetch refuses a manifest that lists another file's temp name (closes #151) clawbot 2026-10-04 20:02:17 +02:00
  • d3394bd2a2 Makefile: thin shims only, add make build (closes #73) clawbot 2026-10-04 18:38:13 +02:00
  • a3e37d1ab8 fetch: destination directory, skip files already present, save the manifest, require a signer (closes #101) clawbot 2026-10-04 18:31:51 +02:00
  • acff23d92b Check Go formatting with gofumpt, as make fmt writes it (closes #70) clawbot 2026-10-04 17:54:50 +02:00
  • 8fe0244291 check always warns about files the manifest does not list (closes #103) clawbot 2026-10-04 17:48:51 +02:00
  • 400a2f8f63 Move FORMAT.md to docs/ and contrib/ to bin/, fix bash script style (closes #74) clawbot 2026-10-04 17:09:20 +02:00
  • ba3d24ca42 End-to-end tests for freshen and fetch (closes #66) clawbot 2026-10-04 17:02:22 +02:00
  • 11041330a7 Move internal/log from apex/log to log/slog (closes #77) clawbot 2026-10-04 16:31:54 +02:00
  • 5c7ef94799 Set go_package to the sneak.berlin/go/mfer module path (closes #79) clawbot 2026-10-04 16:02:21 +02:00
  • 82b9434444 fetch: client timeout, retry with backoff, url.JoinPath (closes #63) clawbot 2026-10-04 15:48:55 +02:00
  • 6a2307a82b check waits for its progress output before the summary (closes #140) clawbot 2026-10-04 15:31:57 +02:00
  • 4bf87d1ccf AddFileWithHash rejects hashes that are not multihashes (closes #129) clawbot 2026-10-04 14:48:49 +02:00
  • e412d20c20 Default the manifest to index.mf and keep it out of its own listing (closes #100) clawbot 2026-10-04 13:48:52 +02:00
  • 0501568203 Never regenerate mf.pb.go during checks; fail when it is stale (closes #71) clawbot 2026-10-04 13:31:57 +02:00
  • 0a9963002c NewChecker takes CheckerOptions instead of positional arguments (closes #78) clawbot 2026-10-04 12:19:31 +02:00
  • 76116005c8 Reject manifests whose file entries decode far larger than their bytes (closes #123) clawbot 2026-10-04 12:02:27 +02:00
  • 7088857692 Count -v once and document -v -v for debug output (closes #125) clawbot 2026-10-04 11:48:52 +02:00
  • 588c1bae74 Give the image CA certificates so fetch works over HTTPS (closes #131) clawbot 2026-10-04 10:31:54 +02:00
  • 114ba0a29f Disable the deprecated gomodguard linter (closes #116) issue-116-gomodguard sneak 2026-10-04 08:06:40 +00:00
  • 64eb5cbd40 Scanner status tests no longer depend on a 100 ms timer (closes #124) clawbot 2026-10-04 09:48:51 +02:00
  • 45eac1f6f8 Run all linting in Docker via the Dockerfile lint stage (closes #90) clawbot 2026-10-04 09:31:54 +02:00
  • b91e92b070 Build a static binary so the scratch image runs (closes #126) clawbot 2026-10-04 08:48:52 +02:00
  • a2732cf8da Add the required README sections (closes #75) clawbot 2026-10-04 06:32:07 +02:00
  • a789eb3083 Give -v to verbose, move --version to -V (closes #64) clawbot 2026-10-04 06:02:24 +02:00
  • d00982b329 Fuzz NewManifestFromReader and cap the zstd decoder (closes #65) clawbot 2026-10-04 05:31:51 +02:00
  • 51f69c960d Enforce real timeouts on gpg subprocess calls (closes #62) clawbot 2026-10-04 04:31:53 +02:00
  • 1adad7d3bc Remove TODO.md; track open work in the issues (closes #76) clawbot 2026-10-04 03:32:09 +02:00
  • c31796998f Pin CLI error messages by driving their real call sites (closes #87) clawbot 2026-10-03 18:24:30 +02:00
  • a3749e9e9b cibuild: build with --no-cache like script/docker (closes #89) clawbot 2026-10-03 17:41:55 +02:00
  • fa97c4519c Never write fetch's temp file into an existing file (closes #115) clawbot 2026-10-03 16:58:35 +02:00
  • 7e601929c8 Refuse fetch writes through a symlink in the destination (closes #86) clawbot 2026-10-03 16:08:09 +02:00
  • c3b5fe651a Stamp the tag or short commit in a plain docker build (closes #112) clawbot 2026-10-02 08:53:34 +02:00
  • 0deacfc7ed Validate manifest entry paths on deserialize (closes #61) clawbot 2026-09-22 00:47:26 +02:00
  • 7de4d6ec1c Rewrite script/test to the canonical race-enabled pattern (closes #67) clawbot 2026-09-21 15:17:50 +02:00
  • 6de3f1d714 Add .editorconfig, broaden .gitignore, drop dead Drone refs (closes #72) clawbot 2026-09-21 09:56:15 +02:00
  • 5683d0f4ff Configure prettier and make fmt-check cover markdown (closes #69) clawbot 2026-08-10 16:16:42 +02:00
  • de476708e9 Update golangci-lint to v2.12.2 with canonical config (closes #60) clawbot 2026-08-10 16:06:12 +02:00
  • 6d19de74e7 scripts-to-rule-them-all (#58) main sneak 2026-07-07 02:13:35 +02:00
  • 688ebd90a4 TODO (#57) sneak 2026-07-06 21:19:31 +02:00
  • 5dc4433477 move to standardized repo policies (#56) sneak 2026-06-28 09:35:33 +02:00
  • 3be8064865 Merge branch 'main' into next sneak 2026-06-28 09:35:17 +02:00
  • 958a5f8fc4 move to standardized repo policies sneak 2026-06-28 09:30:11 +02:00
  • 9ce16a83ad Add TODO section to README with 1.0 roadmap, remove TODO.md (#54) 2026-04-07 00:43:56 +02:00
  • 01124c10d9 Add Gitea Actions CI workflow (#53) clawbot 2026-03-20 06:57:27 +01:00
  • 6ba32f5b35 Add REPO_POLICIES.md, rename CLAUDE.md to AGENTS.md, deduplicate (#51) clawbotandclawbot 2026-03-17 05:07:43 +01:00
  • e62c709d42 Remove committed .index.mf and add to .gitignore (#52) clawbotanduser 2026-03-17 05:06:37 +01:00
  • 89903fa1cd Split Dockerfile: pre-built golangci-lint stage for faster CI (#45) clawbotandclawbot 2026-03-15 18:56:25 +01:00
  • b3d10106e1 next (#44) sneak 2026-03-15 18:49:19 +01:00
  • 9712c10fe3 Merge main into next: resolve conflicts, rewrite Dockerfile for Go 1.23 clawbot 2026-03-14 15:18:51 -07:00
  • 43916c7746 1.0 quality polish — code review, tests, bug fixes, documentation (#32) clawbot 2026-03-01 23:58:37 +01:00
  • bbab6e73f4 Add deterministic file ordering in Builder.Build() (closes #23) (#28) sneak 2026-02-20 12:15:13 +01:00
  • 615eecff79 Merge branch 'next' into fix/issue-23 sneak 2026-02-20 12:14:53 +01:00
  • 9b67de016d chore: remove committed vendor/modcache archives (#35) clawbot 2026-02-20 12:14:29 +01:00
  • 3c779465e2 remove time-hard hash iteration from seed UUID derivation clawbot 2026-02-20 03:06:33 -08:00
  • 5572a4901f reduce seed iterations to 150M (~5-10s on modern hardware) clawbot 2026-02-08 16:36:26 -08:00
  • 2adc275278 feat: add --seed flag for deterministic manifest UUID clawbot 2026-02-08 16:32:02 -08:00
  • 6d9c07510a Add deterministic file ordering in Builder.Build() clawbot 2026-02-08 16:09:16 -08:00
  • 6d1bdbb00f chore: remove stale .drone.yml (#37) clawbotanduser 2026-02-20 12:00:49 +01:00
  • ae70cf6fb5 Fix FindExtraFiles reporting manifest and dotfiles as extra (closes #16) (#21) sneak 2026-02-20 11:38:52 +01:00
  • 5099b6951b Fix IsHiddenPath treating current directory as hidden (closes #14) (#19) sneak 2026-02-20 11:37:23 +01:00
  • 1f7ee256ec fix: update go directive from 1.17 to 1.22 (fixes #33) (#34) sneak 2026-02-20 11:35:44 +01:00
  • 28c6fbd220 fix: update go directive from 1.17 to 1.22 (fixes #33) clawbot 2026-02-20 02:25:21 -08:00
  • 7b61bdd62b fix: handle errcheck warnings in gpg.go and gpg_test.go clawbot 2026-02-19 23:41:14 -08:00
  • 8c7eef6240 fix: handle errcheck warnings in gpg.go and gpg_test.go, fix gofmt clawbot 2026-02-19 23:40:50 -08:00
  • 97dbe47c32 fix: FindExtraFiles skips dotfiles and manifest files to avoid false positives clawbot 2026-02-08 12:06:08 -08:00
  • f6478858d7 fix: IsHiddenPath returns false for "." and "/" (current dir/root are not hidden) clawbot 2026-02-08 12:03:54 -08:00
  • 5aae442156 add links to metalink format (#7) sneak 2026-02-09 02:15:58 +01:00
  • 1f12d10cb7 Fix errors.Is with errors.New() never matching in checker (closes #12) (#17) 2026-02-09 02:15:08 +01:00
  • 7f25970dd3 Fix URL encoding for file paths in fetch command (closes #13) (#18) 2026-02-09 02:14:20 +01:00
  • 70af055d4e Fix newTimestampFromTime panic on extreme dates (closes #15) (#20) 2026-02-09 02:10:21 +01:00
  • 04b05e01e8 Consolidate scanner/checker — delete internal/scanner/ and internal/checker/ (closes #22) (#27) 2026-02-09 02:09:01 +01:00
  • 7144617d0e Add decompression size limit in deserializeInner() (closes #24) (#29) 2026-02-09 01:45:55 +01:00
  • 2efffd9da8 Specify and enforce path invariants (closes #26) (#31) 2026-02-09 01:45:29 +01:00
  • ebaf2a65ca Fix AddFile to verify actual bytes read matches declared size (closes #25) (#30) clawbotandclawbot 2026-02-09 01:35:07 +01:00
  • 4b80c0067b docs: replace TODO.md with design questions and implementation plan clawbot 2026-02-08 18:40:31 +01:00
  • 5ab092098b progress sneak 2026-02-08 09:25:58 -08:00
  • 4a2060087d Add GPG signature verification on manifest load sneak 2025-12-18 05:28:35 -08:00
  • 213364bab5 Add UUID to manifest and verify integrity before decompression sneak 2025-12-18 02:20:51 -08:00
  • 778999a285 Add GPG signing support for manifest generation sneak 2025-12-18 02:12:54 -08:00
  • 308c583d57 Remove codebase structure section from README sneak 2025-12-18 01:38:13 -08:00
  • 019fe41c3d Update .gitignore for new bin/ build directory sneak 2025-12-18 01:30:50 -08:00