Expand description
Cross-pack conflict detection.
Detects when multiple packs resolve to the same user-visible target
path. Conflicts are checked after all intents are collected and
target paths are fully resolved — this catches collisions introduced
by [symlink.targets], force_home, _home/ prefixes, etc.
Two kinds of collision are detected:
- Symlink target collisions: two packs produce
HandlerIntent::Linkwith the same resolveduser_path. - PATH executable shadowing: two packs stage directories via the path handler that contain files with the same name — only the first one in PATH order would be found by the shell.
Shell handler Stage intents are not flagged because each pack’s
scripts are sourced independently from per-pack namespaced
directories — multiple packs having aliases.sh is legitimate.
Structs§
- Claimant
- One pack’s claim on a target path.
- Conflict
- A cross-pack conflict: multiple packs claim the same effective target.
Enums§
- Conflict
Kind - What kind of collision this conflict represents.
Functions§
- detect_
cross_ pack_ conflicts - Detect cross-pack conflicts across all collected intents.
- format_
conflicts - Format a list of conflicts for error display.