Skip to content

v0.0.9

Choose a tag to compare

@jleni jleni released this 23 Feb 02:14
· 710 commits to main since this release
bf6c9d3

What's New

Shard-based manifest with warming barrier, versioning, and prefetch metrics

  • Shard-based manifests (v2): Split monolithic build manifest into 64 content-addressed shards using blake3(crate_name) % NUM_SHARDS. Changing one crate only invalidates one shard, dramatically reducing S3 traffic on CI.
  • Warming barrier: handle_remote_check now blocks until prefetch completes, eliminating the race between daemon prefetch and wrapper requests on ephemeral CI runners.
  • Prefetch metrics: New PrefetchHit event type distinguishes artifacts served from prefetch vs on-demand remote fetch. Build summary tracks warming wait time, shard match rate, and download counts.
  • Adaptive prefetch cancellation: If prefetch hit rate drops below 30% after 10+ checks, remaining prefetch downloads are cancelled to free S3 semaphore slots.
  • Strategy versioning: S3 paths now include v2/ prefix with full namespace (target/rustc_hash/profile). Falls back to v1 legacy manifest when v2 shards are not available.
  • save-manifest --namespace: New --namespace flag computes and uploads content-addressed shards alongside the legacy manifest.

Other improvements

  • macOS cache exclusion: Cache directory is now excluded from Time Machine backups and Spotlight indexing (#5)
  • Scrollable config TUI: Config editor form is now scrollable in small terminals (#4)
  • Transfer monitoring tab: New TUI tab for monitoring remote cache transfers