v2026.6.0

jdx/misev2026.6.0Jun 3, 2026by mise-en-dev

AI Summary

Wires npm into Corepack and aligns aqua's Windows extension handling with upstream semantics.

Key Highlights

  • Ensures npm is managed by Corepack when requested.
  • Improved aqua Windows extension semantics (tri-state completion).
  • New `mise sponsors` subcommand.

New Features

  • Corepack-managed npm shim integration.
  • Improved SPM lock identity (provider, api_url, artifactbundle).
  • Fixed bun musl detection on Linux.
  • Improved task include ordering and Git Bash `cygdrive` support.

Full Release Notes

A focused release that wires npm into Corepack when requested, brings aqua's Windows extension handling in line with upstream, and fixes task include ordering plus a Git Bash `cygdrive` regression.

## Added
- **(npm)** Ensure npm itself is managed by Corepack when `node.corepack=true` and `node.npm_shim=false`, so the Corepack-managed npm shim is enabled alongside yarn/pnpm ([#10196](https://github.com/jdx/mise/pull/10196) by @roele).
- **(cli)** New `mise sponsors` subcommand and a sponsor block on the docs site that lists sponsors fetched from `en.dev/sponsors.json` ([#10182](https://github.com/jdx/mise/pull/10182) by @jdx).

## Fixed
- **(aqua)** Mirror aqua's Windows extension semantics end-to-end ([#10167](https://github.com/jdx/mise/pull/10167) by @risu729):
  - `complete_windows_ext` is now tri-state — explicit `true` completes Windows asset/URL/file source names, explicit `false` leaves them alone, and an omitted value completes by default except for `github_content`/`github_archive` packages.
  - Registry `windows_ext` (default `.exe`, `.sh` for `github_content`/`github_archive`) and `append_ext` are honored when rendering assets, URLs, and Windows install links.
  - `.exe` and `.jar` assets are treated as already complete, existing extensions like `.ps1` are preserved when `format` is omitted, and version dots in names like `tool.1.0.0` no longer suppress Windows completion. The registry compilation cache is bumped to version 2 and will be regenerated on next use.
- **(spm)** Include `provider`, `api_url`, `artifactbundle`, and `artifactbundle_asset` in SPM lock identity so toggling between source builds and artifact bundles no longer silently reuses a stale `mise.lock` entry. `provider` is canonicalized to lowercase (default `github` omitted), `api_url` has trailing slashes trimmed, and `filter_bins` stays out of lock identity since it only affects which built executables are exposed ([#10160](https://github.com/jdx/mise/pull/10160) by @risu729).
- **(bun)** Improve musl detection on Linux: when the system libc preference is unset, fall back to runtime detection and treat unknown results as non-musl, fixing glibc-system installs that were incorrectly resolving to bun's musl build ([#10195](https://github.com/jdx/mise/pull/10195) by @roele).
- **(task)** Honor `task_config.includes` order so a local task can override a same-named `git::` include. Previously a regression in #9147 combined with non-git includes being loaded before all `git::` includes meant a `git::` include always clobbered a same-named local task regardless of position. Includes now load in their declared order with first-wins file-task dedup, so the earlier entry in the list takes precedence uniformly across directory, toml-file, and `git::` includes ([#10191](https://github.com/jdx/mise/pull/10191) by @vmaleze).
- **(task)** Honor `MISE_CYGDRIVE_PREFIX` for Git Bash / MSYS2, not only Cygwin. Git Bash users with a custom `/etc/fstab` automount root can now set the prefix to fix the converted PATH; defaults are unchanged (`/c/...` for Git Bash, `/cygdrive/c/...` for Cygwin) ([#10190](https://github.com/jdx/mise/pull/10190) by @JamBalaya56562).
- **(completion)** Rely on usage 3.4.0's [usage#649](https://github.com/jdx/usage/pull/649) for inherited global flags so `-C`/`--cd`, `-j`/`--jobs`, and `-q`/`--quiet` are recognized before a mounted task without the broad promotion workaround. The narrowed promotion now only covers orphan-short flags `-r`/`-S` (whose root globals are long-only), and `min_usage_version` is bumped to `3.4` so older usage CLIs warn to upgrade instead of silently regressing ([#10176](https://github.com/jdx/mise/pull/10176) by @JamBalaya56562).

## Documentation
- Fix the `choice` template function example to use named-argument syntax ([#10197](https://github.com/jdx/mise/pull/10197) by @joekrill).

## New Contributors
* @joekrill made their first contribution in [#10197](https://github.com/jdx/mise/pull/10197)

**Full Changelog**: https://github.com/jdx/mise/compare/v2026.5.18...v2026.6.0

## 💚 Sponsor mise

mise is built by [@jdx](https://github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors.

If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent.