github jdx/mise v2026.7.18
v2026.7.18: Monorepo task ergonomics and a broad round of fixes

5 hours ago

This release refines mise's experimental monorepo task workflow with relative dependency paths and a compact dependency tree view, and lands a wide batch of fixes across Cargo installs, plugins, PATH handling, Windows program resolution, Aqua locks, GitLab pagination, and more.

Added

  • task: mise tasks deps gains a --compact flag that expands each shared dependency subtree only once and marks later references as (already shown), keeping every incoming edge visible while avoiding the recursive blow-up that wildcard-heavy monorepo graphs produced. Default output is unchanged unless you pass the flag. (#11502 by @jdx)

    mise tasks deps --compact
  • task: monorepo task dependencies now support ./-prefixed relative paths, resolved from the declaring task's own monorepo location, so one aggregate declaration works unchanged at the root, in nested apps, and in leaves without hard-coded absolute paths. Trailing ... patterns now include the base project itself in addition to its descendants. (#11503 by @jdx)

    [tasks.test]
    depends = [{ task = "./...:groups:tests:*", optional = true }]

Fixed

  • cargo: installs now record the effective install options (features, default-features, bin, crate, locked) and reinstall automatically when any of them change, so changing feature flags or the selected binary no longer silently reuses the wrong artifact. Incompatible shared/system installs are shadowed in your primary install directory instead of being modified. (#11480 by @Marukome0743)
  • plugins: [plugins] entries can now point at local filesystem paths (absolute, ~/, or explicit .//../ relative to the config root). Local asdf, vfox, vfox-backend, and package plugins are installed as symlinks so source edits take effect immediately, while Git URLs, refs, archives, and file:// sources keep their existing behavior. (#11487 by @Marukome0743)
  • plugins: batch plugins install, plugins install --all, and plugins update now finish every plugin even when one fails, preserving successful changes and reporting all failures together (in deterministic order) with a failing exit status. (#11490 by @Marukome0743)
  • env: computed environments (mise env, mise x child PATHs, mise doctor) now collapse exact duplicate PATH entries first-wins, fixing the runaway _.path accumulation that appeared in nested shells and IDE terminals that inherit an activated PATH without mise's state vars. The live shell PATH is intentionally left untouched. (#11491 by @JamBalaya56562)
  • install: installing a tool no longer touches your loaded config files, so editors stop reporting spurious "file changed on disk" warnings. hook-env still detects installs and PATH changes via the mise data directory. (#11495 by @Marukome0743)
  • prune: mise prune --tools no longer discards references from untrusted idiomatic version files and plain .tool-versions, preventing removal of versions still in use by other projects. (#11501 by @jdx)
  • monorepo: idiomatic_version_file_enable_tools set in a config root's own [settings] is now honored by monorepo-wide commands like mise ls --monorepo and mise install --monorepo, instead of only being applied when mise runs from inside that root. (#11463 by @kaii-zen)
  • asdf: bin/list-all and bin/latest-stable scripts now receive your resolved mise [env] values, removals, and _.path additions, so plugins that need a credential or helper on PATH can list versions. Caches are partitioned per environment so results are never reused across differing configs. (#11492 by @Marukome0743)
  • aqua: locked HTTP installs (such as Cabal artifacts on downloads.haskell.org) again retain prefix-scoped format and file metadata, so archives are extracted correctly rather than copied as the executable. (#11499 by @jdx)
  • gitlab: authentication headers are now sent on every page of paginated release/tag requests, fixing anonymous page-2 requests on private or rate-limited GitLab projects when MISE_LIST_ALL_VERSIONS is set. (#11507 by @JamBalaya56562)
  • backend (Windows): mise now resolves a genuinely spawnable program instead of a bare name, fixing program not found errors when a tool is present only as a .cmd shim (for example a scoop- or pip-installed pipx.cmd). Interpreter-only files such as .ps1 and .vbs are recognized correctly, with .vbs file tasks routed through cscript. (#11486, #11489 by @JamBalaya56562)
  • watch: mise watch --wrap-process group is now honored on macOS instead of being silently dropped for watchexec's platform default of session. The --help text also documents the platform-dependent defaults. (#11512 by @JamBalaya56562)
  • lockfile: monorepo legacy path discovery is now cached, avoiding redundant work during lockfile operations. (#11500 by @jdx)

Registry

New Contributors

Full Changelog: v2026.7.17...v2026.7.18

💚 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.

Don't miss a new mise release

NewReleases is sending notifications on new releases.