chore(deps): update dependency jdx/mise to v2026#196
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/jdx-mise-2026.x
branch
from
July 26, 2026 06:33
73bfc05 to
58935c7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2025.12.13→2026.7.12v2026.7.14(+1)Release Notes
jdx/mise (jdx/mise)
v2026.7.12: : Safe mode, node-free npm, and a built-in OCI push clientCompare Source
This release centers on running mise safely against untrusted config, shipping node-free
npm:version resolution and installs, and replacing external tools (skopeo/crane, gpg) with built-in, dependency-free implementations. Along the way it fixes aprefer_offlinetimeout regression, several config/env correctness issues, and platform-specific problems on Windows and macOS.Highlights
MISE_SAFE=1mode turns mise into an inert config reader so automation (CI, Renovate) can runmise lock --bumpagainst untrusted branches without trust prompts or arbitrary code execution.npm:backend no longer needs node or npm installed to resolve or install packages — version metadata is fetched over HTTP and installs run in-process via the embedded aube package manager.mise oci pushgained a full built-in registry client: no more skopeo/crane, with blob dedup, chunked uploads, retries, cross-repo mounts, layer reuse from prior images, and multi-arch image indexes.Added
Safe mode: a new global-only
safesetting (MISE_SAFE=1) makes mise refuse or ignore anything that would let project config execute code or inject environment. Blocked (with errors): templateexec()/read_file(),_.source, hooks, tasks, asdf plugin scripts, and plugin installs. Ignored: project[env],_.path,_.file,[shell_alias], and[settings]. HTTP-based version resolution, lockfile refresh/bump, and already-installed/embedded plugins keep working. Because a config loaded this way is inert, safe mode also skips the trust requirement. (#11146, #11151 by @jdx)MISE_SAFE=1 mise lock --bump --dry-run --json # detect updates with zero code execution, no trust neededmise lock --bump: advance fuzzy lockfile selectors (latest,lts, prefixes like"20") to the newest matching remote versions without installing anything and without touchingmise.toml. Exact pins stay put. Pairs with--jsonand--dry-runfor a CI job that opens lockfile-only PRs. (#11145 by @jdx)Node-free
npm:backend:mise ls-remote npm:*andlatestresolution now query the npm registry directly over HTTP, and installs run in-process through the embedded aube package manager. node is only needed to run installed tools (and their lifecycle scripts), not to install them. User~/.npmrc, scoped registries, auth, andminimum_release_ageare honored. A newnpm.shell_outsetting (MISE_NPM_SHELL_OUT) routes both metadata and installs through the npm CLI for setups relying on npm-only config likecafileor client certs. (#11147, #11149 by @jdx)Built-in OCI registry client:
mise oci pushno longer requires skopeo or crane. It uses an in-tree OCI Distribution client that uploads only blobs the registry is missing, resolves credentials the way docker/podman do (docker login/podman loginis all the setup needed), and answers registry auth challenges so private base-image pulls via--fromalso work.mise oci run --engine dockernow streams the image intodocker loadinstead of needing skopeo. The--toolflag was removed. (#11132 by @jdx)OCI push robustness: large layers upload in 64 MiB chunks, transient failures retry with mise's standard backoff, base layers are mounted cross-repo (
?mount=) when they already live on the destination registry (zero bytes transferred), and pushes/pulls now show byte progress. A newoci.insecure_registriessetting opts non-loopback registries into plain HTTP. (#11141 by @jdx)OCI layer reuse:
mise oci pushreuses unchanged tool layers from the previously pushed image (or--cache-from REF), skipping the tar/gzip build entirely — reused tools don't even need to be installed locally.--no-cacheforces a full rebuild. (#11142 by @jdx)Multi-arch OCI images:
mise oci push --update-indexpoints a tag at an OCI image index and upserts the current platform while preserving entries pushed by other architectures, so one runner per arch can assemble a multi-arch tag. (#11144 by @jdx)Built-in signature verification: Node.js and Swift download signatures are now verified in-process with the pure-Rust rPGP crate against the bundled keyrings, dropping the external
gpgbinary dependency. Note: previously, ifgpgwas missing and the setting was unset, verification was silently skipped; now verification always runs when enabled — opt out withgpg_verify = false. (#11148 by @jdx)Relative bootstrap repo paths:
[bootstrap.repos]destination keys can now be relative paths, resolved against the declaring project's root (with guards preventing escape outside the project tree), making a project'smise.tomlportable across machines. (#11155 by @lilienblum)Fixed
mise lock,ls-remote,outdated, andupgradeno longer get capped to a single 3s no-retry attempt whenprefer_offlineis set — they honor the configuredfetch_remote_versions_timeoutand retry budget again, fixing spurious timeouts. Interactive fast paths keep their bounded behavior. (#11190 by @jdx)mise lockno longer prunes OS-restricted tool entries (e.g.os = ["macos"]) when run on a platform that doesn't target them, keeping shared lockfiles stable across platforms. (#11175 by @jdx)_.fileenv files now resolve references to variables defined in earlier files or[env]blocks instead of collapsing to empty, fixing flaky dotenv behavior. (#11158 by @Marukome0743)[env] _.sourcenow works on Windows by resolving a real POSIX bash (Git Bash / MSYS2, honoringMISE_BASH_PATH) instead of the WSL launcher or a missingbash.exe, and correctly filters MSYS runtime noise and converts prepended PATH entries back to Windows form. (#11097 by @JamBalaya56562)trusted_config_paths(MISE_TRUSTED_CONFIG_PATHS) now overrides configs previously added to the ignore list, so a settings-trusted config is actually discovered and loaded. (#11152 by @JamBalaya56562)env/varsarray parsing is now consistent — accidental array forms forvarsand taskenv/varsare rejected with clear errors, while the intentional[[env]]and directive-level arrays (_.source,_.file,_.path) remain supported. (#11060 by @risu729)mise config setno longer panics when descending into a non-table value. (#11153 by @Marukome0743)... is not trusted, run 'mise trust' to enable it) instead of the full error chain. Explicit commands still show the full trust error and prompt. (#11159 by @lilienblum)mise activate zshno longer hangs non-interactive login shells under Rosetta — a v2026.7.11 regression where env-state snapshotting autoloaded thezsh/parametermodule viadlopen. (#11188 by @jdx)yaak) and correct resolution of preflight-generated wrapper scripts on the extract stage (fixingvlc). (#11164 by @donbeave)/usr/localon arm64. (#11174 by @jdx)cmd.exeon Windows, fixing commands such as the Yarn 2+ install flow. (#11166 by @finalchild)linux-muslassets are now considered a fallback for Android/Termux when a package publishes no Android-specific asset, so tools like starship, bat, and hk can install there. (#10730 by @bltavares)Documentation
Breaking Changes
mise oci push --toolhas been removed. Usemise oci build -o ./imgfollowed byskopeo copyif you need the old escape hatch. (#11132)gpgis no longer required). If you relied on a missinggpgbinary to skip verification, setgpg_verify = falseexplicitly. (#11148)npm.use_npm_viewsetting is replaced bynpm.shell_out(MISE_NPM_SHELL_OUT). (#11149)New Contributors
Full Changelog: jdx/mise@v2026.7.11...v2026.7.12
💚 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.11: : Task Source Tracking and Activation SpeedupsCompare 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.
Added
config: structured tool definitions now accept
version,path,prefix, andrefselectors 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)Fixed
#MISEheaders parsed, so metadata liketools,description, andhideand 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)mise tasks --global, stay out of--local, and use the invoking project root. (#11106 by @risu729)mise tasks info, extended listings, task help, and the MCP tasks resource now report every configuration source contributing to a task, with a newconfig_sourcesarray in JSON output. Changing metadata in a TOML overlay now correctly invalidates the merged file task's cache. (#11098 by @risu729)mise --env <profile> watchnow propagates the selected environment to the watched task, so profile-specific tasks resolve correctly on each rerun. (#11114 by @Marukome0743)0755rather than0711), fixing "Could not open input file" errors for interpreters run by non-owner users. (#11135 by @jdx)mise latest java@<vendor>now prefers the base vendor variant over dashed specializations and sorts multi-feature vendor prefixes correctly. (#11109 by @roele)unit = "dotfiles-maintain"), which resolves todev.mise.<name>.service. Fully qualified names likenginx.serviceare still written verbatim. (#11128 by @jdx)auto_updatesare now accepted instead of failing with an unsupported-lifecycle error. (#11107 by @casparbreloh)defaultshandling now treats a missing key or domain as unset rather than erroring during initial setup. (#11118 by @roele)mise uninstallnow removes dangling runtime version pointer files (like16orlatest) and cleans up the now-empty tool directory. (#11095 by @JamBalaya56562)Performance
miseprocess on shell startup. (#11130, #11131, #11134 by @jdx)hdiutil/pkgutilwaits now run viablock_in_place, so parallel installs no longer starve download progress and other tasks of runtime threads. (#11136 by @jdx)Registry
@nubjs/nubpostinstall lifecycle script to run via the npm backend so upgrades keep the~/.nub/shimshardlinks 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.plugins]config andmise bootstrap plugins apply|statuscommands. Declared plugins install before built-in packages, then plugin-managed packages apply once host tools are available. (#11023, #11024 by @jdx)mise bootstrap repos updateandmise bootstrap repos execcommands. Unpinned[bootstrap.repos]entries are intentionally never pulled by declarative apply;repos updategives an explicit fetch + fast-forward path (with dry-run and path filtering), andrepos execruns a command across configured checkouts.mise bootstrap --updatenow also updates repos. (#11022 by @jdx)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)mise install tool@x.y.z, andmise x tool@x.y.z. (#11013 by @Turbo87, #11070 by @jdx)Fixed
prefer_offline. Shims, shell activation, andmise xmake one bounded attempt instead of grinding through full retry schedules per endpoint. (#11066 by @jdx)envdirective value aliases (#11062),env.misedirectives (#11053), and the experimental monorepo root key (#11052) are deprecated, and non-stringpostinstallhooks are rejected at parse time (#11061) (all by @risu729)mise prune --dry-runpreserves runtime symlinks (#11017) (all by @risu729)git@vshttps://remotes don't trigger spurious mismatches (#11034 by @jeremy); static systemd units no longer breakbootstrap status(#11056 by @jdx)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)falseinstall env values are treated as removals (#11033 by @risu729)deactivateno longer errors on empty array expansions underset -u(#11026 by @jdx)outputsetting (#11059 by @risu729)bootoutEIO for not-loaded agents is tolerated on macOS (#10965 by @hsbt)TZDIRis set so timezone tests pass in the sandbox build (#11019 by @coryzibell)Performance
mise versiondrops from 8.1ms to 6.6ms,hook-envfrom 10.9ms to 9.3ms. (#11025 by @jdx)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).Refactor
jdx-tar, removing the systemtarfallback and a duplicate tar implementation — consistent archive behavior across platforms (#11028 by @jdx)Registry
Documentation
execbehavior in dry runs (#11018 by @risu729)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 reliabilityCompare 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 --monoreporuns dependency providers across every explicitly configured[monorepo].config_rootsentry, aligned withmise 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. Plainmise depsremains scoped to the current config root. (#10975 by @jdx)bootstrap: manage systemd user timers alongside services via
[bootstrap.linux.systemd.units]. Timer entries render to.timerunits with scheduling (on_boot_sec,on_unit_active_sec,on_unit_inactive_sec,on_calendar), persistence, andtimers.targetlinkage. Services gain optional directives includingtype,remain_after_exit,exec_stop, start/stop timeouts,no_new_privileges, andprivate_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
mise cache clearno longer fails withDirectoryNotEmptywhen 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).apk,.deb,.rpm, DMG/PKG, MSI/MSIX/AppX and sidecars) during automatic asset selection for thegithub:,gitlab:, andforgejo:backends, so releases containing only unsupported packages now report that no platform asset matches instead of installing an unusable file. Explicitasset_patternand URL selection are unchanged. (#11001 by @risu729)falseoverrides forrosetta2,windows_arm_emulation, andno_asset, so a version or platform override can disable inherited emulation or asset flags instead of being treated as omitted. (#11002 by @risu729).gitURL 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)Array#second,#third,#fourth, and#fifthhelpers to the cask shim, fixing casks (such as OrbStack) that referenceversion.csv.second. (#10992 by @casparbreloh)status.show_envoutput now respects thestatus.truncatesetting instead of always truncating. (#10983 by @ytjmt)bootstrap.macos.launchd.agents.<name>.start_calendar_intervalto 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 outputCompare Source
Added
outputstyle field, decoupled from verbosity, so styles likeprefixand quietness combine freely #10885[settings.sandbox]deny defaults (deny_all,deny_read,deny_write,deny_net,deny_env) #10940[bootstrap.packages]on Linux #10951mise oci build --copy HOST_PATH:IMAGE_PATHand[[oci.copy]]#10952mise doctornow warns when a mise shim is shadowed by an earlier executable inPATH#10919github_contentandgithub_archivepackages via authenticated GitHub API endpoints #10915timeoutvalues now render Tera templates #10959http_download_timeoutsetting caps total download wall-clock time (default 30 minutes) #10920Fixed
nightly) when the installed content is outdated #10827minimum_release_ageis configured #10973os,depends,install_env) #10958usage_*variables per invocation so nested tasks don't inherit stale parser output #10963includesdirectory when editing/adding file tasks #10955language,on_system_conditional) and reuse existing Ruby #10950bin/rename_exeas install-time options #10925podman-remote#10826Changed
cargo.binstall_quickinstall = true#10923Performance
Documentation
Breaking Changes
--quiet/quiet = true/MISE_QUIET=1no longer collapse task output to un-prefixed interleave; they now preserve the resolved style. Use--output quiet(or-o interleave) for the old behavior #10885usage_*variables are now invocation-local; workflows that injected them as implicit inputs must declare an input withenv=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 SupportCompare Source
This release makes config trust smarter across git worktrees and monorepos, and fixes npm-backed tools on npm 12.
Added
git worktree addcheckout 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--ignorestill wins, and paranoid mode is excluded since its trust is tied to per-file content hashes.mise untrustinside a worktree now warns that the main checkout still trusts the config (#10890 by @jdx).mise trust --allnow trusts nested subdirectory configs. Previously--allonly 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 skipsnode_modules,vendor,target,dist, andbuildso 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 view --jsonresponses 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 missingtimemetadata (#10888 by @jdx).Changed
codexshorthand now prefersnpm:@​openai/codexover the aqua GitHub asset. The aqua asset for recent releases shipped only the maincodexbinary and omittedcodex-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 stableCompare Source
This release graduates
mise bootstrapandmise dotfilesout of experimental mode, teachesmise installto reconcile Rust components and targets, and restores Linux arm64 glibc compatibility for release builds.Added
mise bootstrapand all of its subcommands (packages, repos, macOS/Linux user services, shell activation, login shell) plusmise dotfilesno longer require experimental mode, so they work withMISE_EXPERIMENTAL=0. The relatedmise doctordiagnostics (system packages, macOS defaults, login-shell drift) and the missing[bootstrap.packages]hint onmise installare always on as well (#10869 by @jdx).mise.runinstall script. SettingMISE_INSTALL_SKIP_IF_EXISTSavoids 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 shPATH), and default behavior is unchanged unless you opt in.Fixed
componentsandtargetsare actually installed before skipping an install, somise installreconciles 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_source_files()is once again available when a task definesusageargs and its run script is re-rendered with parsed CLI values (#10870 by @jdx).mise upgrade --minimum-release-ageno longer prints a misleading "newer release ignored" warning when the installed version already satisfies the hidden latest release (#10877 by @jdx).aarch64-unknown-linux-gnucross 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
Changed
vfox:mise-plugins/vfox-scalafork; theasdf:mise-plugins/mise-scalafallback is unchanged (#10864 by @jdx).Documentation
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 hooksCompare 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
./configuretwenty minutes into a build. vfox plugins can now declare these prerequisites inmetadata.lua, and mise checks them before installing (#10848 by @jdx):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
packagesmap is only used to offer installing the missing subset. A newsystem_depssetting controls behavior (promptdefault,auto,warn,ignore); the check never fails an install. Missing deps also show up inmise doctorandmise bootstrap status. Declarations are inert on older mise versions and on upstream vfox.brew: cask lifecycle hooks. Homebrew cask installs now run supported
preflightandpostflighthooks via a mise-owned, sha256-verified Ruby shim (nobrewdelegation), 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 ret
Configuration
📅 Schedule: (in timezone Europe/Oslo)
🚦 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.
This PR was generated by Mend Renovate. View the repository job log.