A native-root collision can leave one wheel on whole-wheel fallback
while another claimant owns the direct package projection. When both
wheels publish the same dist-info entry, the metadata collision path
rejected the venv even though only one fallback copy remains visible.
Apply the metadata collision policy first. Keep the normal projected
winner when no claimant needs fallback. Let a sole fallback copy own
metadata discovery without another projection. Retain the hard failure
when multiple fallback copies cannot be suppressed.
This preserves one importlib.metadata result for a permissive
duplicate-lock case while keeping error policy and the ambiguous case
explicit.
A native-root collision can leave one wheel on whole-wheel fallback
while another claimant owns the direct package projection. When both
wheels publish the same dist-info entry, the metadata collision path
rejected the venv even though only one fallback copy remains visible.
Apply the metadata collision policy first. Keep the normal projected
winner when no claimant needs fallback. Let a sole fallback copy own
metadata discovery without another projection. Retain the hard failure
when multiple fallback copies cannot be suppressed.
This preserves one importlib.metadata result for a permissive
duplicate-lock case while keeping error policy and the ambiguous case
explicit.