Repository navigation
fix(self-update): update mise-shim.exe beside the real mise.exe, not a link to it - #14737
Conversation
…a link to it Co-authored-by: iki <149730+iki@users.noreply.github.com> Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Entire-Checkpoint: 01M5A71TPY1HCQQQMKYA0D9QNF
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
[Medium impact] This change appears safe to merge. SummaryWindows
Reviews (1) · Last reviewed commit: "fix(self-update): update mise-shim.exe b..." · Reviewed by Greptile |
Instruction countsNothing was compared, and so nothing was gated. No series appears on both sides: either the base has no measurements recorded, or the two were measured on different runner classes, which are deliberately not comparable — counts shift between machine types by more than a real regression does. New, nothing to compare against: Only instruction counts gate. Wall clock is shown for context — on identical hardware it moves 4-20% run to run. Measured by tak — instruction-counted CLI benchmarks, stored in this repository's git notes.
|
<!-- entire-trail-link-start --> https://entire.io/gh/jdx/mise/trails/905 <!-- entire-trail-link-end --> ### 🚀 Features - **(config)** resolve relative and templated write_targets paths by @jdx in [#14742](#14742) - **(plugins)** accept vfox-backend: for packslip plugin sources by @jdx in [#14727](#14727) - **(pypi)** read private index passwords from a keyring for lock and version listing by @jdx in [#14733](#14733) - **(vfox)** let backend plugins report version aliases by @jdx in [#14732](#14732) ### 🐛 Bug Fixes - **(bootstrap)** add list alias for packages status by @himkt in [#14709](#14709) - **(bootstrap)** pin compose service references before hashing by @jdx in [#14729](#14729) - **(ci)** stop render:help failing when markdown-magic scans target/ by @jdx in [#14723](#14723) - **(daemons)** resolve file tasks without their script extension by @jdx in [#14741](#14741) - **(docs)** render mise.toml editor hover card code as inline pills by @jdx in [#14722](#14722) - **(dotfiles)** don't warn on an entry with only enabled = false by @jdx in [#14726](#14726) - **(env)** start _.file find_up at the config root by @jdx in [#14734](#14734) - **(npm)** make allow_builds approve only the listed packages by @jdx in [#14731](#14731) - **(self-update)** update mise-shim.exe beside the real mise.exe, not a link to it by @jdx in [#14737](#14737) - **(vfox)** keep symlinks when extracting zip archives by @jdx in [#14730](#14730) ### 📦️ Dependency Updates - lock file maintenance by @renovate[bot] in [#14712](#14712) - update rust crate usage-cli to v7.1.0 by @renovate[bot] in [#14717](#14717) ### Ci - **(release)** sign Windows release binaries with SignPath by @jdx in [#14738](#14738)
https://entire.io/gh/jdx/mise/trails/918
mise self-updateon Windows now keeps themise-shim.exelink that winget creates and updates the realmise-shim.exeinstead.When mise is started through a link such as
%LocalAppData%\Microsoft\WinGet\Links\mise.exe, self-update wrote the newmise-shim.exenext to that link. That replaced themise-shim.exelink inLinkswith a plain copy and left the shim in the winget package directory on the old version.mise reshimthen kept warning that the shim was older than mise, because it looks for the shim beside the realmise.exe.Self-update now resolves
mise.exeto its real path before choosing where to writemise-shim.exe. This matches howmise reshimalready finds the shim.Not tested on Windows: the changed function is
cfg(windows), so I only checked that the workspace still builds on Linux.Fixes discussion #14736.
AI-assisted — Tool: Claude Code; model: anthropic/claude-sonnet-5-5; version: claude-code_2-1-299_agent.
🤖 Generated with Claude Code
Note
Low Risk
Windows-only path resolution in post-update shim refresh; canonicalize failure keeps the old behavior via fallback.
Overview
Fixes Windows self-update when
miseis launched via a WinGet link (e.g.%LocalAppData%\Microsoft\WinGet\Links\mise.exe). Previously, refreshingmise-shim.exeused the parent ofMISE_BIN, so the new shim landed beside the link, replaced the link’smise-shim.exewith a plain file, and left the real shim in the package directory outdated—triggering stale-shim warnings onmise reshim.Self-update now
dunce::canonicalizesMISE_BIN(falling back to the original path if that fails) and writesmise-shim.exenext to the resolvedmise.exe, aligned with where reshimming expects the shim to live.Reviewed by Cursor Bugbot for commit 7de2ad9. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit