bug
forget` is called unconditionally, so a `dry_run=true` sweep deletes the real index entries (`fs::remove_file` at line 252) for every blob it merely *would* have removed. A "dry" run therefore mutates the store: those coordinates become misses, and the now-unreferenced blobs are deleted by the next real sweep regardless of ceiling or age — the exact opposite of the route's "reports without removing anything" contract.
services/proxy/src/sweep.rs:140
Evidence quote
Not recorded
Suggested fix
Not recorded