Review text is escaped; normalized decisions follow each finding
Finding f1
bug
clear_partials` deletes every file in `incoming` with no age/ownership check, so a sweep mid-fetch removes live `BlobWriter` temps and the later `rename` in `commit` fails
values()` emits `sweep_bytes_reclaimed` then `sweep_blobs_removed`, but `COUNTERS` names them in the opposite order, so Prometheus scrapes swapped figures
a failed `remove_file` still counts the blob toward `removed`/`bytes` and still pushes it to `gone`, so index entries are dropped and metrics report space that was not reclaimed
the full filesystem walk runs inline on the async worker (also via `admin`’s sync `reclaim`), so a large store stalls the runtime until the sweep finishes
comment claims symlink size is the link size, but `fs::metadata` follows links and counts the target, so shared/symlinked blobs inflate `held` and trigger excess eviction