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_checknow blocks until prefetch completes, eliminating the race between daemon prefetch and wrapper requests on ephemeral CI runners. - Prefetch metrics: New
PrefetchHitevent 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--namespaceflag computes and uploads content-addressed shards alongside the legacy manifest.