mise v2026.8.10

v2026.8.10

v2026.8.10: Remote bootstrap environments and asset-matching fixes

Added 3
  • Remote bootstrap can now select which mise.<env>.toml layers load on each SSH target by setting a default with [bootstrap.remote].mise_env or passing --remote-env on the command line
  • Independent config roots can now contribute symlink-each trees that share the same target directory as long as their leaf paths are disjoint
  • mise doctor now detects leftover Windows self-update helper files in TEMP and reports their count and total size
Changed 1
  • Foreground blob lookups during rustc cache restores are now batched into a single blob-pack request instead of one request per digest
Fixed 8
  • Arch packages satisfied by an installed provider through Provides are no longer reported as missing by using pacman -T to distinguish genuinely missing packages
  • Twelve aqua backends including d2, typstyle, gitui, gradle, ktlint, kubeseal, and velero now point at their renamed canonical package ids
  • On Windows x64, azure-cli now installs from the official bundled-Python ZIP release instead of PyPI
  • Homebrew cask metadata now deserializes when the API sends auto_updates: null by treating it as the default false
  • Restored the strict preference for Windows ZIP archives over all tarball formats
  • Shorthand archive extensions like .tbz and .tbz2 are now normalized correctly when matching preferred asset names and stem-only checksums
  • External-provider link reconciliation no longer removes links owned by another source or races with concurrent installs
  • On Windows, stale helper copies in TEMP are now swept before the TEMP-length check during self-update

From mise

This release lets remote bootstrap pick which config environments run on each target, fixes several tool-installation edge cases (archive naming, Windows ZIP preference, renamed aqua packages, Homebrew cask metadata), and hardens pacman package detection and Windows self-update cleanup.

Added
  • bootstrap: Remote bootstrap can now select which mise.<env>.toml layers load on each SSH target without inheriting the orchestrator's full environment. Set a default with [bootstrap.remote].mise_env, override per host in your inventory, or pass --remote-env (repeatable or comma-separated) on the command line. (#12182 by @jdx)

    [bootstrap.remote]
    mise_env = ["production"]
    
  • bootstrap: Independent config roots can now contribute symlink-each trees that share the same target directory, as long as their leaf paths are disjoint. Overlapping leaves and file/directory collisions still fail before any changes, reporting both declaring config origins. (#12190 by @jdx)

  • doctor: mise doctor now detects leftover Windows self-update helper files (__relocated__ / __selfdelete__ copies in TEMP) and reports their count and total size, noting that a subsequent mise self-update removes them. (#12205 by @JamBalaya56562)

Fixed
  • system (pacman): Arch packages satisfied by an installed provider through Provides are no longer reported as missing. mise now uses pacman -T to distinguish genuinely missing packages, recovers the provider's version for status, and skips provider-satisfied aliases during targeted upgrades so pacman does not try to replace the provider. (#12183 by @jdx)
  • registry (aqua): Twelve aqua: backends (including d2, typstyle, gitui, gradle, ktlint, kubeseal, and velero) now point at their renamed, canonical package ids, so they install even in networks where api.github.com is unreachable. A regression test prevents this drift from returning. (#12186 by @kkom)
  • registry (azure-cli): On Windows x64, azure-cli now installs from the official bundled-Python ZIP release instead of PyPI, fixing az failing with 'python' is not recognized or No module named 'azure'. Linux and macOS continue to use the existing pipx install. (#12161 by @JamBalaya56562)
  • brew: Homebrew cask metadata now deserializes when the API sends "auto_updates": null, treating it as the default false. This was breaking metadata fetches for the majority of current casks. (#12192 by @jdx)
  • backend: Restored the strict preference for Windows ZIP archives over all tarball formats (tar.zst > tar.xz > other), which a prior change had accidentally reduced to a tiebreak. (#12200 by @risu729)
  • backend: Shorthand archive extensions like .tbz and .tbz2 are now normalized correctly when matching preferred asset names and stem-only checksums, including mixed-case suffixes. This prevents assets from losing the preferred-name bonus and selecting the wrong archive. (#12199 by @risu729)
  • sync: External-provider link reconciliation no longer removes links owned by another source or races with concurrent installs. Managed installs, runtime aliases, and links from unselected providers are preserved, and stale dangling links are correctly replaced with the winning provider's install. (#11682 by @risu729)
  • self-update: On Windows, stale helper copies in TEMP are now swept before the TEMP-length check, so cleanup still runs on the long-TEMP machines that need it most. (#12205 by @JamBalaya56562)
Performance
  • cache: Foreground blob lookups during rustc cache restores are now batched into a single blob-pack request when the remote supports it, instead of one request per digest, with response metadata validated and a safe fallback to individual blob GETs. (#12191, #12193 by @jdx)
Documentation
  • Fixed mobile table rendering and banner overlays on the docs site. (#12184 by @jdx)
  • Clarified the registry-addition popularity bar and used neutral config-file wording in trust help. (#12208, #12210 by @jdx, @risu729)
New Contributors
  • @kkom made their first contribution in #12186

Full Changelog: https://github.com/jdx/mise/compare/v2026.8.9...v2026.8.10

💚 Sponsor mise

mise is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools. Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at jdx.dev. Individual and company sponsorships keep mise fast, free, and independent.

View original

Upgraded? How did it go?

Discussion