The descriptor-anchored sweep defended against a process that swaps paths
inside PM's own uv cache mid-sweep. That cache belongs to the operator's
account, which SECURITY.md §2 treats as one trust envelope: anything able to
swap those paths can already delete them directly. The sweep keeps the parts
that matter for correctness: it holds uv's cache lock (a concurrent sync never
loses an archive it is reading), refuses a linked archive-v0, skips linked
buckets, and deletes only entries whose files prove a torn write. shutil.rmtree
never follows links inside a tree on Linux/macOS.
Tests keep the real-uv recovery case (red on main with the live error) and the
not-corruption classification table; the live CLI A/B covers doctor and
doctor --repair.