Repository navigation
test(deps): update dependency mise to v2026.10.19 (main) - #7991
Merged
Merged
Conversation
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:
2026.10.18→2026.10.19Release Notes
jdx/mise (mise)
v2026.10.19: : Security hardening across trust, installs and provenance; lockfiles now rebuilt completely by defaultCompare Source
Most of this release closes ways an untrusted repository, download host or mirror could run code, leak credentials or get around verification. Some of these fixes make mise stricter, so check Breaking Changes before you upgrade. Also in this release:
lockfile_mode = "generate"is now the default,mise lspsends semantic highlighting, and there is a new{{ mise_config_dir }}template variable.Highlights
Added
{{ mise_config_dir }}template variable. It resolves to the config directory mise itself uses:MISE_CONFIG_DIR, or elsexdg_config_home+/mise. It is available whereverxdg_config_homeis: config templates,.miserc.tomland settings paths. This is useful for dotfiles variants that link intoconf.d. #14886 (@jdx, @ponko2)Semantic highlighting in
mise lsp. Editors can now color task names, tools, env vars,[vars]keys,_.directives,{{ }}/{% %}/{# #}template delimiters and deprecated keys inmise.toml. To turn it off, pass{"semanticTokens": false}ininitializationOptions. #14918 (@jdx)extract_max_ratiosetting (global only). It caps how far an archive may expand during extraction. See Security below. #14915 (@jdx)github.enterprise_hostssetting (global only,MISE_GITHUB_ENTERPRISE_HOSTS). It lists the GitHub Enterprise hosts that receive the GitHub token on/api/v3URLs over https. #14913 (@jdx)New vfox attestation fields
slsa_source_repositoryandslsa_source_tag. Plugins can use them to pin the repository and tag that SLSA provenance must come from. #14904, #14924 (@jdx)Changed
lockfile_mode = "generate"is now the default. Installs now rebuildmise.lockfrom the current requests, reuse unchanged entries and also lock the other platforms. A lockfile committed from one machine therefore no longer failsmise install --lockedon another platform because of missing entries. Neither mode creates a lockfile (usemise lockorlockfile = true), and the lockfile format is unchanged. To keep the previous behavior, setlockfile_mode = "merge"orMISE_LOCKFILE_MODE=merge. #14893 (@jdx)Security
Trust and safe mode
Several actions no longer count as consent to trust a project: printing
mise run --help/mise watch --help, running a shim, a hook startingmise run, an MCP call, ormise set/unset/tasks addsaving config. Config writes now ask before they trust an untrusted sibling config. A task counts as trusted only if every config that adds to it is trusted. The MCP server refuses untrusted file tasks, task names that look like file paths, and inline tool options. #14903 (@jdx)Trust now stays with the files you trusted. A forged git worktree, a symlink to your global config, a clone named
.mise, or a project.miserc.tomlcan no longer borrow trust or hide global config. In paranoid mode, idiomatic version files, each local task file and project-named aqua registries need trust of their own. Remote git includes pinned to a commit SHA must check out exactly that commit. #14902 (@jdx)Safe mode (
MISE_SAFE=1) now also blocks:[deps],path:versions and spminstall_command;envand filesystem helpers in project templates.In every mode, a project
.miserc.tomlgets a restricted, size-limited template language, andbin_pathmust stay inside the tool's install directory. #14900 (@jdx)Pressing TAB no longer runs untrusted task code. The dynamic completers (
complete run=,complete delegate=,choices run=,mount) only run for trusted config. mise's own completers quote typed words, and control characters are removed from candidates. Quoting for fish and PowerShell is also fixed. #14898 (@jdx)Hook commands are now rendered once, when they load. Before, a directory name containing
{{ exec(...) }}could run code from acdhook. A project'senter,leaveandwatch_fileshooks now start in the project root.mise use,mise upgrade --bumpand every other writer refuse to write a version containing template syntax, and a rewritten option keeps its{{ env.X }}template instead of the rendered secret. #14897 (@jdx)cd-ing into a hostile repository can no longer hang or crashhook-envor make mise print files from outside the repo. Causes this covers include configs linked to devices, symlink mazes in task directories, non-UTF-8 paths, oversized files, glob characters in paths, and version files that link to another file. #14916 (@jdx)Install verification
A checksum pinned in
mise.lockis now enforced for erlang, npm, spm and http instead of being replaced or skipped. If Node'sSHASUMS256.txt.sigis missing, the install fails. bun and deno check the publisher's sha256 when there is no lock entry. A locked node or spm artifact that returns 404 no longer silently falls back to a source build. #14899 (@jdx)SLSA, attestation and signed-checksum checks now fail closed:
slsa_signer_*pins require provenance;mise lockruns the cosign, minisign and SLSA checks that aqua recipes declare;attestations_since.#14908 (@jdx)
The SLSA signing run must come from the workflow's repository or the tool's own repository. Attestations must name the requested repository. Public-good bundles without a Rekor entry are rejected. #14904 (@jdx)
SLSA provenance built from a different tag is now rejected, so a mirror can't serve an older release's genuine artifact and provenance as a newer version. #14924 (@jdx)
packslip signer pins are checked by repository ID, including
workflowpins. Backdated GitLabreleased_atdates and bundles with no transparency-log time can no longer get aroundminimum_release_age. #14912 (@jdx)Paths, subprocesses and resource limits
Release asset names must be plain file names. Archives from the github, http, aqua, cargo-binstall, packslip and vfox backends may not contain symlinks that point outside the install directory. #14895 (@jdx)
Resolved versions, plugin names and task stub names are checked before they become paths or URL segments. A remote version containing
.., quotes,$or a leading-now fails as an invalid tool version. #14901 (@jdx)Git lookups, build tools (ruby-build, python-build,
cargo install,gem install) and npm now run outside the project directory, so the repo's.git/configand other project files can't change what they do. Untrusted values are kept out of their command-line arguments. In safe mode, asdfexec-envis refused. #14896 (@jdx)Committed symlinks around lockfiles, tool stubs and the remote task cache can no longer make mise read, write or delete files outside the repo. An untrusted lockfile still pins versions and checksums, but it can no longer switch a tool's backend, add inline options or supply download URLs. #14906 (@jdx)
The task sandbox has fewer escapes:
--allow-writerefuses project symlinks that lead outside the project;--deny-netalso blocks other socket families, io_uring and x32 syscalls;allow_writeblocks all writes instead of turning the sandbox off;/usr/bin/sandbox-exec;#14911 (@jdx)
HTTP response bodies are capped at 128 MiB, and slow bodies are bounded by
http_download_timeout. Downloads are saved exactly as sent. Archive extraction stops once the output exceeds both 256 MiB and 100 times the download size (extract_max_ratio). #14915 (@jdx)Credentials
api_url, not to any host that serves/api/v3. Release caches are keyed by the exact repository. A download that fails its pinned checksum is not kept. A project can no longer mark a taskglobal. In safe mode, remote task files from project config are not fetched. #14913 (@jdx)mise.lock,Refererheaders, logs and error messages. Age keys and Forgejo tokens are redacted inmise doctor,mise settingsandmise tool. Shebang task scripts are readable only by their owner, and multi-line secrets are redacted in task output. #14917 (@jdx)Fixed
uv_venv_autocould fork-bomb the machine when uv probed mise's python shims while creating a venv. mise now skips venv creation when it is started from inside that venv creation. #14927 (@jdx)minimum_release_ageset,mise upgradeno longer downgrades tools that use date versions with leading zeros (for example2026.10.21to2026.08.19). #14923 (@jdx)extendsa task template now use the template'susagespec, so its flags show in-hand are accepted. #14888 (@jdx)mise tasks add --filenow quotes and escapes#MISEheader values. Before,--dirand values containing quotes produced invalid TOML that broke the nextmise run. #14925 (@xucian)mise uninstallcan now remove installs whose directories deny their owner write access, such as read-only0555runtime trees. #14883 (@HengYangDS)pypi:tool with a privategit+ssh://github.com source now lists versions throughgit ls-remoteover SSH when GitHub can't see the repository. #14905 (@jdx, @owpac)Breaking Changes
Most setups need no changes. Check these cases:
mise.lockingeneratemode. To keep the old behavior, setlockfile_mode = "merge".mise set/unset/tasks addin a directory with an untrusted sibling config now ask for trust, or fail without a terminal. A project that has only amise-tasks/directory needsmise trust .before its dynamic task completions work. In paranoid mode, runmise trust <file>once for each existing task file.git worktree repairbefore it shares trust again. A remote include pinned to an annotated tag's object ID must pin the commit SHA instead. Your own~/.miserc.tomlcan no longer ignore the global config..miserc.toml: templates that readenvor use loops or functions other thanarch(),os(),os_family(),libc(),avx2()andnum_cpus()are no longer rendered. Move them to the global.miserc.toml.defaultnow fail to render. Projects that point at a private forge or a netrc-protected server can no longer list versions there..sigfiles, and early releases without one (for example 4.0.0 and 5.12.0), neednode.gpg_verify = false.github:tool that setsslsa_signer_identitybut builds from a branch instead of a tag no longer verifies. A lock entry that has a checksum but no provenance installs on the checksum alone; re-runmise lockor setlocked_verify_provenance.mise packslip forget <tool>.http:tools, aqua packages and remote tasks on/api/v3URLs no longer get the GitHub token automatically. Add the host togithub.enterprise_hostsin global config, or setapi_url.mise lockrefuses URLs whose query has a credential-like parameter. Useheadersor netrc instead. Tools installed under a directory name that contained credentials are reinstalled under a clean name.--deny-write/allow_writesandboxes no longer start on Linux before 6.2. Programs that need io_uring no longer run under--deny-net. To allow writes through a project symlink that points outside the project, name its target instead.extract_max_ratio, or0to turn the check off.enter,leaveandwatch_fileshooks now start in the project root. Use$MISE_PROJECT_ROOTif a hook needs the root explicitly.MISE_OVERRIDE_*_FILENAMESentries are matched as literal file names;.tool-versionsor idiomatic version file that links to a file with a different name is skipped;go.reporesolves from$HOME;OWNER/REPOpassed tobootstrap --adoptthat matches a local path is an error (write./OWNER/REPOfor the local path).New Contributors
Full Changelog: jdx/mise@v2026.10.18...v2026.10.19
💚 Sponsor mise
mise is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If mise saves you or your team time, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep mise fast, free, and independent.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ 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.