feat(proxy): reclaim space from the blob store

Age is the write time, so eviction is by insertion order and not by use

Defect 14 / Tier 3 / issue

services/proxy/src/sweep.rs:186services/proxy/src/sweep.rs:100-101services/proxy/src/sweep.rs:10-12

Expected review

record a use time - touch the blob, or keep an access record, when it is served - or stop describing this as least-recently-used and accept it as first-in-first-out.

Discovery difficulty

mtime is the obvious thing to reach for and it *is* the age of the blob, so the code is not wrong about what it computes, only about what that means. Finding it means noticing that the diff claims use, then checking that nothing on the serve path updates the field the claim rests on.

Trigger

a dependency fetched a year ago and served on every build since, against one fetched yesterday and never read again. The year-old one is evicted first, and it is the one every build needs. On a long-lived proxy that inverts the policy across the whole working set.

Severity

issue

benchee benchee-dashboard-1 built from 10f4ec58 Static benchmark evidence ·