Commit 7fe2528
authored
chore(deps): update dependency mise to v2026.2.24 (#1924)
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [mise](https://redirect.github.com/jdx/mise) | patch | `v2026.2.11` →
`v2026.2.24` |
---
### Release Notes
<details>
<summary>jdx/mise (mise)</summary>
###
[`v2026.2.24`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.24):
: Hooks get Tera templates, aqua cache cleanup, and better error
messages
[Compare
Source](https://redirect.github.com/jdx/mise/compare/v2026.2.23...v2026.2.24)
A bug-fix release that enables Tera template rendering in hooks,
eliminates a class of stale PATH bugs with aqua tools, improves error
messages for unsupported registry tools, and removes the long-deprecated
`python.venv_auto_create` setting.
#### Fixed
- **Hooks now support Tera template rendering** -- Hook scripts can now
use Tera template variables like `{{tools.ripgrep.path}}`, just like
tasks. Additionally, the install progress bar is now cleared before
postinstall hooks run, so hook output is no longer masked by the
progress UI. Preinstall hooks correctly skip `tools=true` env directives
since referenced tools may not yet be installed.
[#​8385](https://redirect.github.com/jdx/mise/pull/8385) by
[@​jdx](https://redirect.github.com/jdx)
- **Aqua tool PATH entries no longer go stale** -- The aqua backend's
`bin_paths` disk cache (`bin_paths.msgpack.z`) has been removed
entirely. This cache provided negligible performance benefit -- reading
and decompressing a msgpack file is comparable to parsing the small YAML
registry entry -- but was the root cause of stale PATH entries after
tool installs (e.g. upgrading `uv` causing its PATH entry to vanish).
The previous fix in v2026.2.23 was raceable by concurrent `mise
hook-env` calls; removing the cache eliminates this class of bugs
completely.
[#​8383](https://redirect.github.com/jdx/mise/pull/8383) by
[@​jdx](https://redirect.github.com/jdx)
- **Better error when a registry tool has no supported backends** --
When a tool exists in the registry but all its backends are filtered out
for the current platform or configuration (e.g. `imagemagick` on a
platform where only `conda` and `asdf` backends are registered but
disabled), the error now clearly explains the situation and lists the
registered backends instead of suggesting the user meant the exact tool
name they already typed.
[#​8388](https://redirect.github.com/jdx/mise/pull/8388) by
[@​jdx](https://redirect.github.com/jdx)
#### Removed
- **Deprecated `python.venv_auto_create` setting removed** -- The
`python.venv_auto_create` and `python_venv_auto_create` settings have
been fully removed. These were deprecated in favor of the
`_.python.venv` configuration. If you were relying on the legacy
`virtualenv` tool option to auto-create venvs, mise will now warn and
print manual creation instructions instead. Migrate to the newer venv
configuration:
[#​8384](https://redirect.github.com/jdx/mise/pull/8384) by
[@​jdx](https://redirect.github.com/jdx)
```toml
[tools]
python = { version = "3.12", _.python.venv = { path = ".venv", create =
true } }
```
#### Breaking Changes
- The `python.venv_auto_create` and `python_venv_auto_create` settings
no longer exist. If you still have these in your configuration, they
will be silently ignored. Use `_.python.venv = { path = ".venv", create
= true }` in your tool configuration instead.
[#​8384](https://redirect.github.com/jdx/mise/pull/8384)
**Full Changelog**:
<jdx/mise@v2026.2.23...v2026.2.24>
###
[`v2026.2.23`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.23):
: Stricter lockfile enforcement and vfox backend options
[Compare
Source](https://redirect.github.com/jdx/mise/compare/v2026.2.22...v2026.2.23)
This release tightens lockfile behavior in `--locked` mode, fixes a
stale PATH cache issue with aqua-based tools, resolves intermittent
panics with remote git tasks, and adds the ability to pass custom
options to vfox backend plugins.
#### Added
- **Custom options for vfox backend plugins** -- Options defined in
`mise.toml` tool entries are now passed through to vfox backend plugins
in both `BackendInstall` and `BackendExecEnv` contexts, accessible in
Lua via `ctx.options`. This enables custom plugin use cases like
controlling build parameters.
[#​8369](https://redirect.github.com/jdx/mise/pull/8369) by
[@​Attempt3035](https://redirect.github.com/Attempt3035)
```toml
[tools]
"llvm:clang" = { version = "latest", build_cores = "22" }
```
```lua
function PLUGIN:BackendInstall(ctx)
local cores = ctx.options.build_cores
-- use cores in your build logic
end
```
- **Registry: porter** -- Added [Porter](https://porter.sh), a CNAB
bundle authoring and management tool (`github:getporter/porter`).
[#​8380](https://redirect.github.com/jdx/mise/pull/8380) by
[@​lbergnehr](https://redirect.github.com/lbergnehr)
- **Registry: entire** -- Added entire CLI (`aqua:entireio/cli`).
[#​8378](https://redirect.github.com/jdx/mise/pull/8378) by
[@​TyceHerrman](https://redirect.github.com/TyceHerrman)
- **Registry: topgrade** -- Added topgrade
(`aqua:topgrade-rs/topgrade`), an all-in-one system upgrade tool.
[#​8377](https://redirect.github.com/jdx/mise/pull/8377) by
[@​TyceHerrman](https://redirect.github.com/TyceHerrman)
#### Fixed
- **`--locked` mode now strictly enforces the lockfile** -- Previously,
`mise lock` could still run while `--locked` was active, `mise use
tool@latest` could bypass the lockfile, and tools missing from the
lockfile would silently fall through to remote resolution. Now `mise
lock` refuses to run in locked mode with a clear error and hint, `mise
use tool@latest` respects the lockfile when locked, and missing tools
fail fast with an actionable message instead of resolving remotely.
[#​8362](https://redirect.github.com/jdx/mise/pull/8362) by
[@​jdx](https://redirect.github.com/jdx)
- **Aqua tool PATH entries no longer go missing after install** -- The
`list_bin_paths()` cache could be populated with stale (empty) data
before extraction finished, or by a concurrent `mise hook-env` call
during installation. The in-memory and on-disk `bin_paths` caches are
now cleared after an aqua tool install completes so paths are recomputed
from the freshly installed files. Fixes an issue where upgrading tools
like `uv` caused their PATH entry to vanish.
[#​8374](https://redirect.github.com/jdx/mise/pull/8374) by
[@​jdx](https://redirect.github.com/jdx)
- **Remote git task cache no longer panics or corrupts on concurrent
access** -- Replaced `println!`/`eprintln!` with non-panicking
`writeln!` to handle EPIPE gracefully, and added file locking with
clone-to-temp-then-rename to prevent concurrent cache corruption when
multiple mise processes fetch the same remote git task simultaneously.
[#​8375](https://redirect.github.com/jdx/mise/pull/8375) by
[@​vmaleze](https://redirect.github.com/vmaleze)
#### New Contributors
- [@​Attempt3035](https://redirect.github.com/Attempt3035) made
their first contribution in
[#​8369](https://redirect.github.com/jdx/mise/pull/8369)
- [@​lbergnehr](https://redirect.github.com/lbergnehr) made their
first contribution in
[#​8380](https://redirect.github.com/jdx/mise/pull/8380)
**Full Changelog**:
<jdx/mise@v2026.2.22...v2026.2.23>
###
[`v2026.2.22`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.22):
: Outdated plugins, rename_exe fixes, and smoother installs
[Compare
Source](https://redirect.github.com/jdx/mise/compare/v2026.2.21...v2026.2.22)
A small release adding a new way to check for outdated plugins, along
with three bug fixes for archive installs, tool environment resolution,
and cross-platform Ruby lockfiles.
#### Added
- **`mise plugins ls --outdated` flag** -- A new `-o`/`--outdated` flag
checks remote git refs in parallel and displays only plugins where the
local SHA differs from the remote. Shows a table with plugin name, URL,
ref, local SHA, and remote SHA. Prints "All plugins are up to date" when
everything is current.
[#​8360](https://redirect.github.com/jdx/mise/pull/8360) by
[@​jdx](https://redirect.github.com/jdx)
```sh
$ mise plugins ls --outdated
Plugin Url Ref Local Remote
tiny https://github.com/mise-plugins/rtx-tiny.git main abc1234 def5678
```
#### Fixed
- **`rename_exe` works with archives containing a `bin/` subdirectory**
-- When an archive extracts to a layout like `prefix/bin/binary`, the
`rename_exe` option was silently skipped because it searched the
extraction root non-recursively instead of the `bin/` subdirectory where
the binary actually lives. Both the GitHub-style backend and the HTTP
backend now auto-detect the `bin/` subdirectory as the search directory,
matching the same logic used by `discover_bin_paths()` for PATH
construction.
[#​8358](https://redirect.github.com/jdx/mise/pull/8358) by
[@​jdx](https://redirect.github.com/jdx)
- **Installing cargo/npm/pipx tools no longer crashes with `tools =
true` env directives** -- When `[env]` contained entries like
`NODE_VERSION = { value = "{{ tools.node.version }}", tools = true }`,
installing npm/cargo/pipx tools would fail with "Variable not found in
context" because the referenced tools might not be installed yet. The
cargo, npm, and pipx backends now skip `tools = true` env directive
resolution during installation while still including tool paths in PATH.
[#​8356](https://redirect.github.com/jdx/mise/pull/8356) by
[@​jdx](https://redirect.github.com/jdx)
- **Ruby lockfile resolves correct Windows checksums** -- Running `mise
lock` on macOS/Linux now correctly resolves RubyInstaller2 binary URLs
and checksums for Windows platform entries, instead of incorrectly using
the MRI source tarball checksum. The lockfile generator now fetches the
correct `.7z` asset from the `oneclick/rubyinstaller2` GitHub releases
for Windows targets.
[#​8357](https://redirect.github.com/jdx/mise/pull/8357) by
[@​jdx](https://redirect.github.com/jdx)
#### Changed
- **Registry: terradozer switched to GitHub fork** -- The terradozer
registry entry now points to `github:chenrui333/terradozer` (replacing
the archived asdf plugin and unavailable aqua backend), and is
restricted to Linux and macOS.
[#​8365](https://redirect.github.com/jdx/mise/pull/8365) by
[@​chenrui333](https://redirect.github.com/chenrui333)
#### New Contributors
- [@​chenrui333](https://redirect.github.com/chenrui333) made
their first contribution in
[#​8365](https://redirect.github.com/jdx/mise/pull/8365)
**Full Changelog**:
<jdx/mise@v2026.2.21...v2026.2.22>
###
[`v2026.2.21`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.21):
: Bug fix roundup for monorepo tasks, conda noarch, and exec PATH
handling
[Compare
Source](https://redirect.github.com/jdx/mise/compare/v2026.2.20...v2026.2.21)
A bug-fix release addressing several regressions and long-standing
issues: monorepo task variables and glob dependencies now resolve
correctly, the conda backend can install Python noarch packages, `mise
x` respects virtualenv PATH ordering again, and nested task execution no
longer hangs.
#### Fixed
- **`mise x` respects virtualenv PATH order again** -- A pre-resolution
step added in v2026.2.17
([#​8276](https://redirect.github.com/jdx/mise/pull/8276))
resolved bare command names directly to mise-managed tool paths,
bypassing PATH entirely. This broke `_.python.venv` and similar configs
where a virtualenv binary should take precedence over the mise-managed
install. The pre-resolution is removed; shim stripping in `exec_program`
(also from
[#​8276](https://redirect.github.com/jdx/mise/issues/8276)) is
sufficient to prevent recursion.
[#​8342](https://redirect.github.com/jdx/mise/pull/8342) by
[@​jdx](https://redirect.github.com/jdx)
- **Conda noarch Python packages install correctly** -- Installing
noarch Python packages via the conda backend (e.g. `mise use
conda:ruff`) failed because the linker didn't know the Python version
needed to compute `site-packages` paths. The solver's resolved Python
version is now extracted and passed through to `link_package`, fixing
the error.
[#​8349](https://redirect.github.com/jdx/mise/pull/8349) by
[@​wolfv](https://redirect.github.com/wolfv)
- **Nested mise tasks no longer hang** -- The process group isolation
(`setpgid`/`killpg`) introduced in v2026.2.18 and refined in v2026.2.19
has been fully reverted. When tools like Playwright use
process-group-based kills (`kill(-pid, SIGKILL)`) to tear down a server
subprocess tree, grandchild processes in a separate group (created by
mise's `setpgid`) survived and held pipes open, causing indefinite
hangs. mise now sends signals directly to child PIDs instead.
[#​8347](https://redirect.github.com/jdx/mise/pull/8347) by
[@​jdx](https://redirect.github.com/jdx)
- **Monorepo tasks resolve `[vars]` from subdirectory configs** --
Running a monorepo task like `mise run //infra/stacks/gcp:greet` failed
to pick up `[vars]` defined in subdirectory `.mise.toml` files, causing
template rendering errors. Variables are now resolved from the task's
full config hierarchy (including `mise.<env>.toml` overlays) and
threaded through script rendering.
[#​8343](https://redirect.github.com/jdx/mise/pull/8343) by
[@​jdx](https://redirect.github.com/jdx)
- **Monorepo glob dependencies trigger subdirectory prepare steps** --
When a root task depended on a monorepo glob pattern like `//...:check`,
the prepare phase only collected configs from top-level tasks, missing
subdirectory tasks entirely. Dependencies are now resolved before
prepare runs, so transitive subdirectory tasks and their prepare
providers are properly discovered.
[#​8353](https://redirect.github.com/jdx/mise/pull/8353) by
[@​jdx](https://redirect.github.com/jdx)
#### New Contributors
- [@​wolfv](https://redirect.github.com/wolfv) made their first
contribution in
[#​8349](https://redirect.github.com/jdx/mise/pull/8349)
**Full Changelog**:
<jdx/mise@v2026.2.20...v2026.2.21>
###
[`v2026.2.20`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.20):
: Conda rewrite, .NET SDK core plugin, and per-task timeouts
[Compare
Source](https://redirect.github.com/jdx/mise/compare/v2026.2.19...v2026.2.20)
A feature-packed release that replaces the conda backend with
production-grade internals, adds a native .NET SDK plugin, and finally
enforces per-task timeouts. Several lockfile and environment-handling
fixes round things out.
#### Highlights
- **Conda backend rewritten with rattler** -- The experimental conda
backend has been completely rewritten to use the
[rattler](https://redirect.github.com/conda/rattler) Rust crates (the
same engine behind pixi), replacing \~1,600 lines of custom code that
relied on the unsupported anaconda.org API. This brings a proper
SAT-based dependency solver, correct binary prefix replacement, and
repodata caching via CDN.
[#​8325](https://redirect.github.com/jdx/mise/pull/8325) by
[@​jdx](https://redirect.github.com/jdx)
- **Native .NET SDK management** -- A new core plugin for .NET SDK
installs all versions side-by-side under a shared `DOTNET_ROOT`,
matching .NET's native multi-version model. It uses Microsoft's official
`dotnet-install` script and supports `global.json` for per-project SDK
pinning. [#​8326](https://redirect.github.com/jdx/mise/pull/8326)
by [@​jdx](https://redirect.github.com/jdx)
- **Per-task timeouts are now enforced** -- The `timeout` field on tasks
(added in v2025.1.6 but never wired up) now actually kills tasks that
exceed their limit. Timeouts send SIGTERM with a 5-second grace period
before SIGKILL, and both per-task and global `task_timeout` settings are
respected.
[#​8250](https://redirect.github.com/jdx/mise/pull/8250) by
[@​tvararu](https://redirect.github.com/tvararu)
#### Added
- **Core .NET SDK plugin** -- `mise use dotnet@8` now installs via a
native core plugin with side-by-side version support and `global.json`
detection. Configure `DOTNET_ROOT` via the new `dotnet.dotnet_root`
setting. [#​8326](https://redirect.github.com/jdx/mise/pull/8326)
by [@​jdx](https://redirect.github.com/jdx)
- **Per-task timeout enforcement** -- Tasks with a `timeout` field are
now killed if they exceed the configured duration. Works with both
per-task config and the global `task_timeout`/`--timeout` flag.
[#​8250](https://redirect.github.com/jdx/mise/pull/8250) by
[@​tvararu](https://redirect.github.com/tvararu)
```toml
[tasks.deploy]
run = "npm run deploy"
timeout = "5m"
```
- **VSIX archive support** -- The HTTP backend now recognizes `.vsix`
files as ZIP archives and extracts them correctly, enabling tools
distributed as VS Code extensions to be installed via `http:` URLs.
[#​8306](https://redirect.github.com/jdx/mise/pull/8306) by
[@​sosumappu](https://redirect.github.com/sosumappu)
- **Registry: `oxfmt`** -- Added the oxfmt formatter to the tool
registry. [#​8316](https://redirect.github.com/jdx/mise/pull/8316)
by [@​taoufik07](https://redirect.github.com/taoufik07)
#### Changed
- **Conda backend rewritten with rattler crates** -- Replaces custom
version matching, dependency resolution, archive extraction, and binary
patching with the battle-tested rattler ecosystem (`rattler_solve`,
`rattler_repodata_gateway`, `rattler::install`). Binary prefix
replacement now works correctly (the old code skipped binary files
entirely). Since the conda backend is still experimental, this is a
non-breaking change.
[#​8325](https://redirect.github.com/jdx/mise/pull/8325) by
[@​jdx](https://redirect.github.com/jdx)
#### Fixed
- **Lockfile not modified with `--locked`** -- `mise install --locked`
no longer writes to `mise.lock`, matching the semantics of `cargo
install --locked` and `uv pip install --locked`.
[#​8308](https://redirect.github.com/jdx/mise/pull/8308) by
[@​jdx](https://redirect.github.com/jdx)
- **Orphan lockfile entries pruned** -- `mise lock` now removes stale
tool entries that are no longer present in config, keeping the lockfile
aligned with the current toolset.
[#​8265](https://redirect.github.com/jdx/mise/pull/8265) by
[@​mackwic](https://redirect.github.com/mackwic)
- **Contradictory lockfile config caught early** -- Setting
`locked=true` alongside `lockfile=false` now produces a clear error
instead of silently ignoring the lock.
[#​8329](https://redirect.github.com/jdx/mise/pull/8329) by
[@​jdx](https://redirect.github.com/jdx)
- **`watch_files` triggers on every change** -- The hook-env fast-path
now checks `[[watch_files]]` paths, fixing a bug where only the first
file change triggered the associated run command.
[#​8317](https://redirect.github.com/jdx/mise/pull/8317) by
[@​jdx](https://redirect.github.com/jdx)
- **Fish alias completions cleaned up** -- Setting or unsetting shell
aliases in fish now clears stale completions, preventing tab-complete
from offering outdated suggestions.
[#​8324](https://redirect.github.com/jdx/mise/pull/8324) by
[@​jdx](https://redirect.github.com/jdx)
- **JSON schema accepts age-encrypted env values** -- Fixed a `oneOf`
ambiguity in the mise schema that rejected `[env]` entries using age
encryption.
[#​8328](https://redirect.github.com/jdx/mise/pull/8328) by
[@​adamliang0](https://redirect.github.com/adamliang0)
- **Regal registry updated** -- The regal tool now points to its new
home at `open-policy-agent/regal`.
[#​8315](https://redirect.github.com/jdx/mise/pull/8315) by
[@​charlieegan3](https://redirect.github.com/charlieegan3)
- **Conda: locked installs preserve package data** -- `conda_packages`
entries are no longer silently dropped during `--locked` installs, and
concurrent downloads no longer race on the same temp file.
[#​8335](https://redirect.github.com/jdx/mise/pull/8335) by
[@​jdx](https://redirect.github.com/jdx)
- **Conda: solver no longer fails on Linux** -- Deduplicated repodata
records before passing them to the solver, fixing "duplicate records"
errors when installing tools like imagemagick.
[#​8337](https://redirect.github.com/jdx/mise/pull/8337) by
[@​jdx](https://redirect.github.com/jdx)
#### New Contributors
- [@​tvararu](https://redirect.github.com/tvararu) made their
first contribution in
[#​8250](https://redirect.github.com/jdx/mise/pull/8250)
- [@​sosumappu](https://redirect.github.com/sosumappu) made their
first contribution in
[#​8306](https://redirect.github.com/jdx/mise/pull/8306)
- [@​charlieegan3](https://redirect.github.com/charlieegan3) made
their first contribution in
[#​8315](https://redirect.github.com/jdx/mise/pull/8315)
- [@​taoufik07](https://redirect.github.com/taoufik07) made their
first contribution in
[#​8316](https://redirect.github.com/jdx/mise/pull/8316)
- [@​adamliang0](https://redirect.github.com/adamliang0) made
their first contribution in
[#​8328](https://redirect.github.com/jdx/mise/pull/8328)
- [@​mackwic](https://redirect.github.com/mackwic) made their
first contribution in
[#​8265](https://redirect.github.com/jdx/mise/pull/8265)
**Full Changelog**:
<jdx/mise@v2026.2.19...v2026.2.20>
###
[`v2026.2.19`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.19):
: Fixes for interactive tasks and failed install cleanup
[Compare
Source](https://redirect.github.com/jdx/mise/compare/v2026.2.18...v2026.2.19)
A small patch release with two targeted bug fixes: a regression fix for
interactive task execution and better cleanup after failed installs.
##### Bug Fixes
- **Interactive tasks no longer hang** -- The process group isolation
added in v2026.2.18
([#​8279](https://redirect.github.com/jdx/mise/pull/8279))
inadvertently broke interactive tools like Tilt that read from stdin.
When a child process was moved to its own process group, the terminal
wouldn't deliver keyboard input to it, causing `SIGTTIN` and a silent
hang. mise now checks whether stdin is a TTY before calling `setpgid` --
interactive tasks stay in the terminal's foreground process group for
proper keyboard I/O, while non-interactive tasks still get their own
process group for clean signal teardown.
[#​8301](https://redirect.github.com/jdx/mise/pull/8301) by
[@​jdx](https://redirect.github.com/jdx)
- **Failed installs clean up properly** -- When an install fails (e.g. a
404 for a non-existent version or a 403 from GitHub rate limiting), mise
now removes the empty parent directory (e.g. `installs/tilt/`) and the
stale incomplete marker from cache, instead of leaving them behind.
[#​8302](https://redirect.github.com/jdx/mise/pull/8302) by
[@​jdx](https://redirect.github.com/jdx)
##### Documentation
- Fixed the ripgrep command in the getting-started guide to use the
correct binary name `rg` instead of `ripgrep`.
[#​8299](https://redirect.github.com/jdx/mise/pull/8299) by
[@​nguyenvulong](https://redirect.github.com/nguyenvulong)
**Full Changelog**:
<jdx/mise@v2026.2.18...v2026.2.19>
###
[`v2026.2.18`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.18):
: Task Reliability & Developer Experience
[Compare
Source](https://redirect.github.com/jdx/mise/compare/v2026.2.17...v2026.2.18)
A bug-fix-heavy release focused on task execution reliability, with a
new feature for cross-platform tool locking.
##### Highlights
- **Auto-lock all platforms after install** — When you install a tool,
mise now automatically locks versions for all platforms (not just the
current one). This means your `mise.lock` stays complete for teammates
on different OSes without needing to run `mise lock` separately.
[#​8277](https://redirect.github.com/jdx/mise/pull/8277)
- **Process group cleanup for tasks** — Task child processes are now
managed via Unix process groups, so killing a task reliably takes down
the entire process tree instead of leaving orphaned children.
[#​8279](https://redirect.github.com/jdx/mise/pull/8279)
- **`depends_post` tasks run even on failure** — Post-dependency tasks
(cleanup, notifications, etc.) now execute even when the parent task
fails, matching the expected behavior for teardown-style hooks.
[#​8274](https://redirect.github.com/jdx/mise/pull/8274)
##### Bug Fixes
- **Infinite shim recursion on Unix** — `mise exec` now strips its own
shims from `PATH` before spawning subprocesses, preventing infinite
recursion when a shimmed tool calls itself.
[#​8276](https://redirect.github.com/jdx/mise/pull/8276)
- **`--yes` flag now works for config trust prompts** — The `--yes`/`-y`
flag is now properly respected when mise prompts to trust a config file.
[#​8288](https://redirect.github.com/jdx/mise/pull/8288)
- **`--locked --dry-run` validation order** — `mise install --locked`
now validates the lock requirement before the `--dry-run` short-circuit,
so you get a proper error instead of silent success.
[#​8290](https://redirect.github.com/jdx/mise/pull/8290) by
[@​altendky](https://redirect.github.com/altendky)
- **JSON Schema compatibility** — Replaced `unevaluatedProperties` with
`additionalProperties` in the mise JSON schema for broader validator
support. [#​8285](https://redirect.github.com/jdx/mise/pull/8285)
- **Duplicate stderr on task failure** — Fixed tasks in replacing output
mode printing error output twice on failure.
[#​8275](https://redirect.github.com/jdx/mise/pull/8275)
- **Did-you-mean for task commands** — Mistyping a CLI subcommand now
suggests similar task names.
[#​8286](https://redirect.github.com/jdx/mise/pull/8286)
- **Monorepo prepare steps** — Prepare steps for subdirectory configs
now execute from the repository root as expected.
[#​8291](https://redirect.github.com/jdx/mise/pull/8291)
- **`mise upgrade` no longer force-reinstalls** — Previously installed
versions are skipped during upgrade instead of being redundantly
reinstalled.
[#​8282](https://redirect.github.com/jdx/mise/pull/8282)
- **Terminal restore after `mise watch`** — `watchexec` no longer leaves
the terminal in a broken state on exit.
[#​8273](https://redirect.github.com/jdx/mise/pull/8273)
##### Documentation
- Clarified that `MISE_CEILING_PATHS` excludes the ceiling directory
itself. [#​8283](https://redirect.github.com/jdx/mise/pull/8283)
##### New Contributors
- [@​altendky](https://redirect.github.com/altendky) made their
first contribution in
[#​8290](https://redirect.github.com/jdx/mise/pull/8290)
##### 📦 Aqua Registry Updates
##### New Packages (4)
-
[`Skarlso/crd-to-sample-yaml`](https://redirect.github.com/Skarlso/crd-to-sample-yaml)
-
[`kunobi-ninja/kunobi-releases`](https://redirect.github.com/kunobi-ninja/kunobi-releases)
-
[`swanysimon/markdownlint-rs`](https://redirect.github.com/swanysimon/markdownlint-rs)
- [`tmux/tmux-builds`](https://redirect.github.com/tmux/tmux-builds)
##### Updated Packages (2)
-
[`firecow/gitlab-ci-local`](https://redirect.github.com/firecow/gitlab-ci-local)
- [`k1LoW/runn`](https://redirect.github.com/k1LoW/runn)
###
[`v2026.2.17`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.17):
: Freshly Prepared
[Compare
Source](https://redirect.github.com/jdx/mise/compare/v2026.2.16...v2026.2.17)
A moderate release with a handful of bug fixes and a new feature for the
`prepare` system.
##### Highlights
- **Prepare: auto-touch stale outputs** — When tools like `uv sync` skip
work because dependencies are already satisfied, output files don't get
updated, causing mise to consider them stale on the next run. Prepare
providers now automatically touch output files after a successful
command, keeping staleness checks accurate. This is controlled by a new
`touch_outputs` config option (defaults to true).
[#​8243](https://redirect.github.com/jdx/mise/pull/8243) by
[@​halms](https://redirect.github.com/halms)
- **Settings reorganization: `task_*` → `task.*`** — Nine flat `task_*`
settings have been consolidated into a nested `task.*` namespace (e.g.,
`task_output` → `task.output`). The old names still work with no
breaking changes — deprecation warnings won't appear until `2026.8.0`.
[#​8239](https://redirect.github.com/jdx/mise/pull/8239)
##### Bug Fixes
- **Postinstall hooks now use correct bin paths** — Per-tool postinstall
hooks were hardcoding `$install_path/bin` on `PATH`, which broke
backends like aqua where binaries live in non-standard subdirectories.
Hooks now use each backend's actual binary paths.
[#​8234](https://redirect.github.com/jdx/mise/pull/8234)
- **`mise use` writes to the correct config file** — When both
`config.toml` and `config.local.toml` exist, `mise use` was incorrectly
writing to `config.local.toml`. It now properly targets `config.toml`.
[#​8240](https://redirect.github.com/jdx/mise/pull/8240)
- **Legacy `.mise.backend` installs no longer block auto-migration** —
Legacy backend files were defaulting to `explicit_backend = true`, which
prevented auto-migration to updated registry backends. They now default
to non-explicit, allowing tools like `glab` to resolve correctly through
the current registry.
[#​8245](https://redirect.github.com/jdx/mise/pull/8245) by
[@​jean-humann](https://redirect.github.com/jean-humann)
##### 📦 Aqua Registry Updates
##### Updated Packages (1)
-
[`namespacelabs/foundation/nsc`](https://redirect.github.com/namespacelabs/foundation/nsc)
###
[`v2026.2.16`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.16):
: MCP Gets Its Hands Dirty
[Compare
Source](https://redirect.github.com/jdx/mise/compare/v2026.2.15...v2026.2.16)
This release brings MCP task execution support, better Node.js flavor
guidance, and a solid round of bug fixes across several backends.
##### Highlights
- **MCP `run_task` tool** — You can now execute mise tasks directly
through the [MCP](https://mise.jdx.dev/) interface. The new `run_task`
tool runs tasks via subprocess with full stdout/stderr capture, timeout
support, and hardened execution. An `install_tool` stub is also included
for future expansion.
[#​8179](https://redirect.github.com/jdx/mise/pull/8179) by
[@​joaommartins](https://redirect.github.com/joaommartins)
- **Node flavor suggestions** — When a Node.js version isn't found in
the configured mirror, mise now suggests setting `node.flavor` to help
you get to the right download faster.
[#​8206](https://redirect.github.com/jdx/mise/pull/8206) by
[@​risu729](https://redirect.github.com/risu729)
- **Registry stack overflow fix** — The registry `BTreeMap` is now built
directly on the heap, eliminating a stack overflow that could occur with
large registries.
[#​8214](https://redirect.github.com/jdx/mise/pull/8214) by
[@​risu729](https://redirect.github.com/risu729)
##### Bug Fixes
- **Java version sorting** — Shorthand Java versions (e.g., `21`, `17`)
now sort correctly.
[#​8197](https://redirect.github.com/jdx/mise/pull/8197) by
[@​roele](https://redirect.github.com/roele)
- **Node env var migration** — Node-related environment variables have
been properly migrated to the settings system.
[#​8200](https://redirect.github.com/jdx/mise/pull/8200) by
[@​risu729](https://redirect.github.com/risu729)
- **Registry overrides in shims** — Registry overrides are now correctly
applied when running tools through shims.
[#​8199](https://redirect.github.com/jdx/mise/pull/8199) by
[@​risu729](https://redirect.github.com/risu729)
- **Rust outdated duplication** — Fixed `mise outdated` showing Rust
versions twice.
[#​8209](https://redirect.github.com/jdx/mise/pull/8209) by
[@​roele](https://redirect.github.com/roele)
- **GitHub aliased backend resolution** — Version lookups no longer
break for tools aliased to a different backend than the registry
default. [#​8221](https://redirect.github.com/jdx/mise/pull/8221)
- **GitHub attestation output** — Attestation verification success is
now shown in progress output.
[#​8230](https://redirect.github.com/jdx/mise/pull/8230)
- **Cargo binstall setting migration** — `MISE_CARGO_BINSTALL_ONLY` has
been migrated to the settings system.
[#​8202](https://redirect.github.com/jdx/mise/pull/8202) by
[@​risu729](https://redirect.github.com/risu729)
##### New Tools
- **typst** — GitHub backend added.
[#​8210](https://redirect.github.com/jdx/mise/pull/8210) by
[@​3w36zj6](https://redirect.github.com/3w36zj6)
- **cargo-dist** — Now available via aqua registry.
[#​8153](https://redirect.github.com/jdx/mise/pull/8153) by
[@​risu729](https://redirect.github.com/risu729)
- **release-plz** — Now available via aqua registry.
[#​8150](https://redirect.github.com/jdx/mise/pull/8150) by
[@​risu729](https://redirect.github.com/risu729)
###
[`v2026.2.15`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.15):
: Streaming in Order
[Compare
Source](https://redirect.github.com/jdx/mise/compare/v2026.2.14...v2026.2.15)
This release brings a nice quality-of-life improvement to task execution
along with a solid batch of bug fixes across several subsystems.
##### Highlights
- **Real-time streaming for keep-order tasks** — The `keep_order` task
output mode now streams the active task's output in real-time instead of
buffering everything until completion. Other parallel tasks buffer
quietly and flush in definition order as they finish, so you get live
feedback without sacrificing deterministic output ordering.
[#​8164](https://redirect.github.com/jdx/mise/pull/8164)
- **npm backend performance** — `npm view` is now called only once per
package lookup instead of multiple times, speeding up npm-based tool
resolution. Thanks
[@​risu729](https://redirect.github.com/risu729)!
[#​8181](https://redirect.github.com/jdx/mise/pull/8181)
##### Bug Fixes
- **Recursive shim execution on Windows** — `mise exec` now strips the
shims directory from PATH during executable lookup, preventing infinite
recursion when shims call back into `mise x`.
[#​8189](https://redirect.github.com/jdx/mise/pull/8189)
- **PATH reordering after activation** — `hook-env` now preserves any
PATH reordering done after `mise activate` (e.g., by `~/.zlogin`),
instead of silently reverting to the original order.
[#​8190](https://redirect.github.com/jdx/mise/pull/8190)
- **Cross-platform lockfile resolution** — The aqua backend now
correctly resolves lockfile artifacts for the target platform instead of
leaking host-specific overrides into `mise lock --platform`. Thanks
[@​mackwic](https://redirect.github.com/mackwic)!
[#​8183](https://redirect.github.com/jdx/mise/pull/8183)
- **Version alias lockfile lookup** — Version aliases (like `lts`) are
now resolved before lockfile lookup, so locked versions are matched
correctly.
[#​8194](https://redirect.github.com/jdx/mise/pull/8194)
- **Task source freshness checks** — Freshness checks now work correctly
with dynamic task directories. Thanks
[@​rooperuu](https://redirect.github.com/rooperuu)!
[#​8169](https://redirect.github.com/jdx/mise/pull/8169)
- **Global tasks in monorepos** — Global tasks are now properly resolved
when running from a monorepo root.
[#​8192](https://redirect.github.com/jdx/mise/pull/8192)
- **Wildcard glob matching** — `test:*` no longer incorrectly matches
the parent `test` task.
[#​8165](https://redirect.github.com/jdx/mise/pull/8165)
- **task\_config.includes paths** — Include paths in task config are now
resolved relative to the config root, not the working directory.
[#​8193](https://redirect.github.com/jdx/mise/pull/8193)
- **Upgrade safety** — `mise upgrade` now skips untrusted tracked
configs instead of failing.
[#​8195](https://redirect.github.com/jdx/mise/pull/8195)
- **helm-diff registry entry** — Fixed the archive binary name for
helm-diff. Thanks
[@​jean-humann](https://redirect.github.com/jean-humann)!
[#​8173](https://redirect.github.com/jdx/mise/pull/8173)
##### New Contributors
Welcome [@​jean-humann](https://redirect.github.com/jean-humann),
[@​mackwic](https://redirect.github.com/mackwic), and
[@​rooperuu](https://redirect.github.com/rooperuu)!
##### 📦 Aqua Registry Updates
##### New Packages (2)
- [`BetterDiscord/cli`](https://redirect.github.com/BetterDiscord/cli)
- [`glossia.ai/cli`](https://redirect.github.com/glossia.ai/cli)
###
[`v2026.2.14`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.14)
[Compare
Source](https://redirect.github.com/jdx/mise/compare/v2026.2.13...v2026.2.14)
A feature-focused release adding vfox plugin env redaction, Deno
devEngines support, and a new Rust default\_host setting.
##### Highlights
- **Vfox env var redaction** — Vfox plugins can now request that
specific environment variables be redacted from logs and debug output by
returning a `redact` field in `MiseEnvResult`. Useful for plugins that
inject secrets or tokens.
[#​8166](https://redirect.github.com/jdx/mise/pull/8166)
- **Deno devEngines.runtime support** — Mise now reads the
`devEngines.runtime` field from `package.json` to auto-detect the
desired Deno version, matching the same convention already supported for
Node. Thanks [@​risu729](https://redirect.github.com/risu729)!
[#​8144](https://redirect.github.com/jdx/mise/pull/8144)
- **`default_host` setting for Rust** — A new `rust.default_host`
setting lets you override the Rust target triple used during
installation, useful for cross-compilation setups. Thanks
[@​aacebedo](https://redirect.github.com/aacebedo)!
[#​8154](https://redirect.github.com/jdx/mise/pull/8154)
- **Aqua `github_content` package support** — The aqua backend now
supports packages hosted via GitHub content downloads (not just
releases). Thanks
[@​risu729](https://redirect.github.com/risu729)!
[#​8147](https://redirect.github.com/jdx/mise/pull/8147)
##### Bug Fixes
- **`mise edit` whitespace** — TOML values edited via `mise edit` no
longer retain extra formatting whitespace.
[#​8162](https://redirect.github.com/jdx/mise/pull/8162)
- **`--locked` for python/ubi** — The `--locked` flag now works
correctly with python and ubi backends.
[#​8163](https://redirect.github.com/jdx/mise/pull/8163)
- **npm update notifier** — The npm update notifier is now suppressed
during `npm install`, preventing spurious output. Thanks
[@​risu729](https://redirect.github.com/risu729)!
[#​8152](https://redirect.github.com/jdx/mise/pull/8152)
- **Asset matcher vsix penalty** — `.vsix` files are now deprioritized
in asset matching, preventing incorrect downloads. Thanks
[@​risu729](https://redirect.github.com/risu729)!
[#​8151](https://redirect.github.com/jdx/mise/pull/8151)
- **JSON schema updates** — Added missing `task_templates`, `extends`,
and `timeout` fields to the mise.json schema. Thanks
[@​risu729](https://redirect.github.com/risu729)!
[#​8145](https://redirect.github.com/jdx/mise/pull/8145)
##### New Contributors
Welcome
[@​joaommartins](https://redirect.github.com/joaommartins)!
[#​8133](https://redirect.github.com/jdx/mise/pull/8133)
***
> **Note:** This release has no attached binary assets. The v2026.2.14
tag was created successfully but the GitHub Actions workflow that
publishes release artifacts did not trigger for the tag push. The
binaries for this version are functionally identical to v2026.2.15 minus
the additional fixes in that release. Use v2026.2.15 instead.
###
[`v2026.2.13`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.13):
: Fix GitHub attestation verification failures
[Compare
Source](https://redirect.github.com/jdx/mise/compare/v2026.2.12...v2026.2.13)
This release partially mitigates GitHub attestation verification
failures that were causing tool installations to fail (e.g., `gh`, and
other aqua-backed tools with attestations enabled). See
[#​8142](https://redirect.github.com/jdx/mise/discussions/8142)
for details.
##### What happened
GitHub silently changed their attestations API to externalize bundle
storage to Azure Blob Storage (`tmaproduction.blob.core.windows.net`)
using [Snappy compression](https://google.github.io/snappy/), rather
than returning bundles inline as JSON. The `gh` CLI had already been
updated to handle this
([cli/cli#10185](https://redirect.github.com/cli/cli/pull/10185)), but
third-party tools like mise were not yet aware of the new format,
causing `"error decoding response body"` failures.
##### What this release does
Bumps `sigstore-verification` to 0.2, which splits the reqwest
dependency version from mise's (0.13 vs 0.12). This avoids Cargo feature
unification that was causing mise's `gzip` feature to be applied to
attestation requests, interfering with the Snappy-compressed responses.
**Note:** A full fix with proper Snappy decompression support and auth
token scoping landed in [sigstore-verification
v0.2.1](https://redirect.github.com/jdx/sigstore-verification/releases/tag/v0.2.1)
([#​22](https://redirect.github.com/jdx/sigstore-verification/pull/22),
[#​23](https://redirect.github.com/jdx/sigstore-verification/pull/23))
— expect a follow-up mise release with that bump.
If you are still hitting issues, set `settings.aqua.github_attestations
= false` as a workaround.
##### Dependency Updates
- **Bumped `sigstore-verification` to 0.2**
([e8897c9](https://redirect.github.com/jdx/mise/commit/e8897c9fbc873fe272495a65e5a88b04b97f3b6d))
##### 📦 Aqua Registry Updates
##### New Packages (1)
- [`k1LoW/tcmux`](https://redirect.github.com/k1LoW/tcmux)
##### Updated Packages (1)
- [`jdx/usage`](https://redirect.github.com/jdx/usage)
###
[`v2026.2.12`](https://redirect.github.com/jdx/mise/releases/tag/v2026.2.12)
[Compare
Source](https://redirect.github.com/jdx/mise/compare/aqua-registry-v2026.2.11...v2026.2.12)
A small release adding a new Java configuration option.
##### Highlights
- **`java.shorthand_vendor` setting** — A new setting that lets you
configure which vendor is used when specifying shorthand Java versions
(e.g., `21` instead of `temurin-21`). Thanks
[@​roele](https://redirect.github.com/roele)!
[#​8134](https://redirect.github.com/jdx/mise/pull/8134)
***
> **Note:** This release has no attached binary assets. The v2026.2.12
tag was created but the GitHub Actions workflow that publishes release
artifacts did not trigger for the tag push. Use v2026.2.13 or later
instead.
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40My4yIiwidXBkYXRlZEluVmVyIjoiNDMuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>1 parent 6938479 commit 7fe2528
File tree
9 files changed
+18
-18
lines changed- .github/workflows
9 files changed
+18
-18
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | | - | |
| 18 | + | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | | - | |
| 17 | + | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
43 | | - | |
| 42 | + | |
| 43 | + | |
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | | - | |
| 37 | + | |
| 38 | + | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
| 26 | + | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | | - | |
| 18 | + | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
| 39 | + | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
30 | | - | |
| 29 | + | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
24 | | - | |
| 23 | + | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| |||
0 commit comments