·
1 commit
to main
since this release
Immutable
release. Only release title and notes can be modified.
Volume-local cache shards, C and C++ objects on the remote, and rustc keys taken from the inputs each unit actually used.
cargo install kache --locked
mise use -g github:kunobi-ninja/kache@0.17.0Highlights
[cache.volumes]keeps a store on the same volume as the checkout. The wrapper looks there first; the daemon imports remote hits into that shard.- Unix shims are the default C/C++ path. Object files can go to the remote, and the preprocessor memo hits across checkouts.
- rustc can key from the input closure a unit discovered, and look that key up before re-deriving it.
- Untrusted CI can read a remote but cannot write it.
- Local cache defaults to 5% of the disk. Hits can compile-and-compare.
Features
- gc: Track retained target outputs and disk reclamation (#870)
- telemetry: Dump cache counters as OTLP JSON for Kartero (#874)
- remote: Suppress writes from untrusted CI (#875)
- init: Set HOST_CC and HOST_CXX, not CC (#876)
- cc: Default shim farm and Makefile/PKGBUILD docs (#879)
- cc: Digest user include-dir names in the object key (#878)
- rustc: Pin native link runtime and admit bundled WASM (#880)
- cc: Publish C/C++ objects to the remote (#883)
- wrapper: Machine-wide compile scheduler (#885)
- gc: Default local_max_size to 5% of the cache disk (#882)
- prefetch: Prefer identity manifests and drop guppy (#881)
- wrapper: Compile-and-compare verify on hits (#884)
- scheduler: Discover cgroup resource limits (#895)
- report: Attribute wrapper time to nested trace phases (#917)
- cc: Cache preprocessor-mode compiles that name their output (#935)
- key: Remember the input closure each rustc unit discovers (#938)
- key: Derive the rustc key from a recorded closure (#939)
- key: Prove predictions end to end and count the evidence (#942)
- report: Count prediction mismatches so the feature can qualify (#945)
- config: Parse and match volume-local store shards (#948)
- wrapper: Look up and store on the volume shard first (#957)
- service: Keep candidate metadata and make the seed authoritative (#964)
- Report the latest recorded build session (#966)
- daemon: Import remote hits into the requesting volume shard (#962)
Fixes
- store: Read the executable bit from the compiler output, not the staged blob (#877)
- cache: Model frontend job count (#894)
- key: Drop -C extra-filename from the dep-info pre-pass (#912)
- cache: Key native Windows MSVC link inputs (#918)
- cli: Honour the --since window and label it honestly (#923)
- key: Drop joined -o spellings from the dep-info pre-pass (#934)
- key: Verify guarded inputs across clock domains (#936)
- clean: Don't report an unflushed file as unreclaimable (#937)
- store: Advise once when ingest cannot hardlink across volumes (#946)
- key: Let a predicted key ask the remote before re-deriving it (#947)
- hardlink: Surface EXDEV/EPERM fallback reasons and doctor probe (#949)
- key: Make sampled verification sample, and read the right report object (#955)
- nix: Expose prebuilt compiler shims (#963)
- perf-gate: Do not fail when the cold build slowed as much
Performance
- prefetch: Overlap identity lookup with planning (#891)
- cc: Make the preprocessor memo reachable (#927)
- cc: Let the preprocessor memo cross checkouts (#928)
- cc: Compare memo inputs as the expansion sees them (#929)
- cc: Resolve include shadowing instead of enumerating it (#933)
Docs
- Lead onboarding with kache init (#900)
- Tighten the onboarding wording from #900 (#902)
- Add the store diagrams and link the product page (#903)
- remote: Bound a remote with the store's own policy (#921)
- Guide README readers to Kunobi (#960)
- Verify cache reuse across temporary worktrees (#967)
Internals
- Extract shared cache entry formats (#950)
- Extract local artifact storage (#953)
- store: Share blob metadata validation (#959)
- service: Move the planner store from SurrealDB to SQLite (#954)
- Share filesystem measurements and file operations (#961)
- wrapper: Share Rust cache-hit completion (#965)
- fs: Share staged file publication (#969)
Full changelog: v0.16.1...v0.17.0