bug
forget(&index, &gone)` runs unconditionally, so a `dry_run=true` sweep deletes the index entries for every referenced blob it marks for age eviction even though the blob bytes are left in place. `dry_run` is documented (docs/architecture.md, operations.md) as reporting what a sweep would reclaim "without removing anything"; instead it orphans blobs, forcing refetches and leaving the bytes to be deleted by the next real sweep.
services/proxy/src/sweep.rs:140
Evidence quote
Not recorded
Suggested fix
Not recorded