2026-04-21 - 2026-10-21

Overview

85 Active Pull Requests
95 Active Issues
Excluding merges, 1 author has pushed 2 commits to main and 85 commits to all branches. On main, 17 files have changed and there have been 818 additions and 93 deletions.

4 Releases published by 1 user

Published v1.0.0-rc4 2026-10-21 13:15:11 +02:00

Published v1.0.0-rc3 2026-10-19 20:55:25 +02:00

Published v1.0.0-rc2 2026-10-16 01:01:52 +02:00

Published v1.0.0-rc1 2026-10-14 01:59:33 +02:00

84 Pull requests merged by 2 users

Merged #238 Export the loaded manifest type as Manifest (closes #236) 2026-10-21 13:12:21 +02:00

Merged #237 Drop mimeType and ctime from the manifest format (closes #235) 2026-10-19 20:52:01 +02:00

Merged #234 Never list index.mf at the top of the tree in gen and freshen (closes #233) 2026-10-16 00:58:57 +02:00

Merged #232 Never report index.mf at the top of the base as unlisted in check (closes #229) 2026-10-16 00:42:24 +02:00

Merged #231 Describe releases as SemVer git tags in the README (closes #226) 2026-10-15 22:42:35 +02:00

Merged #230 Refuse a manifest entry whose mode is above 0777 on load (closes #225) 2026-10-15 22:02:55 +02:00

Merged #227 Load the manifest check downloads from memory, not a temp file (closes #223) 2026-10-15 21:59:13 +02:00

Merged #228 Require a SHA-256 hash in every manifest entry (closes #224) 2026-10-15 21:25:28 +02:00

Merged #222 Return the context's error when it ends during a fetch request (closes #221) 2026-10-14 01:55:42 +02:00

Merged #220 Sign or timestamp an unchanged tree's manifest in freshen (closes #190) 2026-10-14 00:42:47 +02:00

Merged #217 Finish docs/FORMAT.md as a specification with a test vector (closes #84) 2026-10-14 00:35:01 +02:00

Merged #218 Refuse a file whose size changed between freshen's scan and hash (closes #207) 2026-10-14 00:01:36 +02:00

Merged #216 Refuse an empty --require-signature or --sign-key (closes #205) 2026-10-14 00:01:32 +02:00

Merged #215 Send fetch progress at most once per second (closes #206) 2026-10-14 00:01:23 +02:00

Merged #214 Refuse a path with a . segment (closes #208) 2026-10-14 00:01:13 +02:00

Merged #213 Refuse a signature made when its key was not valid (closes #209) 2026-10-14 00:01:03 +02:00

Merged #212 Report only symlinks to regular files as extra files in check (closes #192) 2026-10-14 00:00:54 +02:00

Merged #211 Read a path or URL named help or h as an argument (closes #198) 2026-10-14 00:00:46 +02:00

Merged #204 Take the version from the git tag, not a constant (closes #80) 2026-10-14 00:00:37 +02:00

Merged #203 Refuse to freshen a signed manifest without --sign-key (closes #191) 2026-10-14 00:00:28 +02:00

Merged #219 Hold runMu in internal/cli tests that log outside a CLI run (closes #210) 2026-10-14 00:00:14 +02:00

Merged #201 Refuse an expired signature whose key has expired too (closes #193) 2026-10-13 19:21:53 +02:00

Merged #202 Refuse a file entry with no hash when loading a manifest (closes #194) 2026-10-13 18:04:48 +02:00

Merged #200 Log failed files at error level so check -q shows them (closes #195) 2026-10-13 16:46:14 +02:00

Merged #199 Read only regular files in gen, freshen and check (closes #189) 2026-10-13 16:39:10 +02:00

Merged #188 Describe the signature scheme in docs/FORMAT.md as the code builds it (closes #187) 2026-10-13 15:55:47 +02:00

Merged #197 Read options after the path or URL and refuse a second argument (closes #196) 2026-10-13 14:21:57 +02:00

Merged #183 Sign and verify manifests in Go with OpenPGP instead of running gpg (closes #181) 2026-10-08 09:42:47 +02:00

Merged #184 List a file given to Scanner.EnumeratePath by its name (closes #182) 2026-10-08 07:08:42 +02:00

Merged #186 List a directory named through a symlink in gen and freshen (closes #185) 2026-10-08 05:59:03 +02:00

Merged #180 Write gen DIR's manifest to DIR/index.mf (closes #178) 2026-10-08 03:08:41 +02:00

Merged #179 Resolve check and freshen paths against the manifest's directory (closes #177) 2026-10-07 17:28:39 +02:00

Merged #176 Make error message wording consistent (closes #165) 2026-10-07 17:25:42 +02:00

Merged #175 Link docs/FORMAT.md as the format specification in the README (closes #166) 2026-10-07 15:59:11 +02:00

Merged #174 Refuse a path listed twice in a manifest (closes #170) 2026-10-07 15:28:57 +02:00

Merged #173 Refuse a manifest whose inner message version is not one (closes #169) 2026-10-07 15:25:47 +02:00

Merged #172 Limit how much fetch and check read for a manifest or a file (closes #168) 2026-10-07 14:25:46 +02:00

Merged #171 Compare --require-signature with the key that signed (closes #167) 2026-10-07 13:59:18 +02:00

Merged #164 Raise Go to the latest release, update dependencies, use the standard library uuid, add a vulnerability check (closes #102) 2026-10-06 20:26:16 +02:00

Merged #163 Record file mode in the manifest, 0000 unless asked (closes #161) 2026-10-06 11:43:19 +02:00

Merged #162 Re-vendor the canonical files from sneak/prompts dd4027b (closes #159, closes #116) 2026-10-06 04:43:18 +02:00

Merged #160 Drop atime from the format spec and pin the file entry fields (closes #158) 2026-10-06 03:26:17 +02:00

Merged #157 fetch refuses a manifest whose paths differ only in letter case (closes #154) 2026-10-06 01:43:33 +02:00

Merged #156 Move the CLI to urfave/cli v3 (closes #110) 2026-10-04 22:02:13 +02:00

Merged #155 Pin the remaining developer tool installs (closes #68) 2026-10-04 20:48:52 +02:00

Merged #153 fetch refuses a manifest that lists another file's temp name (closes #151) 2026-10-04 20:02:19 +02:00

Merged #152 Makefile: thin shims only, add make build (closes #73) 2026-10-04 18:38:14 +02:00

Merged #150 fetch: destination directory, skip files already present, save the manifest, require a signer (closes #101) 2026-10-04 18:31:52 +02:00

Merged #149 Check Go formatting with gofumpt, as make fmt writes it (closes #70) 2026-10-04 17:54:52 +02:00

Merged #146 check always warns about files the manifest does not list (closes #103) 2026-10-04 17:48:52 +02:00

Merged #148 Move FORMAT.md to docs/ and contrib/ to bin/, fix bash script style (closes #74) 2026-10-04 17:09:21 +02:00

Merged #145 End-to-end tests for freshen and fetch (closes #66) 2026-10-04 17:02:23 +02:00

Merged #141 Move internal/log from apex/log to log/slog (closes #77) 2026-10-04 16:31:55 +02:00

Merged #144 Set go_package to the sneak.berlin/go/mfer module path (closes #79) 2026-10-04 16:02:21 +02:00

Merged #142 fetch: client timeout, retry with backoff, url.JoinPath (closes #63) 2026-10-04 15:48:56 +02:00

Merged #143 check waits for its progress output before the summary (closes #140) 2026-10-04 15:31:58 +02:00

Merged #139 AddFileWithHash rejects hashes that are not multihashes (closes #129) 2026-10-04 14:48:50 +02:00

Merged #136 Default the manifest to index.mf and keep it out of its own listing (closes #100) 2026-10-04 13:48:52 +02:00

Merged #138 Never regenerate mf.pb.go during checks; fail when it is stale (closes #71) 2026-10-04 13:31:58 +02:00

Merged #137 NewChecker takes CheckerOptions instead of positional arguments (closes #78) 2026-10-04 12:19:32 +02:00

Merged #128 Reject manifests whose file entries decode far larger than their bytes (closes #123) 2026-10-04 12:02:28 +02:00

Merged #134 Count -v once and document -v -v for debug output (closes #125) 2026-10-04 11:48:53 +02:00

Merged #133 Give the image CA certificates so fetch works over HTTPS (closes #131) 2026-10-04 10:31:55 +02:00

Merged #132 Scanner status tests no longer depend on a 100 ms timer (closes #124) 2026-10-04 09:48:51 +02:00

Merged #127 Run all linting in Docker via the Dockerfile lint stage (closes #90) 2026-10-04 09:31:55 +02:00

Merged #130 Build a static binary so the scratch image runs (closes #126) 2026-10-04 08:48:53 +02:00

Merged #105 Add the required README sections (closes #75) 2026-10-04 06:32:08 +02:00

Merged #107 Give -v to verbose, move --version to -V (closes #64) 2026-10-04 06:02:25 +02:00

Merged #120 Fuzz NewManifestFromReader and cap the zstd decoder (closes #65) 2026-10-04 05:31:51 +02:00

Merged #119 Enforce real timeouts on gpg subprocess calls (closes #62) 2026-10-04 04:31:54 +02:00

Merged #122 Remove TODO.md; track open work in the issues (closes #76) 2026-10-04 03:32:10 +02:00

Merged #117 Pin CLI error messages by driving their real call sites (closes #87) 2026-10-03 18:24:31 +02:00

Merged #106 cibuild: build with --no-cache like script/docker (closes #89) 2026-10-03 17:41:55 +02:00

Merged #118 Never write fetch's temp file into an existing file (closes #115) 2026-10-03 16:58:36 +02:00

Merged #114 Refuse fetch writes through a symlink in the destination (closes #86) 2026-10-03 16:08:10 +02:00

Merged #113 Stamp the tag or short commit in a plain docker build (closes #112) 2026-10-02 08:53:35 +02:00

Merged #108 Validate manifest entry paths on deserialize (closes #61) 2026-09-22 00:47:26 +02:00

Merged #109 Rewrite script/test to the canonical race-enabled pattern (closes #67) 2026-09-21 15:17:51 +02:00

Merged #104 Add .editorconfig, broaden .gitignore, drop dead Drone refs (closes #72) 2026-09-21 09:56:16 +02:00

Merged #88 Configure prettier and make fmt-check cover markdown (closes #69) 2026-08-10 16:16:43 +02:00

Merged #59 Update golangci-lint to v2.12.2 with canonical config (closes #60) 2026-08-10 16:06:12 +02:00

Merged #58 scripts-to-rule-them-all 2026-07-07 02:13:35 +02:00

Merged #57 TODO 2026-07-06 21:19:31 +02:00

Merged #56 move to standardized repo policies 2026-06-28 09:35:33 +02:00

1 Pull request proposed by 1 user

Proposed #92 1.0.0 milestone 2026-08-10 16:06:30 +02:00

94 Issues closed from 1 user

Closed #236 Export the loaded manifest type as Manifest, or an interface in front of it? 2026-10-21 13:12:21 +02:00

Closed #147 DECISION: mfer does not import simplelog 2026-10-21 12:09:11 +02:00

Closed #235 Drop mimeType and ctime from the format: 1.0 writes neither 2026-10-19 20:52:02 +02:00

Closed #83 DECISION: public API surface and determinism defaults for 1.0 2026-10-19 03:57:06 +02:00

Closed #81 DECISION: wire format questions blocking the 1.0 format freeze 2026-10-19 03:57:05 +02:00

Closed #233 gen and freshen list an index.mf at the top of the tree when writing the manifest elsewhere, and fetch then refuses the manifest 2026-10-16 00:58:57 +02:00

Closed #229 check given a URL reports the index.mf that fetch saved as an extra file, so a fetched tree fails --no-extra-files 2026-10-16 00:42:25 +02:00

Closed #226 README says the project is pre-1.0 with no versioned release, in the tree v1.0.0 is tagged from 2026-10-15 22:42:36 +02:00

Closed #225 A manifest recording a mode above 0777 loads; check then fails every such file as MODE_MISMATCH 2026-10-15 22:02:55 +02:00

Closed #223 mfer check given a URL fails in the Docker image: the scratch image has no /tmp and check writes the downloaded manifest to a temp file 2026-10-15 21:59:13 +02:00

Closed #224 An entry whose hashes hold no SHA-256 multihash loads, and check and fetch then report the intact file as a hash mismatch 2026-10-15 21:25:28 +02:00

Closed #221 next is intermittently red: TestGetStopsWaitingWhenCanceled gets the 503 instead of the deadline when a request outlasts it 2026-10-14 01:55:42 +02:00

Closed #190 freshen --sign-key leaves the manifest unsigned when no file changed 2026-10-14 00:42:47 +02:00

Closed #84 Make docs/FORMAT.md a complete, independently-implementable specification 2026-10-14 00:35:02 +02:00

Closed #207 freshen records a file's size from the scan with the hash of what it reads later, so a file that changes in between gets an entry check can never pass 2026-10-14 00:01:37 +02:00

Closed #205 An empty --require-signature or --sign-key value is taken as the flag not given, so check --require-signature "" passes an unsigned manifest 2026-10-14 00:01:32 +02:00

Closed #206 fetch prints a progress line for every 32 KiB it downloads 2026-10-14 00:01:23 +02:00

Closed #208 A path with a . segment loads, so check reports the file it names as an extra file 2026-10-14 00:01:14 +02:00

Closed #209 A signature made after its key expired, or before the key was made, is accepted 2026-10-14 00:01:04 +02:00

Closed #192 check reports symlinks gen never lists as extra files, so --no-extra-files cannot pass on a tree with a directory symlink 2026-10-14 00:00:55 +02:00

Closed #198 A path named help or h runs the help instead of the command, so check help --require-signature FPR passes 2026-10-14 00:00:46 +02:00

Closed #80 Release mechanics for v1.0.0: version single-sourcing and tag 2026-10-14 00:00:38 +02:00

Closed #191 freshen rewrites a signed manifest unsigned when --sign-key is not given 2026-10-14 00:00:29 +02:00

Closed #210 next is red: TestCheckQuietShowsFailedFiles catches log lines from tests running outside runMu 2026-10-14 00:00:15 +02:00

Closed #193 An expired signature is accepted when its signing key has expired too 2026-10-13 19:21:53 +02:00

Closed #194 Loading accepts a file entry with no hashes 2026-10-13 18:04:48 +02:00

Closed #195 check -q hides which files failed 2026-10-13 16:46:14 +02:00

Closed #189 gen and freshen hang forever on a named pipe inside the tree 2026-10-13 16:39:10 +02:00

Closed #187 Describe the signature scheme in docs/FORMAT.md as the code builds it 2026-10-13 15:55:48 +02:00

Closed #196 Options after the path or URL are ignored, so check DIR --require-signature FPR passes an unsigned manifest 2026-10-13 14:21:57 +02:00

Closed #181 Sign and verify manifests in Go with OpenPGP instead of running gpg 2026-10-08 09:42:48 +02:00

Closed #182 Scanner.EnumeratePath given a file lists it under an empty path 2026-10-08 07:08:42 +02:00

Closed #185 gen and freshen list no files when the directory is reached through a symlink 2026-10-08 05:59:04 +02:00

Closed #178 DECISION: where gen DIR writes its manifest and how it lists the files 2026-10-08 03:08:41 +02:00

Closed #82 DECISION: signature scheme questions blocking 1.0 2026-10-07 23:20:21 +02:00

Closed #177 check and freshen resolve a manifest's paths against the current directory, not the manifest's 2026-10-07 17:28:39 +02:00

Closed #165 Make error message wording consistent across mfer/ and internal/cli/ 2026-10-07 17:25:42 +02:00

Closed #166 README links mf.proto as the format specification instead of docs/FORMAT.md 2026-10-07 15:59:11 +02:00

Closed #170 A manifest can list the same path twice 2026-10-07 15:28:58 +02:00

Closed #169 Loading a manifest ignores the inner message version 2026-10-07 15:25:48 +02:00

Closed #168 Nothing limits how much fetch and check read from a server for a manifest or a file 2026-10-07 14:25:46 +02:00

Closed #167 --require-signature accepts a manifest signed by a key other than the required one 2026-10-07 13:59:18 +02:00

Closed #102 Raise Go to the latest release, update dependencies, use the standard library UUID, add a vulnerability check 2026-10-06 20:26:16 +02:00

Closed #161 Record file mode in the manifest: 0000 by default, real permissions on request 2026-10-06 11:43:20 +02:00

Closed #116 golangci-lint warns that gomodguard is deprecated in favour of gomodguard_v2 2026-10-06 04:43:19 +02:00

Closed #159 Re-vendor the canonical files from sneak/prompts at dd4027b 2026-10-06 04:43:19 +02:00

Closed #158 Drop atime from the format (ruling on question 3 of the wire format decisions) 2026-10-06 03:26:17 +02:00

Closed #154 fetch: two listed files whose names differ only in letter case replace each other on a case-insensitive filesystem 2026-10-06 01:43:33 +02:00

Closed #110 Move the CLI from urfave/cli v2 to v3 2026-10-04 22:02:14 +02:00

Closed #68 Pin every developer tool install by hash; make local lint match CI 2026-10-04 20:48:52 +02:00

Closed #151 fetch: a listed file at another listed file's temp name is deleted, and fetch still exits 0 2026-10-04 20:02:19 +02:00

Closed #73 Clean up the Makefile: add make build, remove superseded targets 2026-10-04 18:38:14 +02:00

Closed #101 fetch: destination directory, skip files already present, save the manifest, require a signer 2026-10-04 18:31:52 +02:00

Closed #121 Decide whether AGENTS.md may stay in the repo root 2026-10-04 18:02:38 +02:00

Closed #70 Verify Go formatting with gofumpt, not gofmt, so fmt and check agree 2026-10-04 17:54:52 +02:00

Closed #103 check: always warn about files on disk that are not in the manifest, dotfiles included 2026-10-04 17:48:52 +02:00

Closed #74 Repo root hygiene: move FORMAT.md to docs/, contrib/ to bin/, fix bash script style 2026-10-04 17:09:21 +02:00

Closed #66 Add real end-to-end tests for the freshen and fetch commands 2026-10-04 17:02:23 +02:00

Closed #77 Migrate internal/log from apex/log to log/slog 2026-10-04 16:31:55 +02:00

Closed #79 DECISION: canonical Go module path for 1.0 2026-10-04 16:02:21 +02:00

Closed #63 Harden fetch: client timeout, retry with backoff, url.JoinPath 2026-10-04 15:48:56 +02:00

Closed #140 mfer check exits without waiting for its progress output 2026-10-04 15:31:58 +02:00

Closed #129 Builder.AddFileWithHash accepts a hash that is not a multihash 2026-10-04 14:48:50 +02:00

Closed #100 Default manifest filename is index.mf; the scanner excludes the output file (sneak: option A) 2026-10-04 13:48:52 +02:00

Closed #71 make check must not modify tracked files (ensure_pb regenerates mf.pb.go on mtime) 2026-10-04 13:31:59 +02:00

Closed #78 Change NewChecker to take a Params struct instead of positional arguments 2026-10-04 12:19:32 +02:00

Closed #123 Decoding file entries can allocate about 60 times MaxDecompressedSize 2026-10-04 12:02:28 +02:00

Closed #125 -vv is refused although the -v help text promises it 2026-10-04 11:48:54 +02:00

Closed #131 The Docker image has no CA certificates, so fetch over HTTPS fails 2026-10-04 10:31:56 +02:00

Closed #124 Scanner status tests fail under host load on a 100 ms timer 2026-10-04 09:48:52 +02:00

Closed #90 Run all linting in Docker via Dockerfile.lint + script/lint 2026-10-04 09:31:55 +02:00

Closed #126 The Docker image cannot run: its binary is dynamically linked in a scratch image 2026-10-04 08:48:53 +02:00

Closed #75 Add the required README sections (Getting Started, Rationale, Design, Author) 2026-10-04 06:32:08 +02:00

Closed #64 Fix -v flag collision between --verbose and --version 2026-10-04 06:02:25 +02:00

Closed #65 Add fuzz coverage for NewManifestFromReader 2026-10-04 05:31:52 +02:00

Closed #62 Enforce real timeouts on gpg subprocess calls 2026-10-04 04:31:55 +02:00

Closed #76 Rewrite the stale TODO tracking in README.md and TODO.md to match reality 2026-10-04 03:32:10 +02:00

Closed #87 Pin CLI error messages through their real call sites, not reconstructed format strings 2026-10-03 18:24:31 +02:00

Closed #89 script/cibuild reports a green it did not earn: make check is served from Docker cache 2026-10-03 17:41:56 +02:00

Closed #115 fetch: a hard link at the temp file's name lets fetch overwrite a file outside the destination 2026-10-03 16:58:36 +02:00

Closed #86 fetch: sanitizePath is purely lexical and does not prevent symlink escape 2026-10-03 16:08:10 +02:00

Closed #85 Stale branch cleanup: three unmerged branches, none worth keeping as-is 2026-10-03 15:19:02 +02:00

Closed #93 Gitea Actions runner is not picking up jobs: every run since 2026-08-09 is stuck "Waiting to run" 2026-10-03 14:27:25 +02:00

Closed #112 docker build . stamps dev, not the git tag or short commit 2026-10-02 08:53:35 +02:00

Closed #111 Run every build, test and lint step in the Dockerfiles at nice -n 19 2026-09-29 13:12:14 +02:00

Closed #61 Validate manifest paths on read, not only on write (path traversal in Checker) 2026-09-22 00:47:27 +02:00

Closed #67 Rewrite script/test to the canonical pattern (30s timeout, -race -cover, conditional verbose rerun) 2026-09-21 15:17:51 +02:00

Closed #72 Add .editorconfig and make .gitignore comprehensive 2026-09-21 09:56:16 +02:00

Closed #98 script/cibuild header comment claims the Dockerfile runs make check; it does not 2026-09-05 11:32:53 +02:00

Closed #94 AGENTS.md does not document the next-branch workflow, so every agent defaults to branching off main 2026-09-05 11:32:52 +02:00

Closed #97 script/docker and make docker still bare-build, so they can serve cached checks 2026-09-05 11:32:52 +02:00

Closed #91 TOP PRIORITY: consolidate all open PRs onto one next branch, one PR 2026-09-03 15:14:30 +02:00

Closed #69 Add .prettierrc/.prettierignore, stop reformatting REPO_POLICIES.md, and make fmt-check cover markdown 2026-08-10 16:16:43 +02:00

Closed #60 Adopt golangci-lint v2.12.2 and the canonical .golangci.yml 2026-08-10 16:06:12 +02:00

95 Issues created by 1 user

Opened #60 Adopt golangci-lint v2.12.2 and the canonical .golangci.yml 2026-08-09 03:36:42 +02:00

Opened #61 Validate manifest paths on read, not only on write (path traversal in Checker) 2026-08-09 03:38:08 +02:00

Opened #62 Enforce real timeouts on gpg subprocess calls 2026-08-09 03:38:22 +02:00

Opened #63 Harden fetch: client timeout, retry with backoff, url.JoinPath 2026-08-09 03:38:42 +02:00

Opened #64 Fix -v flag collision between --verbose and --version 2026-08-09 03:38:52 +02:00

Opened #65 Add fuzz coverage for NewManifestFromReader 2026-08-09 03:39:10 +02:00

Opened #66 Add real end-to-end tests for the freshen and fetch commands 2026-08-09 03:39:26 +02:00

Opened #67 Rewrite script/test to the canonical pattern (30s timeout, -race -cover, conditional verbose rerun) 2026-08-09 03:40:00 +02:00

Opened #68 Pin every developer tool install by hash; make local lint match CI 2026-08-09 03:40:18 +02:00

Opened #69 Add .prettierrc/.prettierignore, stop reformatting REPO_POLICIES.md, and make fmt-check cover markdown 2026-08-09 03:40:38 +02:00

Opened #70 Verify Go formatting with gofumpt, not gofmt, so fmt and check agree 2026-08-09 03:40:50 +02:00

Opened #71 make check must not modify tracked files (ensure_pb regenerates mf.pb.go on mtime) 2026-08-09 03:41:10 +02:00

Opened #72 Add .editorconfig and make .gitignore comprehensive 2026-08-09 03:41:25 +02:00

Opened #73 Clean up the Makefile: add make build, remove superseded targets 2026-08-09 03:41:47 +02:00

Opened #74 Repo root hygiene: move FORMAT.md to docs/, contrib/ to bin/, fix bash script style 2026-08-09 03:42:02 +02:00

Opened #75 Add the required README sections (Getting Started, Rationale, Design, Author) 2026-08-09 03:42:19 +02:00

Opened #76 Rewrite the stale TODO tracking in README.md and TODO.md to match reality 2026-08-09 03:42:37 +02:00

Opened #77 Migrate internal/log from apex/log to log/slog 2026-08-09 03:42:56 +02:00

Opened #78 Change NewChecker to take a Params struct instead of positional arguments 2026-08-09 03:43:07 +02:00

Opened #79 DECISION: canonical Go module path for 1.0 2026-08-09 03:43:25 +02:00

Opened #80 Release mechanics for v1.0.0: version single-sourcing and tag 2026-08-09 03:43:38 +02:00

Opened #81 DECISION: wire format questions blocking the 1.0 format freeze 2026-08-09 03:44:03 +02:00

Opened #82 DECISION: signature scheme questions blocking 1.0 2026-08-09 03:44:20 +02:00

Opened #83 DECISION: public API surface and determinism defaults for 1.0 2026-08-09 03:44:35 +02:00

Opened #84 Make docs/FORMAT.md a complete, independently-implementable specification 2026-08-09 03:44:51 +02:00

Opened #85 Stale branch cleanup: three unmerged branches, none worth keeping as-is 2026-08-09 03:45:49 +02:00

Opened #86 fetch: sanitizePath is purely lexical and does not prevent symlink escape 2026-08-09 04:16:00 +02:00

Opened #87 Pin CLI error messages through their real call sites, not reconstructed format strings 2026-08-09 04:32:43 +02:00

Opened #89 script/cibuild reports a green it did not earn: make check is served from Docker cache 2026-08-09 07:39:41 +02:00

Opened #90 Run all linting in Docker via Dockerfile.lint + script/lint 2026-08-10 13:14:46 +02:00

Opened #91 TOP PRIORITY: consolidate all open PRs onto one next branch, one PR 2026-08-10 14:30:53 +02:00

Opened #93 Gitea Actions runner is not picking up jobs: every run since 2026-08-09 is stuck "Waiting to run" 2026-08-10 16:08:19 +02:00

Opened #94 AGENTS.md does not document the next-branch workflow, so every agent defaults to branching off main 2026-09-03 15:14:15 +02:00

Opened #97 script/docker and make docker still bare-build, so they can serve cached checks 2026-09-04 03:37:26 +02:00

Opened #98 script/cibuild header comment claims the Dockerfile runs make check; it does not 2026-09-04 03:37:27 +02:00

Opened #99 Review toward 1.0: identify and file all next steps 2026-09-21 09:13:36 +02:00

Opened #100 Default manifest filename is index.mf; the scanner excludes the output file (sneak: option A) 2026-09-21 09:21:31 +02:00

Opened #101 fetch: destination directory, skip files already present, save the manifest, require a signer 2026-09-21 09:21:34 +02:00

Opened #102 Raise Go to the latest release, update dependencies, use the standard library UUID, add a vulnerability check 2026-09-21 09:21:37 +02:00

Opened #103 check: always warn about files on disk that are not in the manifest, dotfiles included 2026-09-21 09:21:40 +02:00

Opened #110 Move the CLI from urfave/cli v2 to v3 2026-09-22 00:31:15 +02:00

Opened #111 Run every build, test and lint step in the Dockerfiles at nice -n 19 2026-09-29 13:02:21 +02:00

Opened #112 docker build . stamps dev, not the git tag or short commit 2026-10-02 02:21:43 +02:00

Opened #115 fetch: a hard link at the temp file's name lets fetch overwrite a file outside the destination 2026-10-03 16:08:28 +02:00

Opened #116 golangci-lint warns that gomodguard is deprecated in favour of gomodguard_v2 2026-10-03 16:08:41 +02:00

Opened #121 Decide whether AGENTS.md may stay in the repo root 2026-10-04 01:45:28 +02:00

Opened #123 Decoding file entries can allocate about 60 times MaxDecompressedSize 2026-10-04 01:55:01 +02:00

Opened #124 Scanner status tests fail under host load on a 100 ms timer 2026-10-04 03:32:29 +02:00

Opened #125 -vv is refused although the -v help text promises it 2026-10-04 04:02:21 +02:00

Opened #126 The Docker image cannot run: its binary is dynamically linked in a scratch image 2026-10-04 05:47:13 +02:00

Opened #129 Builder.AddFileWithHash accepts a hash that is not a multihash 2026-10-04 06:32:37 +02:00

Opened #131 The Docker image has no CA certificates, so fetch over HTTPS fails 2026-10-04 07:32:15 +02:00

Opened #140 mfer check exits without waiting for its progress output 2026-10-04 14:11:22 +02:00

Opened #147 DECISION: mfer does not import simplelog 2026-10-04 16:32:10 +02:00

Opened #151 fetch: a listed file at another listed file's temp name is deleted, and fetch still exits 0 2026-10-04 18:03:18 +02:00

Opened #154 fetch: two listed files whose names differ only in letter case replace each other on a case-insensitive filesystem 2026-10-04 19:13:45 +02:00

Opened #158 Drop atime from the format (ruling on question 3 of the wire format decisions) 2026-10-06 01:19:37 +02:00

Opened #159 Re-vendor the canonical files from sneak/prompts at dd4027b 2026-10-06 01:29:52 +02:00

Opened #161 Record file mode in the manifest: 0000 by default, real permissions on request 2026-10-06 01:45:14 +02:00

Opened #165 Make error message wording consistent across mfer/ and internal/cli/ 2026-10-07 10:34:54 +02:00

Opened #166 README links mf.proto as the format specification instead of docs/FORMAT.md 2026-10-07 10:34:55 +02:00

Opened #167 --require-signature accepts a manifest signed by a key other than the required one 2026-10-07 10:38:40 +02:00

Opened #168 Nothing limits how much fetch and check read from a server for a manifest or a file 2026-10-07 10:38:41 +02:00

Opened #169 Loading a manifest ignores the inner message version 2026-10-07 10:38:41 +02:00

Opened #170 A manifest can list the same path twice 2026-10-07 10:38:41 +02:00

Opened #177 check and freshen resolve a manifest's paths against the current directory, not the manifest's 2026-10-07 16:03:52 +02:00

Opened #178 DECISION: where gen DIR writes its manifest and how it lists the files 2026-10-07 16:03:57 +02:00

Opened #181 Sign and verify manifests in Go with OpenPGP instead of running gpg 2026-10-07 23:19:40 +02:00

Opened #182 Scanner.EnumeratePath given a file lists it under an empty path 2026-10-07 23:42:48 +02:00

Opened #185 gen and freshen list no files when the directory is reached through a symlink 2026-10-08 04:28:28 +02:00

Opened #187 Describe the signature scheme in docs/FORMAT.md as the code builds it 2026-10-12 10:54:21 +02:00

Opened #189 gen and freshen hang forever on a named pipe inside the tree 2026-10-12 11:17:36 +02:00

Opened #190 freshen --sign-key leaves the manifest unsigned when no file changed 2026-10-12 11:17:36 +02:00

Opened #191 freshen rewrites a signed manifest unsigned when --sign-key is not given 2026-10-12 11:17:37 +02:00

Opened #192 check reports symlinks gen never lists as extra files, so --no-extra-files cannot pass on a tree with a directory symlink 2026-10-12 11:17:37 +02:00

Opened #193 An expired signature is accepted when its signing key has expired too 2026-10-12 11:17:37 +02:00

Opened #194 Loading accepts a file entry with no hashes 2026-10-12 11:17:37 +02:00

Opened #195 check -q hides which files failed 2026-10-12 11:17:37 +02:00

Opened #196 Options after the path or URL are ignored, so check DIR --require-signature FPR passes an unsigned manifest 2026-10-13 13:03:06 +02:00

Opened #198 A path named help or h runs the help instead of the command, so check help --require-signature FPR passes 2026-10-13 14:22:27 +02:00

Opened #208 A path with a . segment loads, so check reports the file it names as an extra file 2026-10-13 19:19:39 +02:00

Opened #207 freshen records a file's size from the scan with the hash of what it reads later, so a file that changes in between gets an entry check can never pass 2026-10-13 19:19:39 +02:00

Opened #206 fetch prints a progress line for every 32 KiB it downloads 2026-10-13 19:19:39 +02:00

Opened #205 An empty --require-signature or --sign-key value is taken as the flag not given, so check --require-signature "" passes an unsigned manifest 2026-10-13 19:19:39 +02:00

Opened #209 A signature made after its key expired, or before the key was made, is accepted 2026-10-13 19:22:31 +02:00

Opened #210 next is red: TestCheckQuietShowsFailedFiles catches log lines from tests running outside runMu 2026-10-13 19:35:00 +02:00

Opened #221 next is intermittently red: TestGetStopsWaitingWhenCanceled gets the 503 instead of the deadline when a request outlasts it 2026-10-14 00:26:08 +02:00

Opened #223 mfer check given a URL fails in the Docker image: the scratch image has no /tmp and check writes the downloaded manifest to a temp file 2026-10-14 02:22:00 +02:00

Opened #224 An entry whose hashes hold no SHA-256 multihash loads, and check and fetch then report the intact file as a hash mismatch 2026-10-14 02:22:00 +02:00

Opened #225 A manifest recording a mode above 0777 loads; check then fails every such file as MODE_MISMATCH 2026-10-14 02:22:00 +02:00

Opened #226 README says the project is pre-1.0 with no versioned release, in the tree v1.0.0 is tagged from 2026-10-14 02:22:00 +02:00

Opened #229 check given a URL reports the index.mf that fetch saved as an extra file, so a fetched tree fails --no-extra-files 2026-10-15 20:27:46 +02:00

Opened #233 gen and freshen list an index.mf at the top of the tree when writing the manifest elsewhere, and fetch then refuses the manifest 2026-10-15 23:25:49 +02:00

Opened #235 Drop mimeType and ctime from the format: 1.0 writes neither 2026-10-19 03:56:49 +02:00

Opened #236 Export the loaded manifest type as Manifest, or an interface in front of it? 2026-10-19 03:57:00 +02:00