Skip to content

chore(deps): update dependency jdx/mise to v2026#220

Open
renovate[bot] wants to merge 1 commit into
scipfrom
renovate/jdx-mise-2026.x
Open

chore(deps): update dependency jdx/mise to v2026#220
renovate[bot] wants to merge 1 commit into
scipfrom
renovate/jdx-mise-2026.x

Conversation

@renovate

@renovate renovate Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update New value References Sourcegraph
jdx/mise uses-with major 2026.7.12 source code search for "jdx/mise"

Test plan: CI should pass with updated dependencies. No review required: this is an automated dependency update PR.


Release Notes

jdx/mise (jdx/mise)

v2026.7.12

Compare Source

v2026.7.11: : Task Source Tracking and Activation Speedups

Compare Source

This release sharpens task handling around remote files, global config, and tool selectors, trims redundant work from shell activation, and fixes several bootstrap and platform-specific edge cases.

[!NOTE]
This is the first published release since v2026.7.7 — versions 2026.7.8 through 2026.7.10 were tagged but never published due to a release pipeline issue. Their changes are included here; see Also in this release below.

Added

  • config: structured tool definitions now accept version, path, prefix, and ref selectors consistently in root [tools], inline task definitions, task templates, and file-task headers. Exactly one selector is required, and conflicting, missing, or non-string selectors now fail with a clear configuration error instead of silently defaulting or panicking. (#​11069 by @​risu729)

    node = { version = "20" }
    go = { prefix = "1.22" }
    python = { ref = "main" }
    shellcheck = { path = "/opt/shellcheck" }

Fixed

  • task: remote HTTP and Git-backed task files now have their #MISE headers parsed, so metadata like tools, description, and hide and inline TOML overrides are honored just like local file tasks. Git-backed task files are also made executable after cloning and on cache hits. (#​11111 by @​Marukome0743)
  • task: file tasks loaded from user-global or system configs are now correctly treated as global regardless of their include path, so custom global scripts appear under mise tasks --global, stay out of --local, and use the invoking project root. (#​11106 by @​risu729)
  • task: mise tasks info, extended listings, task help, and the MCP tasks resource now report every configuration source contributing to a task, with a new config_sources array in JSON output. Changing metadata in a TOML overlay now correctly invalidates the merged file task's cache. (#​11098 by @​risu729)
  • watch: mise --env <profile> watch now propagates the selected environment to the watched task, so profile-specific tasks resolve correctly on each rerun. (#​11114 by @​Marukome0743)
  • http: raw executables (such as PHP PHARs like Composer) installed via the HTTP backend are now created readable as well as executable (mode 0755 rather than 0711), fixing "Could not open input file" errors for interpreters run by non-owner users. (#​11135 by @​jdx)
  • java: mise latest java@<vendor> now prefers the base vendor variant over dashed specializations and sorts multi-feature vendor prefixes correctly. (#​11109 by @​roele)
  • config: reject conflicting tool selectors at parse time (see Added). (#​11069 by @​risu729)
  • bootstrap: systemd timers can now reference a managed service by its bare TOML key (e.g. unit = "dotfiles-maintain"), which resolves to dev.mise.<name>.service. Fully qualified names like nginx.service are still written verbatim. (#​11128 by @​jdx)
  • bootstrap: Homebrew casks that declare auto_updates are now accepted instead of failing with an unsupported-lifecycle error. (#​11107 by @​casparbreloh)
  • bootstrap: macOS defaults handling now treats a missing key or domain as unset rather than erroring during initial setup. (#​11118 by @​roele)
  • windows: mise uninstall now removes dangling runtime version pointer files (like 16 or latest) and cleans up the now-empty tool directory. (#​11095 by @​JamBalaya56562)

Performance

  • activate: the redundant initial prompt hook that ran immediately after activation is now skipped for bash, zsh, and fish when the session is unchanged, avoiding an extra mise process on shell startup. (#​11130, #​11131, #​11134 by @​jdx)
  • backend: archive extraction and macOS hdiutil/pkgutil waits now run via block_in_place, so parallel installs no longer starve download progress and other tasks of runtime threads. (#​11136 by @​jdx)

Registry

  • Allow the reviewed @nubjs/nub postinstall lifecycle script to run via the npm backend so upgrades keep the ~/.nub/shims hardlinks refreshed; default-deny behavior is preserved for all other packages. (#​11126 by @​risu729)

Documentation


Also in this release: v2026.7.8–v2026.7.10

Due to a release pipeline issue, versions 2026.7.8 through 2026.7.10 were tagged but never published. This is the first release since v2026.7.7, so it also ships everything below.

Added
  • bootstrap: package manager plugins — vfox Lua plugins can now act as system package managers, with a declarative [bootstrap.plugins] config and mise bootstrap plugins apply|status commands. Declared plugins install before built-in packages, then plugin-managed packages apply once host tools are available. (#​11023, #​11024 by @​jdx)
  • bootstrap: new mise bootstrap repos update and mise bootstrap repos exec commands. Unpinned [bootstrap.repos] entries are intentionally never pulled by declarative apply; repos update gives an explicit fetch + fast-forward path (with dry-run and path filtering), and repos exec runs a command across configured checkouts. mise bootstrap --update now also updates repos. (#​11022 by @​jdx)
  • registry: opt-in floating registries — with registry_floating, mise fetches the latest released registry metadata (and the current aqua registry) instead of the release-pinned copies. Useful on distributions whose mise package lags behind releases while registry entries keep changing. (#​10971 by @​jdx)
  • backend: exact-version fast path — when a request is an exact semver version, the cargo, npm, go, gem, pipx, and dotnet backends now skip fetching the remote version list entirely and let the underlying installer validate it. This speeds up exact pins without a lockfile, first-time mise install tool@x.y.z, and mise x tool@x.y.z. (#​11013 by @​Turbo87, #​11070 by @​jdx)
  • task: dependencies whose templated names render to an empty string are now skipped, so templates can conditionally disable a dependency. Empty templated dependency args are omitted as well. (#​11057 by @​risu729, #​11055 by @​jdx)
Fixed
  • http: mise now fails fast when the network is unavailable: DNS resolver failures are treated as non-retryable, a process-local circuit opens after hard DNS/connection failures, and remote-version lookups are capped at 3 seconds under prefer_offline. Shims, shell activation, and mise x make one bounded attempt instead of grinding through full retry schedules per endpoint. (#​11066 by @​jdx)
  • config: stricter, clearer configuration validation: env directive value aliases (#​11062), env.mise directives (#​11053), and the experimental monorepo root key (#​11052) are deprecated, and non-string postinstall hooks are rejected at parse time (#​11061) (all by @​risu729)
  • hooks: hook definitions are validated more strictly — unknown table fields (#​11047) and nested hook arrays (#​11051) are rejected, and the spawned-scripts form is deprecated (#​11043) (all by @​risu729)
  • schema: a large batch of JSON schema corrections so editors validate real configs correctly: OCI copy entries (#​11009), bootstrap shell activation (#​11004) and bootstrap hooks (#​11039), structured task tool options (#​11021), required watch file patterns (#​11040), plugin manifest fields (#​11035), root hook definitions (#​11041), integer types for integer settings (#​11037), array-typed deps provider paths (#​11064) (all by @​risu729), and systemd timer/lifecycle options (#​11050 by @​jdx)
  • dry runs no longer cause side effects: task setup is skipped (#​11015), install hooks are previewed instead of executed (#​11010), and mise prune --dry-run preserves runtime symlinks (#​11017) (all by @​risu729)
  • bootstrap: Homebrew cask metadata is preserved (#​11012) and macOS metadata files in cask artifacts are ignored (#​11063); repo origins are compared transport-agnostically so git@ vs https:// remotes don't trigger spurious mismatches (#​11034 by @​jeremy); static systemd units no longer break bootstrap status (#​11056 by @​jdx)
  • backend: prerelease versions without a separator (like 1.2.3rc1) are detected correctly (#​11032 by @​jdx); cargo sparse-index version discovery is restored (#​11011 by @​Turbo87); go resolves direct package module prefixes (#​11054 by @​jdx)
  • install: false install env values are treated as removals (#​11033 by @​risu729)
  • lockfile: platform-specific tool option variants are preserved instead of being collapsed (#​10999 by @​jdx)
  • shell: hyphenated tool names work in shell integrations (#​10961 by @​risu729), and bash deactivate no longer errors on empty array expansions under set -u (#​11026 by @​jdx)
  • shim: recursion is prevented when the directory env is filtered (#​10982 by @​risu729)
  • task: file tasks resolve source files relative to the task directory (#​11073 by @​JamBalaya56562), and tasks generated from templates inherit the template's output setting (#​11059 by @​risu729)
  • launchd: bootout EIO for not-loaded agents is tolerated on macOS (#​10965 by @​hsbt)
  • nix: TZDIR is set so timezone tests pass in the sandbox build (#​11019 by @​coryzibell)
Performance
  • startup: ~2ms shaved off every invocation — config lookup no longer compiles ~200 glob patterns per startup (literal filenames are stat'd directly), and the clap command tree is built once instead of twice. mise version drops from 8.1ms to 6.6ms, hook-env from 10.9ms to 9.3ms. (#​11025 by @​jdx)
  • release: release binaries for linux-x64 and macos-arm64 are now built with profile-guided optimization, trained on a hermetic offline workload covering config load, toolset resolution, hook-env, env rendering, tasks, and exec — ~10% faster on hot paths and ~4% smaller binaries (#​11031 by @​jdx). macOS tarballs now target macOS 12 (#​11027 by @​jdx).
  • runtime: default tokio worker threads are capped at 16, avoiding oversized thread pools on many-core machines (#​11029 by @​jdx)
Refactor
  • tar extraction, inspection, and verification are consolidated onto jdx-tar, removing the system tar fallback and a duplicate tar implementation — consistent archive behavior across platforms (#​11028 by @​jdx)
Registry
Documentation

New Contributors

Full Changelog: jdx/mise@v2026.7.7...v2026.7.11

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

v2026.7.7: : Monorepo deps, systemd timers, and OAuth reliability

Compare Source

This release extends dependency providers and systemd bootstrap to monorepo and timer-based workflows, and hardens GitHub OAuth token refreshes and cache clearing against concurrent mise processes.

Added

  • deps: experimental mise deps --monorepo runs dependency providers across every explicitly configured [monorepo].config_roots entry, aligned with mise install --monorepo. Provider IDs are qualified by config root (e.g. //apps/api:uv) so repeated provider names across subprojects no longer collide, and mise installs the union of tools declared across participating roots before running providers. Plain mise deps remains scoped to the current config root. (#​10975 by @​jdx)

    monorepo_root = true
    
    [monorepo]
    config_roots = ["apps/*", "packages/*"]
    mise deps --monorepo
    mise deps --monorepo --only //apps/api:uv
  • bootstrap: manage systemd user timers alongside services via [bootstrap.linux.systemd.units]. Timer entries render to .timer units with scheduling (on_boot_sec, on_unit_active_sec, on_unit_inactive_sec, on_calendar), persistence, and timers.target linkage. Services gain optional directives including type, remain_after_exit, exec_stop, start/stop timeouts, no_new_privileges, and private_tmp. When a unit name switches between service and timer, the stale sibling unit is stopped, disabled, and removed on apply. (#​10984 by @​jdx)

Fixed

  • github: serialize OAuth token refreshes across mise processes. Single-use refresh tokens were only guarded by an in-process mutex, so parallel mise runs could burn the same token or overwrite the cache with stale data. The full read-refresh-write cycle now holds a filesystem lock, re-reads the cache after acquiring it, and writes atomically. Rejected refreshes now surface a sanitized error with reauthorization guidance instead of falling back silently to anonymous requests. (#​10995 by @​jdx)
  • cache: mise cache clear no longer fails with DirectoryNotEmpty when another mise process (e.g. hook-env) recreates cache files mid-removal. Removal now retries with bounded backoff and tolerates concurrently recreated entries, while permission and other errors still propagate. (#​10993 by @​jdx)
  • github: skip OS package and installer assets (.apk, .deb, .rpm, DMG/PKG, MSI/MSIX/AppX and sidecars) during automatic asset selection for the github:, gitlab:, and forgejo: backends, so releases containing only unsupported packages now report that no platform asset matches instead of installing an unusable file. Explicit asset_pattern and URL selection are unchanged. (#​11001 by @​risu729)
  • aqua: honor explicit false overrides for rosetta2, windows_arm_emulation, and no_asset, so a version or platform override can disable inherited emulation or asset flags instead of being treated as omitted. (#​11002 by @​risu729)
  • vfox: support short annotated-tag refs in plugin source URLs (e.g. a .git URL followed by #v1.0.0), resolving explicit refs against exact remote branch and tag namespaces so annotated tags no longer fail to check out. (#​10998 by @​junior-ricon)
  • task: render Tera templates in nested task-level tool option arrays and tables, and preserve their structure through resolution instead of dropping structured values. (#​10960 by @​risu729)
  • bootstrap: add Homebrew-compatible Array#second, #third, #fourth, and #fifth helpers to the cask shim, fixing casks (such as OrbStack) that reference version.csv.second. (#​10992 by @​casparbreloh)
  • status: status.show_env output now respects the status.truncate setting instead of always truncating. (#​10983 by @​ytjmt)
  • schema: add bootstrap.macos.launchd.agents.<name>.start_calendar_interval to the published schema (single schedule or array), so strict TOML validators and editors accept valid launchd calendar configurations. (#​11008 by @​risu729)

Registry

New Contributors

Full Changelog: jdx/mise@v2026.7.6...v2026.7.7

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

v2026.7.6: : Sandbox defaults, Flatpak bootstrap, and smarter task output

Compare Source

Added
  • task: per-task output style field, decoupled from verbosity, so styles like prefix and quietness combine freely #​10885
  • sandbox: global [settings.sandbox] deny defaults (deny_all, deny_read, deny_write, deny_net, deny_env) #​10940
  • bootstrap: Flatpak package support for [bootstrap.packages] on Linux #​10951
  • oci: reproducible host path copy layers via mise oci build --copy HOST_PATH:IMAGE_PATH and [[oci.copy]] #​10952
  • doctor: mise doctor now warns when a mise shim is shadowed by an earlier executable in PATH #​10919
  • aqua: support for private github_content and github_archive packages via authenticated GitHub API endpoints #​10915
  • task: task-level timeout values now render Tera templates #​10959
  • http: http_download_timeout setting caps total download wall-clock time (default 30 minutes) #​10920
  • registry: add git-town (aqua:git-town/git-town) #​10935 and bundler (gem:bundler) #​10939
Fixed
  • backend: reinstall rolling versions (e.g. nightly) when the installed content is outdated #​10827
  • backend: align migrated backend resolution #​10969
  • config: keep already-installed versions eligible when minimum_release_age is configured #​10973
  • config: let user table-syntax tool options override registry defaults #​10924
  • config: reload settings when config is reset so bootstrap phases use a consistent snapshot #​10945
  • config: warn when a tool version uses an unsupported npm-style semver range #​10916
  • config: add Tera contrib helpers #​10970
  • task: preserve structured task-level tool options (arrays/tables such as os, depends, install_env) #​10958
  • task: isolate usage_* variables per invocation so nested tasks don't inherit stale parser output #​10963
  • task: invalidate auto freshness after a failed rerun #​10953
  • task: respect configured includes directory when editing/adding file tasks #​10955
  • s3: resolve cross-platform lockfile URLs for locked mode #​10873
  • bootstrap: preserve symlinks when extracting DMGs and always detach on copy failure #​10949
  • bootstrap: support localized brew casks (language, on_system_conditional) and reuse existing Ruby #​10950
  • erlang: lock source install outcomes #​10937
  • github: align SLSA provenance with the selected asset #​10928
  • github: treat bin/rename_exe as install-time options #​10925
  • npm: isolate version queries from project cwd #​10927
  • cargo: own the cargo-binstall compile fallback #​10926
  • registry: normalize backend platform selectors #​10938
  • registry: rename the podman binary to podman-remote #​10826
  • file: ignore malformed pax metadata during sparse detection #​10978
  • copr: fix x86_64 builds (nasm/cmake for Fedora, PREBUILT_NASM for RHEL/EPEL) #​10947 and add PIE flag for aws-lc probe #​10974
  • toolset: preserve ref selector install identity #​10942
Changed
  • cargo: disable cargo-quickinstall by default; opt back in with cargo.binstall_quickinstall = true #​10923
  • registry: revert preferring aqua for codex #​10922
Performance
  • aqua: skip public reachability probes for packages marked private #​10914
Documentation
  • aqua: document local custom registries #​10966
  • config: clarify sub-version arithmetic #​10943
Breaking Changes
  • task: --quiet / quiet = true / MISE_QUIET=1 no longer collapse task output to un-prefixed interleave; they now preserve the resolved style. Use --output quiet (or -o interleave) for the old behavior #​10885
  • task: usage_* variables are now invocation-local; workflows that injected them as implicit inputs must declare an input with env= instead #​10963
💚 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.

v2026.7.5: : Worktree-Aware Trust and npm 12 Support

Compare Source

This release makes config trust smarter across git worktrees and monorepos, and fixes npm-backed tools on npm 12.

Added

  • Trust is shared across git worktrees. Trust records are keyed by absolute path, so every new git worktree add checkout used to re-prompt for the same config. A config inside a linked worktree is now trusted automatically when the equivalent path in the repository's main checkout is trusted — trusting a repo once covers all of its worktrees. This is especially helpful for workflows that spin up many short-lived worktrees (e.g. AI-agent worktrees under .claude/worktrees/). Sharing flows one way, from main checkout to worktrees; an explicit --ignore still wins, and paranoid mode is excluded since its trust is tied to per-file content hashes. mise untrust inside a worktree now warns that the main checkout still trusts the config (#​10890 by @​jdx).
  • mise trust --all now trusts nested subdirectory configs. Previously --all only trusted config files in the current directory and its parents. It now also walks subdirectories and trusts each nested config root it finds, so a monorepo's nested configs can be trusted with one explicit command. The walk respects .gitignore, skips hidden directories, and skips node_modules, vendor, target, dist, and build so vendored configs are left untrusted. Each nested config gets its own trust record, so a config added later in a new subdirectory still prompts (#​10889 by @​jdx).

Fixed

  • npm: support npm 12 output. npm 12 wraps npm view --json responses in a single-item array, which broke version listing and latest-version detection for npm-backed tools. mise now normalizes both the legacy object shape and the new wrapped shape, and tolerates missing time metadata (#​10888 by @​jdx).

Changed

  • registry: the codex shorthand now prefers npm:@&#8203;openai/codex over the aqua GitHub asset. The aqua asset for recent releases shipped only the main codex binary and omitted codex-code-mode-host, which broke tool calling; the npm package installs the full vendor bundle. Aqua remains available as an explicit or fallback backend (#​10893 by @​jdx).

Full Changelog: jdx/mise@v2026.7.4...v2026.7.5

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

v2026.7.4: : Bootstrap goes stable

Compare Source

This release graduates mise bootstrap and mise dotfiles out of experimental mode, teaches mise install to reconcile Rust components and targets, and restores Linux arm64 glibc compatibility for release builds.

Added

  • Bootstrap and dotfiles are now stable. mise bootstrap and all of its subcommands (packages, repos, macOS/Linux user services, shell activation, login shell) plus mise dotfiles no longer require experimental mode, so they work with MISE_EXPERIMENTAL=0. The related mise doctor diagnostics (system packages, macOS defaults, login-shell drift) and the missing [bootstrap.packages] hint on mise install are always on as well (#​10869 by @​jdx).
  • Skip re-installs in the mise.run install script. Setting MISE_INSTALL_SKIP_IF_EXISTS avoids re-downloading mise when the requested version is already present at the install path, which is handy for CI/Docker builds that re-run the installer on every build (#​10882 by @​JamBalaya56562):
    curl https://mise.run | MISE_INSTALL_SKIP_IF_EXISTS=1 sh
    Only the resolved install path is checked (not the wider PATH), and default behavior is unchanged unless you opt in.

Fixed

  • install: the Rust backend now asks rustup whether the configured components and targets are actually installed before skipping an install, so mise install reconciles missing components/targets on an already-installed toolchain instead of treating a bare symlink as complete. Array-form config is now parsed (with trimming and empty-entry filtering) and host-suffixed component names are matched (#​10876 by @​jdx).
  • task: task_source_files() is once again available when a task defines usage args and its run script is re-rendered with parsed CLI values (#​10870 by @​jdx).
  • upgrade: mise upgrade --minimum-release-age no longer prints a misleading "newer release ignored" warning when the installed version already satisfies the hidden latest release (#​10877 by @​jdx).
  • build: pinned the aarch64-unknown-linux-gnu cross image back to a fixed tag and added a shared glibc-floor check to release packaging, restoring predictable glibc compatibility for Linux arm64 tarballs (#​10875 by @​jdx).

Performance

  • install: missing-version detection now runs each backend's install-satisfaction check in parallel, speeding up detection for larger tool sets (a follow-up to the Rust reconciliation work). If the parallel batch fails it falls back to a sequential pass so the missing list stays accurate (#​10881 by @​jdx).

Changed

  • registry: the Scala shorthand now resolves to the canonical vfox:mise-plugins/vfox-scala fork; the asdf:mise-plugins/mise-scala fallback is unchanged (#​10864 by @​jdx).

Documentation

  • Fixed the broken bootstrap docs intro, linked the bootstrap sub-pages, and made a style/consistency pass across the bootstrap pages (#​10878, #​10880 by @​jdx).
  • Fixed broken source-code links in the generated CLI reference (#​10879 by @​jdx).
Aqua Registry Updates

New packages: sderosiaux/launchdeck, syntax-sh/lexicon-releases.

Full Changelog: jdx/mise@v2026.7.3...v2026.7.4

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

v2026.7.3: : System dependency checks and cask lifecycle hooks

Compare Source

This release brings smarter builds for source-compiling tools, better Homebrew cask support, and a fix for lockfile entries losing their platform data during upgrades.

Added

  • vfox: plugin-declared system dependencies. Source-compiling plugins (php, mysql, erlang, ...) often need build tools and libraries that previously showed up only as a failed ./configure twenty minutes into a build. vfox plugins can now declare these prerequisites in metadata.lua, and mise checks them before installing (#​10848 by @​jdx):

    PLUGIN.systemDependencies = {
        { bin = "bison", version = ">=3.0", packages = { brew = "bison", apt = "bison" } },
        { pkgconfig = "libxml-2.0", packages = { brew = "libxml2", apt = "libxml2-dev" } },
        { sharedlib = "libaio.so.1", packages = { apt = "libaio1" } },
    }

    Detection is the source of truth: a satisfied check passes regardless of how the capability was installed (Homebrew, apt, nix, from source), and the per-manager packages map is only used to offer installing the missing subset. A new system_deps setting controls behavior (prompt default, auto, warn, ignore); the check never fails an install. Missing deps also show up in mise doctor and mise bootstrap status. Declarations are inert on older mise versions and on upstream vfox.

  • brew: cask lifecycle hooks. Homebrew cask installs now run supported preflight and postflight hooks via a mise-owned, sha256-verified Ruby shim (no brew delegation), which fixes wrapper-style casks like GIMP. Unsupported hook DSL fails with an explicit error (#​10837 by @​jdx).

  • cli: terminal width override. In some CI environments width detection returns a bogus value and mise's table/list output (mise ls, mise registry, mise settings) renders oddly with no way to fix it. You can now override the detected width (#​10862 by @​JamBalaya56562):

    MISE_TERM_WIDTH=120 mise ls

    MISE_TERM_WIDTH takes precedence, with COLUMNS as a fallback. An explicit override is honored exactly (no 80-column floor); behavior is unchanged when neither is set.

Fixed

  • upgrade: mise upgrade --bump can rewrite more lockfile entries than the tools it actually installs. Those rewritten entries were previously reduced to bare version/backend records, losing their cross-platform checksums and URLs. mise now re-locks stale entries that are missing platform metadata, so tools like ruff, biome, and typos keep their full lock data (#​10752 by @​zeitlinger).
  • brew: casks whose binary is created by a pkg installer at an absolute path (e.g. karabiner-elements) now install correctly, staged through the caskroom as symlinks (#​10841 by @​jdx).
  • vfox: traditional vfox plugin downloads now go into mise's per-tool download directory so they are cleaned up after install (#​10840 by @​risu729).
  • brew: included the cask shim in the published crate, fixing a cargo publish verification failure (#​10863 by @​jdx).

Changed

  • registry: switched a large batch of tools to the vfox backend: scala, groovy, mongodb, emsdk, teleport-community, teleport-ent, tinytex, mysql, elasticsearch, v, spring-boot, php, clojure, oci, jib, graalvm, gcc-arm-none-eabi, and tiny.

Documentation

Full Changelog: jdx/mise@v2026.7.2...v2026.7.3

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

v2026.7.2: : Template and Extraction Fixes

Compare Source

This is a small bug-fix release focused on template compatibility, archive extraction, and a couple of tool-specific installs.

Fixed

  • config: restored the get_env template helper for Tera v2 templates, backed by mise's original process environment, so older templates keep working. Shared configs can also opt back into the temporary Tera v1 renderer with [env] MISE_TERA_V1 = true (which older mise versions safely ignore) (#​10830 by @​jdx):
    [env]
    MISE_TERA_V1 = "true"
  • config: deprecated settings that you set explicitly, via [settings] (including nested keys like aqua.registry_url), process env vars, or the MISE_TERA_V1 [env] shim, now produce proper deprecation warnings. Warnings are held until the logger is ready so they honor -q, --silent, and --log-level, and no longer fire spuriously for unrelated MISE_* values (#​10832 by @​jdx).
  • file: PAX GNU.sparse.* tar archives (such as the smolvm release tarballs) now extract correctly by falling back to the system tar when the built-in extractor can't safely unpack sparse content (#​10821 by @​JamBalaya56562).
  • registry: podman now installs with the expected podman binary name instead of podman-remote-static, removing the need for manual symlink workarounds (#​10822 by @​konono).
  • vfox: vfox plugin HTTP downloads now flush to disk before reporting success, fixing a race where freshly downloaded files could be read back as empty (#​10833 by @​jdx).
  • github: cached GitHub asset URLs with scoped release tags (e.g. Biome's @biomejs/biome@2.5.2) are now accepted, so mise no longer rejects otherwise-valid download URLs and falls back to the GitHub API (#​10750 by @​zeitlinger).

Full Changelog: jdx/mise@v2026.7.1...v2026.7.2

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

v2026.7.1: : Tera v2 Templates and Safer Pruning

Compare Source

Added

  • config: temporary tera_v1 / MISE_TERA_V1 escape hatch to keep rendering templates with the old Tera v1 engine after the upgrade to Tera v2 (scheduled for removal in 2027.4.0) #​10817
  • cargo: experimental cargo.binstall_native fast path that installs prebuilt native binaries from crate package.metadata.binstall when cargo-binstall is unavailable, falling back to cargo install on misses #​10789
  • bootstrap: start_calendar_interval support for macOS launchd agents, allowing calendar-based schedules (hour/minute/day/weekday/month) in addition to start_interval #​10797
  • npm: trust_policy_excludes install option for aube installs to exempt reviewed packages from trust-policy downgrade checks without disabling the policy globally #​10783

Fixed

  • config: upgraded to the Tera v2 template engine, with v1 compatibility filters restored, delayed v1 compat warnings, and the tera_v1 escape hatch for templates that still need the old behavior #​10756 #​10814 #​10815 #​10817
  • env: redaction wildcards are now matched as globs, fixing over-redaction where patterns like *_KEY scrubbed unrelated values from task output #​10729
  • env: resolve sops keys from the ordered env #​10786
  • env: resolve sub-*:latest requests offline during shell activation so already-installed versions are no longer reported as missing #​10802
  • prune: don't delete tool versions referenced by executed tool stubs; stubs are now tracked so mise prune and mise upgrade retain the versions they need #​10790
  • cli: --run-windows is now honored by task add and emitted as run_windows in the generated TOML #​10769
  • search: mise search now falls back to the built-in aqua registry when the mise registry has no match (e.g. mise search 7zip surfaces aqua:ip7z/7zip) #​10801
  • cargo: accept array syntax for features and warn on invalid feature array entries #​10810 #​10813
  • backend: accept native option shapes and arrays for list options #​10811 #​10812
  • install: normalize standalone binary ownership and avoid preserving archive owner on extraction #​10808 #​10819
  • system: extract suffixless brew cask zip archives #​10800
  • brew-cask: expand font target paths to handle $HOME and return relative paths #​10788
  • github: handle raw exe rename #​10798
  • git: sanitize repository env vars #​10776
  • lockfile: preserve header url while restoring asset host, and avoid provenance guesses for opaque tags #​10728 #​10722
  • oci: normalize apt/dpkg transient state for reproducible package layers #​10731
  • core: don't panic when stderr is unwritable #​10773
  • core: improve precompiled setting errors and clarify python precompiled triple errors #​10791 #​10793
  • logger: fix race between log redaction and config reset #​10785
  • nushell: resolve str upcase deprecation warning #​10778
  • task: show usage subcommand help #​10799
  • schema: support vars directives and allow tool alias versions #​10774 #​10712
  • vfox/http: create parent directories in download helpers #​10767
  • restore $LASTEXITCODE after _mise_hook #​10718

Documentation

Registry

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

v2026.7.0: : Shell expansion by default, monorepo lockfiles, and task usage mounts

[Compare Source](https://redirect.github.com/

Note

PR body was truncated to here.


Configuration

📅 Schedule: (in timezone America/Los_Angeles)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the bot label Jul 20, 2026
@renovate
renovate Bot force-pushed the renovate/jdx-mise-2026.x branch from 8527438 to d452ae6 Compare July 23, 2026 03:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants