mise ships with upgrade.auto_prune on, so `mise up` deletes the old install directory as soon as a tool upgrades. Long-running processes are still executing out of that directory, and some re-exec themselves by absolute path, so running `omarchy update` or `mup` breaks them mid-session. Claude Code is the case that surfaced it. It records its own binary path at startup and dispatches its bundled ugrep and bfs through it, so once the upgrade pruned that path its grep and find wrappers fell back to the mise wrapper in ~/.local/bin. That wrapper cannot stand in for the real binary here: a shebang script never sees the argv[0] it was invoked under, because the kernel hands the interpreter the script path instead. The dispatch collapsed to plain `claude -G`, which fails. Keeping the old versions costs some disk and leaves the stale directory behind until something prunes it deliberately, which is the cheaper half of the trade. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 lines
105 B
Bash
4 lines
105 B
Bash
echo "Stop mise upgrades from pruning versions still in use"
|
|
|
|
mise settings set upgrade.auto_prune false
|