packages feed

nova-cache 0.4.1.0 → 0.4.1.1

raw patch · 2 files changed

+25/−1 lines, 2 files

Files

CHANGELOG.md view
@@ -1,5 +1,10 @@ # Changelog +## 0.4.1.1 — 2026-06-10++- Documentation-only release: the 0.4.1.0 entry below now records everything+  that release actually contained. No code changes.+ ## 0.4.1.0 — 2026-06-10  - **Server: landing page at `GET /`** — a human-facing page with live stats@@ -7,6 +12,25 @@   protocol endpoint documentation. The cache protocol routes are unchanged;   the page is briefly cacheable (`max-age=300, must-revalidate`) since its   stats change as paths are added.+- **Correctness and hardening sweep** (a post-0.4.0.0 audit; note: shipped in+  this release without individual entries at tag time — recorded here for the+  honest history):+  - `Base32.decode` rejects non-canonical encodings (overflow bits must be zero).+  - NAR deserialisation is strict on untrusted input: trailing bytes rejected,+    regular nodes require a `contents` token, directory entry names must be+    sorted, unique, and safe.+  - narinfo integer fields parse as strict base-10 (no hex/octal/whitespace),+    so a non-canonical `NarSize` can no longer be re-signed under the cache key.+  - Hash validation compares decoded digest bytes, accepting any valid+    encoding of the same hash.+  - Ed25519 verification is name-keyed, matching Nix's lookup-by-name.+  - `decompressXz` re-raises asynchronous exceptions, so timeouts can cancel it.+  - Server: per-route body caps (narinfo small, NAR large), uploaded narinfos+    must name the store path of the request URL, signing failures refuse the+    write instead of storing unsigned, and narinfo responses are revalidatable+    rather than immutable.+- **Breaking (should have been a major bump; noted for transparency):**+  `getCacheInfo` returns a `CacheInfo` record instead of a tuple.  ## 0.4.0.0 — 2026-06-08 
nova-cache.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               nova-cache-version:            0.4.1.0+version:            0.4.1.1 synopsis:           Pure-first Nix binary cache protocol library description:   A pure-first library implementing the Nix binary cache protocol —