PATH order is wrong — wrong binary is resolving
Source: Troubleshooting reference
Expected priority (highest to lowest). $_LOCAL_PLAT collapses to $HOME/.local in flat-mode (default).
$_LOCAL_PLAT/cargo/bin Rust tools (fd, sd, zoxide, bat, rg, etc.)$_LOCAL_PLAT/nvm/.../bin Node.js (highest installed version)$_LOCAL_PLAT/bin chezmoi, uv, claude, codex, uv-tool entrypoints~/.local/bin arch-neutral scripts (collapses to $_LOCAL_PLAT/bin in flat mode — deduped via typeset -U)/opt/homebrew/bin Homebrew (macOS) — also where rustup lives/opt/homebrew/sbin Homebrew sbin/usr/bin systemDiagnose with:
which <tool> # where it's resolving fromtype -a <tool> # all locations on PATHecho $PATH | tr ':' '\n' # full PATH in orderIf a Homebrew tool is shadowing a cargo tool, check packages/cargo.txt and packages/Brewfile for duplicates — remove the one you don’t want.
The other classic shadowing footgun: legacy binaries at ~/.local/bin/<tool> from before a layout migration. The [[ -x "$ARCH_BIN/<tool>" ]] install checks in current scripts catch most of these, but if <tool> --version shows an unexpectedly old version, check ls ~/.local/bin/<tool>* for backups (*.preplat-bak.* or stale binaries) and delete them.