v2026.7.18

jdx/misev2026.7.18Jul 30, 2026by mise-en-dev

AI Summary

Refines monorepo task workflows with relative dependency paths and compact views, and fixes Cargo installs and plugin management.

Key Highlights

  • `--compact` flag for dependency trees to avoid recursive blow-up.
  • Relative paths (`./`) for task dependencies work across monorepo levels.
  • Local filesystem paths are now supported for plugin configuration.
  • Fixes PATH duplicate accumulation in nested shells.

New Features

  • Compact dependency view
  • Relative dependency paths
  • Local plugin paths
  • PATH duplicate handling

Full Release Notes

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](https://github.com/jdx/mise/pull/11502) by @jdx)

  ```bash
  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](https://github.com/jdx/mise/pull/11503) by @jdx)

  ```toml
  [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](https://github.com/jdx/mise/pull/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](https://github.com/jdx/mise/pull/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](https://github.com/jdx/mise/pull/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](https://github.com/jdx/mise/pull/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](https://github.com/jdx/mise/pull/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](https://github.com/jdx/mise/pull/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](https://github.com/jdx/mise/pull/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](https://github.com/jdx/mise/pull/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](https://github.com/jdx/mise/pull/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](https://github.com/jdx/mise/pull/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](https://github.com/jdx/mise/pull/11486), [#11489](https://github.com/jdx/mise/pull/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](https://github.com/jdx/mise/pull/11512) by @JamBalaya56562)
- **lockfile:** monorepo legacy path discovery is now cached, avoiding redundant work during lockfile operations. ([#11500](https://github.com/jdx/mise/pull/11500) by @jdx)

## Registry
- Added `witr`. ([#11505](https://github.com/jdx/mise/pull/11505) by @Jelenkee)

## New Contributors
- @Jelenkee made their first contribution in [#11505](https://github.com/jdx/mise/pull/11505)
- @kaii-zen made their first contribution in [#11463](https://github.com/jdx/mise/pull/11463)

**Full Changelog**: https://github.com/jdx/mise/compare/v2026.7.17...v2026.7.18

## 💚 Sponsor mise

mise is maintained by [@jdx](https://github.com/jdx), an open source developer for [**entire.io**](https://entire.io), the title sponsor of the [jdx.dev](https://jdx.dev) open source tools. Development is funded by sponsors.

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