Keep mise upgrades from pruning versions still in use
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>
This commit is contained in:
1 parent
9455496990
commit
889b22dd85
2 files changed
+7
No files matched your search
@@ -1,3 +1,7 @@
|
||||
# Upgrades must not delete the version a running process is executing from:
|
||||
# mise up would prune the old install dir out from under a live session.
|
||||
mise settings set upgrade.auto_prune false
|
||||
|
||||
omarchy-mise-install codex
|
||||
omarchy-mise-install claude
|
||||
omarchy-mise-install crush
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
echo "Stop mise upgrades from pruning versions still in use"
|
||||
|
||||
mise settings set upgrade.auto_prune false
|
||||
Reference in new issue
Block a user