fix(cli-tools): update cli-tools#780
Merged
ppat-self-hosted-renovate-bot[bot] merged 2 commits intomainfrom Mar 22, 2026
Merged
fix(cli-tools): update cli-tools#780ppat-self-hosted-renovate-bot[bot] merged 2 commits intomainfrom
ppat-self-hosted-renovate-bot[bot] merged 2 commits intomainfrom
Conversation
f056a9d to
1dd4a00
Compare
c8d4e37 to
ec24d0a
Compare
130a841 to
5bbf0a6
Compare
Contributor
|
🎉 This PR is included in version 2.22.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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:
v2026.3.3->v2026.3.9v2026.3.10v2.69.4->v2.70.0Release Notes
jdx/mise (jdx/mise)
v2026.3.9: : Shared install directories, secret redaction, and better Ctrl-C handlingCompare Source
This release introduces experimental shared install directories for multi-user environments, improves secret redaction in
mise setand task output, and fixes several issues with Ctrl-C handling, tool auto-installation before prepare steps, and aquasymlink_binsbehavior.Highlights
/usr/local/share/mise/installs(or a custom path) so all users on a machine or in a container can share them without re-downloading. Ideal for Docker images, devcontainers, and bastion hosts.mise set-- Environment variables markedredact = trueor matchingredactionspatterns are now hidden inmise setoutput by default, with--no-redactto override.releases/latestAPI endpoint directly instead of paginating through all releases, which is significantly faster for repositories with many pre-releases.Added
[experimental] Shared and system install directories --
mise install --systeminstalls tools to/usr/local/share/mise/installs(orMISE_SYSTEM_DATA_DIR/installs), where every user's mise instance will find them automatically.mise install --shared <path>installs to a custom shared directory. Additional read-only lookup directories can be configured via theshared_install_dirssetting orMISE_SHARED_INSTALL_DIRS(colon-separated). Shared versions appear inmise lswith(system)or(shared)labels. See the updated Docker cookbook for usage examples. #8581 by @jdxGitHub backend uses
releases/latestendpoint -- Resolving the latest stable version for GitHub-hosted tools now calls the dedicatedreleases/latestAPI endpoint instead of paginating through all releases. This is especially helpful for repositories with many pre-releases (e.g.unikraft/kraftkit) where the old approach required fetching multiple pages. Falls back to the previous behavior if the endpoint fails or the result doesn't match a configuredversion_prefix. #8516 by @roelevfox tool plugins record provenance in lockfiles --
mise lockandmise installnow record and enforce supply-chain provenance (GitHub Attestations, SLSA, Cosign) for vfox tool plugins, bringing them to parity with aqua and github backends for downgrade-attack detection. #8544 by @maleptFixed
mise setnow redacts secrets by default -- Values withredact = trueor matchingredactionsglob patterns are shown as[redacted]inmise setoutput. Age-encrypted values default to redacted unless explicitlyredact = false. Use--no-redactto reveal raw values. Task-specific env vars fromenv._.fileor task-levelredact = trueare also now properly redacted inmise runoutput. #8583 by @jdxAqua
symlink_binsnow works for packages without afilesfield -- When an aqua registry entry has nofilesfield,symlink_bins = truepreviously left.mise-binsempty, making the tool invisible on PATH. Now the inferred main binary is included in the symlink directory, matching the existing install-time fallback logic. #8550 by @AlexanderTheGreyCtrl-C reliably interrupts tool downloads during
mise run-- Previously,mise rundisabled Ctrl-C exit handling before tool installation began, so pressing Ctrl-C during a download was silently ignored. Now Ctrl-C exits immediately during downloads, and during task execution the first Ctrl-C kills child processes while a second Ctrl-C force-exits mise. #8571 by @jdxFile task headers now allow spaces around
=-- Task header lines like#MISE env._.file = "env.yaml"(with spaces around=) are now parsed correctly. Previously only#MISE env._.file="env.yaml"(no spaces) was recognized. #8574 by @roelemise prepareinstalls config tools before running prepare steps -- On clean machines, prepare steps that depend on tools declared in[tools](e.g.uv) would fail because the tools hadn't been installed yet. Now bothmise prepareandmise runinstall all configured tools before executing prepare commands. #8582 by @jdxChanged
MISE_SYSTEM_DIRhas been renamed toMISE_SYSTEM_CONFIG_DIRfor clarity alongside the newMISE_SYSTEM_DATA_DIR. The old name is still supported as a legacy alias. #8581New Contributors
Full Changelog: jdx/mise@v2026.3.8...v2026.3.9
v2026.3.8: : Wrapper recursion fix and lockfile provenance correctionCompare Source
A small patch release that fixes infinite recursion in
mise execwhen wrapper scripts and shims coexist in PATH, and corrects lockfile provenance detection for aqua tools with opts-only cosign configurations.Fixed
mise execno longer infinite-loops when wrapper scripts and shims are both in PATH -- In devcontainer setups (and similar environments), a wrapper script like.devcontainer/bin/gitleaksthat callsmise x -- gitleakswould resolve back to itself instead of the real binary when the wrapper directory appeared before the shims directory in PATH. This caused infinite recursion until the environment exceeded ARG_MAX, producing confusing errors. The fix reorders the internal lookup PATH so that mise-managed tool bin directories are checked before system PATH entries, ensuring the real binary is always found first. The child process still inherits the full unmodified PATH. #8560 by @jdxLockfile no longer records unverifiable cosign provenance for opts-only aqua tools -- Tools like
yamlfmt,trufflehog, andtflintconfigure cosign in the aqua registry with only CLI opts (e.g.--certificate-identity) but nokeyorbundleconfig.mise lockwas recordingprovenance = "cosign"for these tools, butmise installcan only verify cosign natively via key-based or bundle-based flows, causing "Lockfile requires cosign provenance ... but no verification was used" errors on install. Now cosign provenance is only recorded when the tool has a key or bundle config that can actually be verified. #8559 by @jdxAdded
turboadded to the registry -- Turborepo, the high-performance build system for JavaScript and TypeScript codebases, can now be installed viamise use turbo. #8553 by @igasworkmuxadded to the registry -- workmux, a tool for git worktrees + tmux windows for zero-friction parallel development, can now be installed viamise use workmux. #8555 by @ifraixedesNew Contributors
Full Changelog: jdx/mise@v2026.3.7...v2026.3.8
v2026.3.7: : Cleaner conda PATH handlingCompare Source
A small patch release that fixes conda packages polluting PATH with dozens of transitive dependency binaries.
Fixed
conda:postgresqlwould previously add every binary from every transitive dependency to PATH. For example,conda:postgresqlexposed 106 binaries including ncurses utilities (clear,reset,tput,tabs), openldap commands (ldapadd), and krb5 tools (kinit) -- all of which could shadow standard system commands. Now only binaries belonging to the main requested package are placed on PATH (e.g.,psql,pg_dump,createdb,initdb,pg_ctl,postgres, etc.). Dependency binaries remain installed and available to packages that need them internally, but are no longer visible on PATH. No user configuration is needed -- this is automatic for all new conda installs, and existing installs gracefully fall back to the previous behavior. #8543 by @simonepriNew Contributors
Full Changelog: jdx/mise@v2026.3.6...v2026.3.7
v2026.3.6: : Per-environment lockfiles, Windows fixes, and fork bomb preventionCompare Source
This release redesigns environment-specific lockfiles for better CI isolation, fixes a critical fork bomb caused by shim recursion in
go:backend tools, and addresses several Windows-specific issues including locked.exeshims andenv._.sourcesupport.Highlights
envtag system, somise.test.tomlnow generatesmise.test.lockinstead of tagging entries in a sharedmise.lock. This means CI caches are no longer invalidated by dev-only tool changes.go:backend tools are configured alongside an uninstalled Go version in shims mode..exeshim handling gracefully renames locked shim executables instead of failing with "Access is denied" during reshim.Changed
Lockfiles are now per-environment -- Environment-specific configs now get their own lockfiles (
mise.test.toml->mise.test.lock,mise.local.toml->mise.local.lock) instead of usingenv = ["test"]tags in a singlemise.lock. This improves CI cache isolation -- environments that don't setMISE_ENVonly depend onmise.lock, so dev tool version bumps won't invalidate CI caches. Old lockfiles withenvfields are silently accepted and migrated on the nextmise lock. #8523 by @jdxmise.tomlmise.lockmise.test.tomlmise.test.lockmise.local.tomlmise.local.locktouch_outputsremoved from prepare providers -- Thetouch_outputsconfiguration option has been removed from prepare providers. Freshness checking now uses blake3 content hashing exclusively, so touching output modification times is no longer necessary. #8535 by @jdxFixed
Fork bomb when using
go:backend tools in shims mode -- When ago:backend tool (e.g.,go:github.com/pulumi/upgrade-provider) was configured alongside a Go version that wasn't installed, and the version cache was cleared, mise could enter infinite shim recursion -- the Go shim would callmise exec, which would resolve thego:backend, which would callgo listvia the shim, and so on. The fix strips mise's shims directory from the PATH independency_env, ensuring dependency tools either resolve to a real installed binary or fail cleanly. This applies to all backends that use dependency environments (go,npm,gem,dotnet,spm,elixir). #8475 by @poseLocked
.exeshims on Windows during reshim --mise reshimwould fail with "Access is denied" on Windows when.exeshims were locked by running processes. The fix removes shims individually (instead of wiping the entire directory) and uses a rename-to-.oldfallback for locked files, which Windows allows even when the file is in use. The.oldfiles are cleaned up on the next reshim. #8517 by @davireisenv._.sourcenow works on Windows --env._.sourcewould fail on Windows because it searched forbashwithout the.exeextension. The Windows API executable search now correctly looks forbash.exe. #8520 by @pjebyGitHub
@latestversion resolution -- Thegithub:backend would fail with a 404 when using@latestbecause it constructed/releases/tags/latestinstead of using GitHub's/releases/latestAPI endpoint. This was a regression introduced in v2026.3.5. #8532 by @jdxFish shell shim PATH ordering on re-source -- When
config.fishis re-sourced (e.g., in VS Code integrated terminals),mise activate fish --shimsnow correctly moves shims to the front of PATH usingfish_add_path --global --move, instead of silently skipping them because they were already present. Other shells are unaffected. #8534 by @jdxTask output prefix disambiguation -- When running the same task multiple times with different arguments (e.g.,
mise run greet alice ::: greet bob), output prefixes now include the arguments to distinguish runs ([greet alice]vs[greet bob]). Arguments are only included when disambiguation is needed; single-instance tasks keep clean prefixes. Long prefixes are truncated to 40 characters. #8533, #8536 by @jdxNon-MRI Ruby on Windows -- Requesting non-MRI Ruby engines (jruby, truffleruby, etc.) on Windows now fails early with a clear error message explaining that only standard MRI Ruby is supported via RubyInstaller2, instead of producing a confusing 404 from an invalid download URL. #8539 by @jdx
Added
tigerbeetle(github:tigerbeetle/tigerbeetle) to the tool registry. #8514 by @risu729Breaking Changes
envtags withinmise.lockfor environment-specific version pinning, runningmise lockwill migrate to the new format automatically, creating separatemise.<env>.lockfiles. Make sure to commit the new lockfiles and update your.gitignoreif needed formise.<env>.local.lockfiles.touch_outputsremoved: If you were usingtouch_outputsin prepare provider configuration, that field is no longer recognized. Freshness is now determined entirely by blake3 hashing of source files.New Contributors
Full Changelog: jdx/mise@v2026.3.5...v2026.3.6
v2026.3.5: : Provenance tracking in lockfiles and task deduplication fixCompare Source
This release adds supply-chain security improvements by recording provenance verification results in lockfiles, exposes libc variant detection to vfox plugins, and fixes several bugs including duplicate task execution, offline mode hangs, and Windows binary identification.
Highlights
run = [{ task }].mise env,hook-env,activate, andexecfrom hanging when resolving"latest"versions behind private registries.Added
Provenance verification results stored in lockfiles --
mise locknow records which provenance mechanism (SLSA, GitHub attestations, cosign, or minisign) was used to verify each tool per platform. On subsequent installs, mise refuses to proceed if the recorded verification mechanism is disabled or unavailable, protecting against downgrade/stripping attacks. The lockfile format also changes from inline tables to dotted-key subtables for platform entries, improving readability. Existing lockfiles remain backwards-compatible and will be updated on the nextmise lock. #8495 by @jdxRUNTIME.envTypefor vfox plugins -- Vfox Lua plugins can now checkRUNTIME.envTypeto determine the libc variant at runtime ("gnu"for glibc,"musl"for musl Linux,nilon non-Linux). This lets plugins select the correct binary variant for the host system. #8493 by @maleptRegistry:
portless-- Addedportless(npm:portless) to the tool registry. #8508 by @risu729Fixed
Shared dependency tasks no longer run multiple times with task delegation -- When a task uses
run = [{ task }]to delegate, the sub-graph now inherits knowledge of tasks already completed in the parent graph, preventing shared dependencies from executing more than once. #8497 by @vadimpiven"latest"version no longer triggers network calls in prefer-offline mode --mise env,hook-env,activate, andexecwithprefer_offlineenabled would still make a remote call to resolve"latest"versions (e.g.,npm:pkg = "latest"). If the registry held the connection open waiting for credentials, mise would hang indefinitely. This is now skipped, matching the existing offline guard for fully-qualified versions. #8500 by @jdxWindows: mise binary correctly identified without
.exeextension -- On Windows,argv[0]can resolve tomise(without.exe),mise.bat, ormise.cmd, all of which were incorrectly treated as shims. This causedmise --helpandmise --versionto silently fail in some environments (e.g., conda-forge CI). A unifiedis_mise_binary()helper now handles all these variants. #8503 by @jdx, with credit to @salim-b for identifying the issue in #8496Full Changelog: jdx/mise@v2026.3.4...v2026.3.5
v2026.3.4: : Runtime musl detection, interactive tasks, and platform install fixesCompare Source
A feature-rich release that adds runtime musl/glibc detection for correct binary selection on Linux, a new
interactivetask field for exclusive terminal access, and several important fixes for platform-specific tool installation, the standalone installer, and Ruby precompiled binary discovery.Highlights
interactivetask field provides a targeted way to give a task exclusive terminal access without forcing all tasks to run sequentially.MISE_INSTALL_PATHpoints to an existing directory.Added
interactivefield for tasks -- Mark a task withinteractive = trueto give it exclusive terminal access (stdin/stdout/stderr) while other non-interactive tasks continue running in parallel. This is a more targeted alternative toraw = true, which forcesjobs=1globally --interactiveonly blocks concurrent tasks while the interactive task is actively running. #8491 by @jdxRuntime musl/glibc detection for correct libc variant selection -- mise now detects musl libc at runtime (by checking for
/lib/ld-musl-*) instead of using compile-time configuration. This means a musl-built mise running on a glibc system (or vice versa) will correctly select the right binary variant. Lockfiles now include separate entries forlinux-x64-muslandlinux-arm64-muslplatforms. Existing lockfiles without musl entries continue to work and will be updated on the nextmise lock. #8490 by @jdxHeader comment in generated lockfiles --
mise.lockfiles now include a@generatedheader comment, making it clear the file is auto-generated and should not be edited manually. #8481 by @ivyPreserve
.exeextensions on Windows -- The github, gitlab, forgejo, and http backends now automatically keep executable extensions (.exe,.bat,.cmd) when usingbinorrename_exeoptions on Windows, fixing tools like yt-dlp that were broken by extension stripping. #8424 by @ikiFixed
Registry platform options now applied during install -- Platform-specific options like
asset_patterndefined in the tool registry were silently ignored during installation because nested TOML structures were flattened to strings. This caused tools like flyway to select the wrong asset (e.g., alpine instead of linux-x64). #8492 by @jdxTool opts stored as native TOML to fix platform switching -- Switching an
http:tool from a single URL to platform-specific URLs ([tools."http:X".platforms]) could fail because cached options in.mise-installs.tomlwere mangled during round-tripping. Options are now stored as proper TOML fields with automatic migration of old manifests. #8448 by @jdxInstaller errors if
MISE_INSTALL_PATHis a directory -- SettingMISE_INSTALL_PATHto an existing directory (e.g.,~/tmpinstead of~/tmp/mise) caused the installer torm -rfthat directory, potentially deleting important files. The installer now detects this and exits with a clear error message suggesting a file path. #8468 by @jdxPrepare sources/outputs resolve relative to
dir-- When a prepare provider setsdir, relative source and output paths now correctly resolve againstproject_root/dirinstead of justproject_root. This fixes freshness tracking in monorepo setups where prepare providers target subdirectories. #8472 by @jdxRuby precompiled binary lookup for older versions -- Precompiled Ruby discovery used paginated release listing (first page only), so versions beyond the first 30 releases (like Ruby 3.2.2) silently fell back to compiling from source. The lookup now fetches the specific release by tag directly. #8488 by @jdx
JSON schema supports structured objects in task depends -- The JSON schema for
depends,depends_post, andwait_fornow correctly accepts the structured{ task, args?, env? }object syntax that the runtime already supported, fixing IDE validation errors. #8463 by @risu729Broken pipe no longer panics in task output -- Task output macros used
println!/eprintln!which panic on broken pipes (e.g., when piping mise output tohead). Replaced withcalm_ioequivalents that gracefully handle closed stdout/stderr. #8485 by @vmalezeScoped npm package names no longer panic -- Using
@scope/pkg(e.g.,@anthropic-ai/claude-code) without thenpm:backend prefix caused an internal panic. The parser now correctly treats the leading@as part of the package name and provides a proper error message. #8477 by @jdxNew Contributors
Full Changelog: jdx/mise@v2026.3.3...v2026.3.4
twpayne/chezmoi (twpayne/chezmoi)
v2.70.0Compare Source
Changelog
Features
c827252feat: Support multiple externals to same target in one .chezmoiexternal filed210129feat: Add podman as an alias for docker commandFixes
44f73d3fix: Adding exact subdir won't add exact parentDocumentation
1499bfcdocs: Clarify that edit --apply command does not apply scripts883fe13docs: Add new articles on using chezmoi with coding agent configuration0bd0e48docs: Add am package manager installation instructions7ef5efedocs: Add link to github.com/daptify14/chezit767015adocs: Add links to articles8e1b652docs: Add link to article6f3e1dbdocs: Add link to podcast910481edocs: Add links to articlesConfiguration
📅 Schedule: Branch creation - "before 10am on Tuesday" in timezone US/Eastern, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.