Skip to main content

Module conflicts

Module conflicts 

Source
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:

  1. Symlink target collisions: two packs produce HandlerIntent::Link with the same resolved user_path.
  2. 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§

ConflictKind
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.