Improved performance of computed style reads, selector matching, CSS variable substitution, CSS shorthand updates, and focus handling on pages with many style rules. (@scttcper)
Improved performance when building detached DOM trees and reading node.isConnected. (@scttcper)
Fixed element.tabIndex handling of invalid and out-of-range tabindex="" values to use the element's default instead of returning zero or wrapping. Values with trailing non-digits now use their leading integer, so tabindex="1e2" yields 1 instead of 100. (@rome-xi)
Fixed CSS ident() results containing spaces or leading digits losing their required escaping during serialization and variable substitution. (@scttcper)
Fixed 'max-lines' values combining an integer and auto to serialize with the integer first, such as 3 auto.
nodejs/node (node)
v25.9.0: 2026-04-01, Version 25.9.0 (Current), @aduh95
MockModuleOptions.defaultExport and MockModuleOptions.namedExports have been
consolidated into a single option MockModuleOptions.exports to align with user
expectations and other test runners.
A default property on MockModuleOptions.exports represents the default
export, and own enumerable properties are treated as named exports.
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | minor | [`25.5.0` → `25.9.9`](https://renovatebot.com/diffs/npm/@types%2fnode/25.5.0/25.9.9) |
| [ghcr.io/jdx/mise](https://github.com/jdx/mise) | stage | minor | `2026.10.19` → `2026.11.7` |
| [jsdom](https://github.com/jsdom/jsdom) | devDependencies | patch | [`31.0.0` → `31.0.1`](https://renovatebot.com/diffs/npm/jsdom/31.0.0/31.0.1) |
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | | minor | `25.8.2` → `25.9.0` |
| [python](https://github.com/python/cpython) | tools | minor | `3.14` → `3.15.2` |
---
### Release Notes
<details>
<summary>jdx/mise (ghcr.io/jdx/mise)</summary>
### [`v2026.11.7`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#2026117---2026-11-11)
[Compare Source](https://github.com/jdx/mise/compare/v2026.11.6...v2026.11.7)
##### 🚀 Features
- **(shim)** one-line no-version error and opt-in shims.fallback_to_installed by [@​jdx](https://github.com/jdx) in [#​15525](https://github.com/jdx/mise/pull/15525)
- **(task)** show run history in tasks info and tasks ls --json by [@​jdx](https://github.com/jdx) in [#​15522](https://github.com/jdx/mise/pull/15522)
- **(vfox)** let tool plugins that download nothing install in locked mode by [@​jdx](https://github.com/jdx) in [#​15586](https://github.com/jdx/mise/pull/15586)
##### 🐛 Bug Fixes
- **(bootstrap)** read snap list in the C locale by [@​jdx](https://github.com/jdx) in [#​15518](https://github.com/jdx/mise/pull/15518)
- **(bootstrap)** expand $HOMEBREW_PREFIX in brew-cask completion commands by [@​jdx](https://github.com/jdx) in [#​15562](https://github.com/jdx/mise/pull/15562)
- **(bootstrap)** ignore brew-cask Caskroom directories Homebrew has no record of by [@​jdx](https://github.com/jdx) in [#​15560](https://github.com/jdx/mise/pull/15560)
- **(bootstrap)** evaluate and build brew tap formulae from a tap checkout by [@​jdx](https://github.com/jdx) in [#​15572](https://github.com/jdx/mise/pull/15572)
- **(config)** keep boolean and numeric tool options unquoted when rewriting a tool by [@​jdx](https://github.com/jdx) in [#​15517](https://github.com/jdx/mise/pull/15517)
- **(config)** run pnpm's install script when a packageManager checksum is set by [@​jdx](https://github.com/jdx) in [#​15563](https://github.com/jdx/mise/pull/15563)
- **(daemons)** name the other checkout when a named port collides by [@​jdx](https://github.com/jdx) in [#​15561](https://github.com/jdx/mise/pull/15561)
- **(daemons)** hide startup logs of task daemons under --quiet and --silent by [@​jdx](https://github.com/jdx) in [#​15588](https://github.com/jdx/mise/pull/15588)
- **(doctor)** report a malformed package.json that mise skips as a version file by [@​jdx](https://github.com/jdx) in [#​15567](https://github.com/jdx/mise/pull/15567)
- **(dotfiles)** refuse to overwrite edited copies without a terminal by [@​jdx](https://github.com/jdx) in [#​15565](https://github.com/jdx/mise/pull/15565)
- **(dotfiles)** skip unchanged files when applying a directory copy by [@​jdx](https://github.com/jdx) in [#​15558](https://github.com/jdx/mise/pull/15558)
- **(dotfiles)** close large history operations by sending the commit message on stdin by [@​jdx](https://github.com/jdx) in [#​15575](https://github.com/jdx/mise/pull/15575)
- **(exec)** keep env.\_.path ahead of tool bins when the caller's PATH already has it by [@​jdx](https://github.com/jdx) in [#​15564](https://github.com/jdx/mise/pull/15564)
- **(exec)** stop a detached tool process from holding the caller's stdout pipe on Windows by [@​jdx](https://github.com/jdx) in [#​15583](https://github.com/jdx/mise/pull/15583)
- **(install)** leave read-only system global links alone by [@​jdx](https://github.com/jdx) in [#​15526](https://github.com/jdx/mise/pull/15526)
- **(install)** read the idiomatic version file of a plugin installed in the same run by [@​jdx](https://github.com/jdx) in [#​15585](https://github.com/jdx/mise/pull/15585)
- **(lock)** send the forge token when hashing private release assets by [@​jdx](https://github.com/jdx) in [#​15556](https://github.com/jdx/mise/pull/15556)
- **(skills)** expand a leading \~ in skills.dir by [@​jdx](https://github.com/jdx) in [#​15559](https://github.com/jdx/mise/pull/15559)
- **(task)** resolve a monorepo project's own task templates from sibling projects by [@​jdx](https://github.com/jdx) in [#​15568](https://github.com/jdx/mise/pull/15568)
- **(task)** let the task's usage spec decide whether -h asks for help by [@​jdx](https://github.com/jdx) in [#​15573](https://github.com/jdx/mise/pull/15573)
- **(task)** use the project root for env of file tasks in subdirectories by [@​jdx](https://github.com/jdx) in [#​15557](https://github.com/jdx/mise/pull/15557)
- **(upgrade)** keep registry options out of mise.toml on --bump by [@​jdx](https://github.com/jdx) in [#​15519](https://github.com/jdx/mise/pull/15519)
- **(version)** hide the update notice and hints from coding agents by [@​jdx](https://github.com/jdx) in [#​15523](https://github.com/jdx/mise/pull/15523)
##### 📚 Documentation
- add a coding agents page with a Claude Code hook by [@​jdx](https://github.com/jdx) in [#​15521](https://github.com/jdx/mise/pull/15521)
##### 🧪 Testing
- **(dotnet)** stop the channel alias test failing for a day after a new release by [@​jdx](https://github.com/jdx) in [#​15574](https://github.com/jdx/mise/pull/15574)
##### 📦️ Dependency Updates
- update github actions by [@​renovate](https://github.com/renovate)\[bot] in [#​15551](https://github.com/jdx/mise/pull/15551)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15552](https://github.com/jdx/mise/pull/15552)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15569](https://github.com/jdx/mise/pull/15569)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15576](https://github.com/jdx/mise/pull/15576)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15577](https://github.com/jdx/mise/pull/15577)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15578](https://github.com/jdx/mise/pull/15578)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15579](https://github.com/jdx/mise/pull/15579)
##### Ci
- run untrusted macOS jobs on macos-latest by [@​jdx](https://github.com/jdx) in [#​15584](https://github.com/jdx/mise/pull/15584)
##### 📦 Aqua Registry Updates
##### New Packages (9)
- [`acelot/termtastic`](https://github.com/acelot/termtastic)
- [`cplieger/grelot`](https://github.com/cplieger/grelot)
- [`emanuele-em/proxelar`](https://github.com/emanuele-em/proxelar)
- [`gmr/pgfmt`](https://github.com/gmr/pgfmt)
- [`guarnz/deadvalues`](https://github.com/guarnz/deadvalues)
- [`junior/kcx`](https://github.com/junior/kcx)
- [`p10node/k10s`](https://github.com/p10node/k10s)
- [`vercel-labs/agent-desktop`](https://github.com/vercel-labs/agent-desktop)
- [`vshulcz/deja-vu`](https://github.com/vshulcz/deja-vu)
##### Updated Packages (2)
- [`aakso/ssh-inscribe/sshi`](https://github.com/aakso/ssh-inscribe)
- [`sharkdp/fd`](https://github.com/sharkdp/fd)
### [`v2026.11.6`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#2026116---2026-11-10)
[Compare Source](https://github.com/jdx/mise/compare/v2026.11.5...v2026.11.6)
##### 🚀 Features
- **(bootstrap)** add soft_resource_limits and hard_resource_limits to launchd agents by [@​jdx](https://github.com/jdx) in [#​15509](https://github.com/jdx/mise/pull/15509)
- **(bootstrap)** pick one package manager for unprefixed bootstrap.packages keys by [@​jdx](https://github.com/jdx) in [#​15506](https://github.com/jdx/mise/pull/15506)
- **(daemons)** add named ports to custom daemons by [@​jdx](https://github.com/jdx) in [#​15504](https://github.com/jdx/mise/pull/15504)
- **(dot)** add history.lock_wait to wait longer for a running history operation by [@​jdx](https://github.com/jdx) in [#​15498](https://github.com/jdx/mise/pull/15498)
- **(npm)** install from an https tarball URL such as a pkg.pr.new preview by [@​jdx](https://github.com/jdx) in [#​15461](https://github.com/jdx/mise/pull/15461)
- **(task)** add mise run --multi to pick several tasks from a menu by [@​jdx](https://github.com/jdx) in [#​15503](https://github.com/jdx/mise/pull/15503)
- **(upgrade)** show progress while checking tracked configs by [@​jdx](https://github.com/jdx) in [#​15489](https://github.com/jdx/mise/pull/15489)
##### 🐛 Bug Fixes
- **(activate)** complete mise subcommands in Nushell when activation is on by [@​jdx](https://github.com/jdx) in [#​15505](https://github.com/jdx/mise/pull/15505)
- **(backend)** find the dated rust install when checking cargo install dependencies by [@​jdx](https://github.com/jdx) in [#​15460](https://github.com/jdx/mise/pull/15460)
- **(backend)** install tools without command wrappers on PATH by [@​jdx](https://github.com/jdx) in [#​15495](https://github.com/jdx/mise/pull/15495)
- **(brew)** accept zap :not_required in tap cask metadata by [@​jdx](https://github.com/jdx) in [#​15491](https://github.com/jdx/mise/pull/15491)
- **(core)** include the cutoff's own day for date-only release ages on rust channels by [@​jdx](https://github.com/jdx) in [#​15486](https://github.com/jdx/mise/pull/15486)
- **(env)** quote values in `mise env --dotenv` so they read back unchanged by [@​jdx](https://github.com/jdx) in [#​15490](https://github.com/jdx/mise/pull/15490)
- **(env)** stop an undefined env field from listing every environment variable name by [@​jdx](https://github.com/jdx) in [#​15510](https://github.com/jdx/mise/pull/15510)
- **(github)** fall back to the API asset endpoint after one probe retry on 5xx by [@​jdx](https://github.com/jdx) in [#​15485](https://github.com/jdx/mise/pull/15485)
- **(http)** keep staging directory names under NAME_MAX for long cache keys by [@​jdx](https://github.com/jdx) in [#​15493](https://github.com/jdx/mise/pull/15493)
- **(install)** clean up after a failed install by [@​jdx](https://github.com/jdx) in [#​15511](https://github.com/jdx/mise/pull/15511)
- **(packslip)** find releases past unrelated ones in busy monorepos by [@​jdx](https://github.com/jdx) in [#​15501](https://github.com/jdx/mise/pull/15501)
- **(task)** keep other tasks working when one TOML task's usage fails to load by [@​jdx](https://github.com/jdx) in [#​15465](https://github.com/jdx/mise/pull/15465)
- **(task)** make MISE_ORIGINAL_CWD the directory mise was started in by [@​jdx](https://github.com/jdx) in [#​15464](https://github.com/jdx/mise/pull/15464)
- **(ui)** keep prompt options readable on light terminals by [@​jdx](https://github.com/jdx) in [#​15494](https://github.com/jdx/mise/pull/15494)
- **(ui)** keep demand's bright base16 colors bright by [@​jdx](https://github.com/jdx) in [#​15524](https://github.com/jdx/mise/pull/15524)
##### ⚡ Performance
- **(task)** skip directories that no source or output can come from by [@​jdx](https://github.com/jdx) in [#​15499](https://github.com/jdx/mise/pull/15499)
- **(task)** avoid repeated realpath calls resolving the task config cascade by [@​jdx](https://github.com/jdx) in [#​15512](https://github.com/jdx/mise/pull/15512)
##### 📦️ Dependency Updates
- update rmcp to 3.9.0 for RUSTSEC-2026-0462 by [@​jdx](https://github.com/jdx) in [#​15492](https://github.com/jdx/mise/pull/15492)
- update rust crate demand to v2.4.2 by [@​renovate](https://github.com/renovate)\[bot] in [#​15516](https://github.com/jdx/mise/pull/15516)
- update aube to v2.10.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​15530](https://github.com/jdx/mise/pull/15530)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15538](https://github.com/jdx/mise/pull/15538)
- update docker images by [@​renovate](https://github.com/renovate)\[bot] in [#​15534](https://github.com/jdx/mise/pull/15534)
- update rattler by [@​renovate](https://github.com/renovate)\[bot] in [#​15535](https://github.com/jdx/mise/pull/15535)
- update github actions by [@​renovate](https://github.com/renovate)\[bot] in [#​15536](https://github.com/jdx/mise/pull/15536)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15539](https://github.com/jdx/mise/pull/15539)
### [`v2026.11.5`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#2026115---2026-11-08)
[Compare Source](https://github.com/jdx/mise/compare/v2026.11.4...v2026.11.5)
##### 🚀 Features
- **(dot)** add `mise dot files` to show what is tracked in a directory by [@​jdx](https://github.com/jdx) in [#​15456](https://github.com/jdx/mise/pull/15456)
- **(status)** add status.show_env_ignore to hide variables from show_env by [@​jdx](https://github.com/jdx) in [#​15454](https://github.com/jdx/mise/pull/15454)
##### 🐛 Bug Fixes
- **(dot)** accept relative targets and stop warning about manual saving by [@​jdx](https://github.com/jdx) in [#​15455](https://github.com/jdx/mise/pull/15455)
- **(http)** retry without netrc credentials after a 401 by [@​jdx](https://github.com/jdx) in [#​15451](https://github.com/jdx/mise/pull/15451)
### [`v2026.11.4`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#2026114---2026-11-07)
[Compare Source](https://github.com/jdx/mise/compare/v2026.11.3...v2026.11.4)
##### 🚀 Features
- **(task)** support zip:: includes for config and tasks by [@​jdx](https://github.com/jdx) in [#​15439](https://github.com/jdx/mise/pull/15439)
##### 🐛 Bug Fixes
- **(bootstrap)** match ufw rules with a source CIDR and ignore the locale by [@​jdx](https://github.com/jdx) in [#​15450](https://github.com/jdx/mise/pull/15450)
- **(completion)** forward a shim's completion request to its tool by [@​jdx](https://github.com/jdx) in [#​15429](https://github.com/jdx/mise/pull/15429)
- **(config)** honor tool aliases in enable and disable filters by [@​jdx](https://github.com/jdx) in [#​15437](https://github.com/jdx/mise/pull/15437)
- **(copr)** build releases for fedora 45 by [@​jdx](https://github.com/jdx) in [#​15441](https://github.com/jdx/mise/pull/15441)
- **(dot)** merge independent exclude additions instead of failing sync by [@​jdx](https://github.com/jdx) in [#​15449](https://github.com/jdx/mise/pull/15449)
- **(prune)** resolve a project's tool_alias for its \[tools] entries by [@​jdx](https://github.com/jdx) in [#​15438](https://github.com/jdx/mise/pull/15438)
##### 📚 Documentation
- **(contributing)** state that external pull requests are not accepted by [@​jdx](https://github.com/jdx) in [738c879](https://github.com/jdx/mise/commit/738c8793bdec62ad69303112ca35a83bdbc97a45)
- note that fish 4.9.3 loads mise completions itself by [@​jdx](https://github.com/jdx) in [#​15442](https://github.com/jdx/mise/pull/15442)
##### 📦️ Dependency Updates
- update jdx crates to v7.3.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​15434](https://github.com/jdx/mise/pull/15434)
##### 📦 Aqua Registry Updates
##### New Packages (6)
- [`babarot/regomark`](https://github.com/babarot/regomark)
- [`ewhauser/shuck`](https://github.com/ewhauser/shuck)
- [`microsoft/apm`](https://github.com/microsoft/apm)
- [`nushell/nufmt`](https://github.com/nushell/nufmt)
- [`sigoden/argc`](https://github.com/sigoden/argc)
- [`tiny-earth-moon/outskirts`](https://github.com/tiny-earth-moon/outskirts)
### [`v2026.11.3`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#2026113---2026-11-06)
[Compare Source](https://github.com/jdx/mise/compare/v2026.11.2...v2026.11.3)
##### 🚀 Features
- **(task)** select tasks by their sources with --affected outside a monorepo by [@​jdx](https://github.com/jdx) in [#​15407](https://github.com/jdx/mise/pull/15407)
- **(task)** keep each task's last output behind the task.logs setting and print it with mise tasks log by [@​jdx](https://github.com/jdx) in [#​15409](https://github.com/jdx/mise/pull/15409)
- **(task)** record task run durations and add mise tasks history by [@​jdx](https://github.com/jdx) in [#​15408](https://github.com/jdx/mise/pull/15408)
##### 🐛 Bug Fixes
- **(backend)** kill a hung asdf list-all at fetch_remote_versions_timeout by [@​jdx](https://github.com/jdx) in [#​15424](https://github.com/jdx/mise/pull/15424)
- **(github)** skip Python wheels and gems when autodetecting assets by [@​jdx](https://github.com/jdx) in [#​15423](https://github.com/jdx/mise/pull/15423)
- **(lock)** keep tool_config.locked pins out of the lockfile after an install by [@​jdx](https://github.com/jdx) in [#​15428](https://github.com/jdx/mise/pull/15428)
- **(npm)** reinstall aube trees whose dependency links were restored as file symlinks on Windows by [@​jdx](https://github.com/jdx) in [#​15425](https://github.com/jdx/mise/pull/15425)
- **(prune)** resolve a project's tool_alias for its task tools by [@​jdx](https://github.com/jdx) in [#​15427](https://github.com/jdx/mise/pull/15427)
- **(upgrade)** stop --bump doubling prefix: on two-part prefix requests by [@​jdx](https://github.com/jdx) in [#​15426](https://github.com/jdx/mise/pull/15426)
##### 📚 Documentation
- list PowerShell before winget on Windows install section by [@​jdx](https://github.com/jdx) in [#​15415](https://github.com/jdx/mise/pull/15415)
##### Chore
- **(ci)** ignore the astral-tokio-tar and pin-utils advisories by their published IDs by [@​jdx](https://github.com/jdx) in [#​15416](https://github.com/jdx/mise/pull/15416)
### [`v2026.11.2`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#2026112---2026-11-05)
[Compare Source](https://github.com/jdx/mise/compare/v2026.11.1...v2026.11.2)
##### 🚀 Features
- **(task)** add a summary output style that prints only what failed by [@​jdx](https://github.com/jdx) in [#​15403](https://github.com/jdx/mise/pull/15403)
- **(task)** write a JSON report of a run with --report-file by [@​jdx](https://github.com/jdx) in [#​15405](https://github.com/jdx/mise/pull/15405)
- **(task)** add task tags and select tasks with --tag by [@​jdx](https://github.com/jdx) in [#​15406](https://github.com/jdx/mise/pull/15406)
- **(task)** run tasks at another revision with mise run --at by [@​jdx](https://github.com/jdx) in [#​15410](https://github.com/jdx/mise/pull/15410)
##### 🐛 Bug Fixes
- **(aqua)** keep .exe on raw Windows downloads when completion is off by [@​jdx](https://github.com/jdx) in [#​15412](https://github.com/jdx/mise/pull/15412)
- **(bootstrap)** stop spawning git for each encrypted file in history snapshots by [@​jdx](https://github.com/jdx) in [#​15393](https://github.com/jdx/mise/pull/15393)
- **(bootstrap)** apply mise's own config before planning the other dotfiles by [@​jdx](https://github.com/jdx) in [#​15387](https://github.com/jdx/mise/pull/15387)
- **(completion)** keep built-in descriptions when a task shares a command's name by [@​jdx](https://github.com/jdx) in [#​15385](https://github.com/jdx/mise/pull/15385)
- **(config)** do not panic when a config path cannot be canonicalized by [@​jdx](https://github.com/jdx) in [#​15383](https://github.com/jdx/mise/pull/15383)
- **(dotfiles)** adopt the origin's history when the local checkpoints hold no files by [@​jdx](https://github.com/jdx) in [#​15394](https://github.com/jdx/mise/pull/15394)
- **(dotfiles)** clear symlink-each state when a group is removed by [@​jdx](https://github.com/jdx) in [#​15390](https://github.com/jdx/mise/pull/15390)
- **(dotfiles)** keep links to dangling symlink-each sources by [@​jdx](https://github.com/jdx) in [#​15395](https://github.com/jdx/mise/pull/15395)
- **(dotfiles)** do not follow user directory links in a symlink-each target by [@​jdx](https://github.com/jdx) in [#​15399](https://github.com/jdx/mise/pull/15399)
- **(exec)** complete files after the command in mise exec by [@​jdx](https://github.com/jdx) in [#​15396](https://github.com/jdx/mise/pull/15396)
- **(go)** retry transient go install network failures by [@​jdx](https://github.com/jdx) in [#​15384](https://github.com/jdx/mise/pull/15384)
- **(lock)** keep the vendor prefix once when moving a prefixed request by [@​jdx](https://github.com/jdx) in [#​15386](https://github.com/jdx/mise/pull/15386)
- **(lock)** resolve core tool downloads from checksum in safe mode by [@​jdx](https://github.com/jdx) in [#​15392](https://github.com/jdx/mise/pull/15392)
- **(lock)** keep a registry-only aube graph when a lockfile is not trusted by [@​jdx](https://github.com/jdx) in [#​15401](https://github.com/jdx/mise/pull/15401)
- **(lock)** bind the bumped request when a version argument rewrites the config by [@​jdx](https://github.com/jdx) in [#​15404](https://github.com/jdx/mise/pull/15404)
- **(shim)** stop suggesting a reinstall when the version ships other executables by [@​jdx](https://github.com/jdx) in [#​15388](https://github.com/jdx/mise/pull/15388)
- **(shim)** run mise, not the shim, for a due auto_update by [@​jdx](https://github.com/jdx) in [#​15389](https://github.com/jdx/mise/pull/15389)
- **(skills)** link only a project's own tools into its skills directory by [@​jdx](https://github.com/jdx) in [#​15391](https://github.com/jdx/mise/pull/15391)
##### 📚 Documentation
- make mise.toml reference keys findable in site search by [@​jdx](https://github.com/jdx) in [#​15375](https://github.com/jdx/mise/pull/15375)
##### 🧪 Testing
- **(e2e)** print one line for each passing test by default by [@​jdx](https://github.com/jdx) in [#​15402](https://github.com/jdx/mise/pull/15402)
##### 📦️ Dependency Updates
- update node.js to v26 by [@​renovate](https://github.com/renovate)\[bot] in [#​15355](https://github.com/jdx/mise/pull/15355)
- update rust crate usage-cli to v7.2.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​15354](https://github.com/jdx/mise/pull/15354)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15343](https://github.com/jdx/mise/pull/15343)
##### 📦 Registry
- use temporalio/cli for temporal by [@​jdx](https://github.com/jdx) in [#​15373](https://github.com/jdx/mise/pull/15373)
- fix odin shim on windows by [@​jdx](https://github.com/jdx) in [#​15400](https://github.com/jdx/mise/pull/15400)
##### Ci
- **(docs)** run the showreel job on the large Namespace profile by [@​jdx](https://github.com/jdx) in [#​15397](https://github.com/jdx/mise/pull/15397)
### [`v2026.11.1`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#2026111---2026-11-04)
[Compare Source](https://github.com/jdx/mise/compare/v2026.11.0...v2026.11.1)
##### 🚀 Features
- **(config)** name sets of environments with env_sets in miserc.toml by [@​jdx](https://github.com/jdx) in [#​15327](https://github.com/jdx/mise/pull/15327)
- **(npm)** accept gitlab.com CI provenance when npm.provenance is on by [@​jdx](https://github.com/jdx) in [#​15335](https://github.com/jdx/mise/pull/15335)
- **(npm)** pin an npm tool to the repository its provenance showed by [@​jdx](https://github.com/jdx) in [#​15338](https://github.com/jdx/mise/pull/15338)
- **(vfox)** show download progress for a PreInstall url by [@​jdx](https://github.com/jdx) in [#​15323](https://github.com/jdx/mise/pull/15323)
##### 🐛 Bug Fixes
- **(activate)** keep $? for the prompt mise wraps in pwsh by [@​meop](https://github.com/meop) in [#​15315](https://github.com/jdx/mise/pull/15315)
- **(aqua)** install Linux musl builds on Android by [@​i-api](https://github.com/i-api) in [#​15347](https://github.com/jdx/mise/pull/15347)
- **(backend)** keep latest on non-numeric releases under the release-age cutoff by [@​jdx](https://github.com/jdx) in [#​15360](https://github.com/jdx/mise/pull/15360)
- **(config)** skip a stale tracked file that no config type claims by [@​jdx](https://github.com/jdx) in [#​15333](https://github.com/jdx/mise/pull/15333)
- **(lock)** keep a v0 lockfile's pin when an alias like lts moves by [@​jdx](https://github.com/jdx) in [#​15301](https://github.com/jdx/mise/pull/15301)
- **(lock)** leave the global lockfile alone on project installs by [@​jdx](https://github.com/jdx) in [#​15348](https://github.com/jdx/mise/pull/15348)
- **(lock)** quiet the unsigned-mirror warning and install's background lock rows, and restore the showreel by [@​jdx](https://github.com/jdx) in [#​15346](https://github.com/jdx/mise/pull/15346)
- **(npm)** keep pnpm installs inside the install dir by [@​jdx](https://github.com/jdx) in [#​15330](https://github.com/jdx/mise/pull/15330)
- **(rust)** stop querying GitHub when a rustup mirror is configured by [@​jdx](https://github.com/jdx) in [#​15326](https://github.com/jdx/mise/pull/15326)
- **(shim)** run command wrappers on a read-only filesystem by [@​jdx](https://github.com/jdx) in [#​15300](https://github.com/jdx/mise/pull/15300)
- **(upgrade)** skip out-of-range note for versions another entry already uses by [@​jdx](https://github.com/jdx) in [#​15359](https://github.com/jdx/mise/pull/15359)
- **(zig)** install from the lockfile URL and fix the fallback archive name by [@​jdx](https://github.com/jdx) in [#​15351](https://github.com/jdx/mise/pull/15351)
##### 📚 Documentation
- **(install)** recommend the PowerShell script on Windows by [@​jdx](https://github.com/jdx) in [#​15332](https://github.com/jdx/mise/pull/15332)
##### 🧪 Testing
- **(docs)** accept curl flags in the showreel's README install check by [@​jdx](https://github.com/jdx) in [#​15324](https://github.com/jdx/mise/pull/15324)
##### 📦️ Dependency Updates
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15319](https://github.com/jdx/mise/pull/15319)
- update rust crate jsonschema to 0.60 by [@​renovate](https://github.com/renovate)\[bot] in [#​15311](https://github.com/jdx/mise/pull/15311)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15325](https://github.com/jdx/mise/pull/15325)
- update rattler by [@​renovate](https://github.com/renovate)\[bot] in [#​15336](https://github.com/jdx/mise/pull/15336)
- ignore unmaintained astral-tokio-tar and pin-utils in cargo-deny by [@​jdx](https://github.com/jdx) in [#​15352](https://github.com/jdx/mise/pull/15352)
- update jdx crates to v7.2.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​15342](https://github.com/jdx/mise/pull/15342)
- update mise tools to latest by [@​renovate](https://github.com/renovate)\[bot] in [#​15350](https://github.com/jdx/mise/pull/15350)
- update github actions by [@​renovate](https://github.com/renovate)\[bot] in [#​15309](https://github.com/jdx/mise/pull/15309)
##### 📦 Registry
- fix blaze test for the ra-jit to blaze rename by [@​jdx](https://github.com/jdx) in [#​15371](https://github.com/jdx/mise/pull/15371)
##### Ci
- **(docs)** fail the docs deploy when the showreel has no render by [@​jdx](https://github.com/jdx) in [#​15344](https://github.com/jdx/mise/pull/15344)
##### Security
- **(npm)** **breaking** verify npm provenance by default by [@​jdx](https://github.com/jdx) in [#​15341](https://github.com/jdx/mise/pull/15341)
##### New Contributors
- [@​meop](https://github.com/meop) made their first contribution in [#​15315](https://github.com/jdx/mise/pull/15315)
##### 📦 Aqua Registry Updates
##### Updated Packages (1)
- [`supabase/cli`](https://github.com/supabase/cli)
### [`v2026.11.0`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#2026110---2026-11-03)
[Compare Source](https://github.com/jdx/mise/compare/v2026.10.25...v2026.11.0)
##### 🚀 Features
- **(bootstrap)** let --update fast-forward the global config checkout by [@​jdx](https://github.com/jdx) in [#​15286](https://github.com/jdx/mise/pull/15286)
- **(dotfiles)** let an entry or a group depend on other entries of the same apply by [@​jdx](https://github.com/jdx) in [#​15277](https://github.com/jdx/mise/pull/15277)
- **(npm)** verify the provenance of an npm tool's own package by [@​jdx](https://github.com/jdx) in [#​15240](https://github.com/jdx/mise/pull/15240)
- **(skills)** default skills.dir to .agents/skills and link .claude/skills to it by [@​jdx](https://github.com/jdx) in [#​15278](https://github.com/jdx/mise/pull/15278)
- **(task)** add lock so runs that share a resource take turns by [@​jdx](https://github.com/jdx) in [#​15242](https://github.com/jdx/mise/pull/15242)
- **(use)** auto-sync skills into the home directory for mise use -g by [@​jdx](https://github.com/jdx) in [#​15276](https://github.com/jdx/mise/pull/15276)
##### 🐛 Bug Fixes
- **(backend)** run the prerelease a latest request resolved to by [@​jdx](https://github.com/jdx) in [#​15259](https://github.com/jdx/mise/pull/15259)
- **(backend)** install pypi tools from the version when no Python is installed by [@​jdx](https://github.com/jdx) in [#​15287](https://github.com/jdx/mise/pull/15287)
- **(bootstrap)** write INSTALL_RECEIPT.json for Homebrew cask handoff by [@​jdx](https://github.com/jdx) in [#​15274](https://github.com/jdx/mise/pull/15274)
- **(brew-cask)** upgrade an auto-updating app still at its recorded version by [@​waynehoover](https://github.com/waynehoover) in [#​15226](https://github.com/jdx/mise/pull/15226)
- **(config)** load config folders that are git repositories of their own by [@​jdx](https://github.com/jdx) in [#​15224](https://github.com/jdx/mise/pull/15224)
- **(config)** stop reading go.mod go X.Y and CMakeLists.txt minimum versions by [@​jdx](https://github.com/jdx) in [#​15266](https://github.com/jdx/mise/pull/15266)
- **(daemons)** use mise's pitchfork for status, stop, logs and prune without a project pin by [@​jdx](https://github.com/jdx) in [#​15237](https://github.com/jdx/mise/pull/15237)
- **(deb)** stop apt repository metadata from being cached for a day by [@​jdx](https://github.com/jdx) in [#​15219](https://github.com/jdx/mise/pull/15219)
- **(dotfiles)** prune symlink-each links on Windows after the state file is lost by [@​jdx](https://github.com/jdx) in [#​15249](https://github.com/jdx/mise/pull/15249)
- **(dotfiles)** unapply junctions and directory symlinks on Windows by [@​jdx](https://github.com/jdx) in [#​15248](https://github.com/jdx/mise/pull/15248)
- **(dotfiles)** skip bootstrap history checkpoints when nothing changed by [@​jdx](https://github.com/jdx) in [#​15246](https://github.com/jdx/mise/pull/15246)
- **(dotfiles)** report a Windows symlink that fell back to a copy as copied by [@​jdx](https://github.com/jdx) in [#​15252](https://github.com/jdx/mise/pull/15252)
- **(dotfiles)** keep one state file when a Windows path changes letter case by [@​jdx](https://github.com/jdx) in [#​15254](https://github.com/jdx/mise/pull/15254)
- **(dotfiles)** let the next apply carry on after a failed one by [@​jdx](https://github.com/jdx) in [#​15253](https://github.com/jdx/mise/pull/15253)
- **(lock)** remember the install identity of a uv.lock sidecar between runs by [@​jdx](https://github.com/jdx) in [#​15230](https://github.com/jdx/mise/pull/15230)
- **(lock)** never trust a project lockfile in safe mode by [@​jdx](https://github.com/jdx) in [#​15235](https://github.com/jdx/mise/pull/15235)
- **(lock)** report a prune only after the lockfile is written by [@​jdx](https://github.com/jdx) in [#​15267](https://github.com/jdx/mise/pull/15267)
- **(lock)** skip Java platforms with no build instead of failing mise lock by [@​jdx](https://github.com/jdx) in [#​15269](https://github.com/jdx/mise/pull/15269)
- **(mas)** treat an empty mas list as unknown while App Store apps exist by [@​waynehoover](https://github.com/waynehoover) in [#​15228](https://github.com/jdx/mise/pull/15228)
- **(pipx)** list git tags for an ssh github source with no releases by [@​jdx](https://github.com/jdx) in [#​15291](https://github.com/jdx/mise/pull/15291)
- **(task)** export daemon variables to monorepo tasks run from the root by [@​jdx](https://github.com/jdx) in [#​15217](https://github.com/jdx/mise/pull/15217)
- **(task)** run every line of a multi-line script under cmd.exe on Windows by [@​jdx](https://github.com/jdx) in [#​15238](https://github.com/jdx/mise/pull/15238)
- **(task)** accept Windows-only tasks in tasks validate on other platforms by [@​jdx](https://github.com/jdx) in [#​15258](https://github.com/jdx/mise/pull/15258)
- **(task)** suggest list for a mistyped list instead of a hidden command by [@​jdx](https://github.com/jdx) in [#​15260](https://github.com/jdx/mise/pull/15260)
- **(task)** stop mise run hanging after a task fails with jobs > 1 by [@​jdx](https://github.com/jdx) in [#​15268](https://github.com/jdx/mise/pull/15268)
- **(vfox)** stop re-running embedded plugins' env hook on every prompt by [@​jdx](https://github.com/jdx) in [#​15227](https://github.com/jdx/mise/pull/15227)
- keep background services alive when closing Windows Terminal by [@​CCJK123](https://github.com/CCJK123) in [#​15265](https://github.com/jdx/mise/pull/15265)
##### 🚜 Refactor
- **(core)** verify GitHub attestations against a bare sha512 digest by [@​jdx](https://github.com/jdx) in [#​15239](https://github.com/jdx/mise/pull/15239)
##### 📚 Documentation
- **(contributing)** remove the AI reply restriction by [@​jdx](https://github.com/jdx) in [#​15280](https://github.com/jdx/mise/pull/15280)
- **(dotfiles)** say that Windows symlink-each copies need --force once the source changes by [@​jdx](https://github.com/jdx) in [#​15247](https://github.com/jdx/mise/pull/15247)
##### ⚡ Performance
- **(backend)** check a "latest" tool's install dir once per lookup by [@​jdx](https://github.com/jdx) in [#​15295](https://github.com/jdx/mise/pull/15295)
##### 🧪 Testing
- **(brew)** run the cask tests from a checkout under /tmp, and skip shim tests without a working ruby by [@​jdx](https://github.com/jdx) in [#​15222](https://github.com/jdx/mise/pull/15222)
##### 📦️ Dependency Updates
- update jdx crates to v7.1.5 by [@​renovate](https://github.com/renovate)\[bot] in [#​15236](https://github.com/jdx/mise/pull/15236)
- update pulldown-cmark to 0.13.6 for RUSTSEC-2026-0433 by [@​jdx](https://github.com/jdx) in [#​15270](https://github.com/jdx/mise/pull/15270)
- update aube to v2.9.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​15273](https://github.com/jdx/mise/pull/15273)
- update mise tools by [@​renovate](https://github.com/renovate)\[bot] in [#​15310](https://github.com/jdx/mise/pull/15310)
- update alpine:3.24 docker digest to [`be26560`](https://github.com/jdx/mise/commit/be26560) by [@​renovate](https://github.com/renovate)\[bot] in [#​15308](https://github.com/jdx/mise/pull/15308)
- update rust crate rattler to 0.55 by [@​renovate](https://github.com/renovate)\[bot] in [#​15312](https://github.com/jdx/mise/pull/15312)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15314](https://github.com/jdx/mise/pull/15314)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15317](https://github.com/jdx/mise/pull/15317)
##### 📦 Registry
- add kotlin-toolchain (http:kotlin-toolchain) by [@​ggoggam](https://github.com/ggoggam) in [#​15234](https://github.com/jdx/mise/pull/15234)
- add headscale ([aqua:juanfont/headscale](https://github.com/juanfont/headscale)) by [@​i-api](https://github.com/i-api) in [#​15282](https://github.com/jdx/mise/pull/15282)
- add tailscale ([aqua:tailscale/tailscale](https://github.com/tailscale/tailscale)) by [@​i-api](https://github.com/i-api) in [#​15298](https://github.com/jdx/mise/pull/15298)
##### Chore
- add Entire's StopFailure hook for Claude Code by [@​jdx](https://github.com/jdx) in [#​15221](https://github.com/jdx/mise/pull/15221)
- set up jouet for agents by [@​jdx](https://github.com/jdx) in [#​15288](https://github.com/jdx/mise/pull/15288)
##### Security
- **(config)** keep a project .miserc.toml from dropping global environments by [@​jdx](https://github.com/jdx) in [#​15281](https://github.com/jdx/mise/pull/15281)
- **(lockfile)** require lockfile checksums in locked mode by [@​jdx](https://github.com/jdx) in [#​15285](https://github.com/jdx/mise/pull/15285)
##### New Contributors
- [@​CCJK123](https://github.com/CCJK123) made their first contribution in [#​15265](https://github.com/jdx/mise/pull/15265)
##### 📦 Aqua Registry Updates
##### New Packages (5)
- [`getsentry/toolkit/cli`](https://github.com/getsentry/toolkit)
- `gitlab.com/gitlab-org/ci-cd/runner-tools/glci`
- [`herdrdev/herdr-core`](https://github.com/herdrdev/herdr-core)
- [`pleaseai/asana`](https://github.com/pleaseai/asana)
- [`timmo001/system-bridge`](https://github.com/timmo001/system-bridge)
##### Updated Packages (8)
- [`Canop/dysk`](https://github.com/Canop/dysk)
- [`jedisct1/minisign`](https://github.com/jedisct1/minisign)
- [`mattn/zig-update`](https://github.com/mattn/zig-update)
- [`odigos-io/odigos`](https://github.com/odigos-io/odigos)
- [`oxc-project/oxc/oxlint`](https://github.com/oxc-project/oxc)
- [`superbrothers/ksort`](https://github.com/superbrothers/ksort)
- [`tailscale/tailscale`](https://github.com/tailscale/tailscale)
- [`theseus-rs/postgresql-binaries`](https://github.com/theseus-rs/postgresql-binaries)
### [`v2026.10.25`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#20261025---2026-10-31)
[Compare Source](https://github.com/jdx/mise/compare/v2026.10.24...v2026.10.25)
##### 🚀 Features
- **(bootstrap)** report which tool manages each installed cask in status --json by [@​jdx](https://github.com/jdx) in [#​15198](https://github.com/jdx/mise/pull/15198)
- **(env)** add env_cache_redacted to cache environments with redacted values by [@​jdx](https://github.com/jdx) in [#​15200](https://github.com/jdx/mise/pull/15200)
- **(tasks)** add tasks set and rm, choose the file, and report changes as JSON by [@​jdx](https://github.com/jdx) in [#​15213](https://github.com/jdx/mise/pull/15213)
- **(watch)** add --once to wait for a change, run the tasks, and exit by [@​jdx](https://github.com/jdx) in [#​15212](https://github.com/jdx/mise/pull/15212)
##### 🐛 Bug Fixes
- **(bootstrap)** report an annotated tag ref as current once checked out by [@​jdx](https://github.com/jdx) in [#​15199](https://github.com/jdx/mise/pull/15199)
- **(core)** fold AppleDouble sidecars into their files when extracting tars on macOS by [@​jdx](https://github.com/jdx) in [#​15211](https://github.com/jdx/mise/pull/15211)
- **(dotfiles)** keep saving a directory tracked in place of narrower paths by [@​jdx](https://github.com/jdx) in [#​15187](https://github.com/jdx/mise/pull/15187)
- **(dotfiles)** don't drop earlier tracking when a later untrack path fails by [@​jdx](https://github.com/jdx) in [#​15208](https://github.com/jdx/mise/pull/15208)
- **(install)** stop concurrent installs from reading a half-created install as complete by [@​jdx](https://github.com/jdx) in [#​15196](https://github.com/jdx/mise/pull/15196)
- **(lock)** write a symlinked config dir's lockfile as one target by [@​jdx](https://github.com/jdx) in [#​15197](https://github.com/jdx/mise/pull/15197)
- **(shim)** stop reshim from scaling quadratically with tracked configs by [@​jdx](https://github.com/jdx) in [#​15203](https://github.com/jdx/mise/pull/15203)
##### 📦️ Dependency Updates
- update jdx crates to v7.1.4 by [@​renovate](https://github.com/renovate)\[bot] in [#​15194](https://github.com/jdx/mise/pull/15194)
- update rust crate aube-registry to v2.8.5 by [@​renovate](https://github.com/renovate)\[bot] in [#​15205](https://github.com/jdx/mise/pull/15205)
##### 📦 Registry
- add jouet by [@​jdx](https://github.com/jdx) in [#​15201](https://github.com/jdx/mise/pull/15201)
### [`v2026.10.24`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#20261024---2026-10-30)
[Compare Source](https://github.com/jdx/mise/compare/v2026.10.23...v2026.10.24)
##### 🚀 Features
- **(daemons)** allocate preset named ports per worktree with their own base by [@​jdx](https://github.com/jdx) in [#​15181](https://github.com/jdx/mise/pull/15181)
- **(daemons)** run container images as daemons with Docker or Podman by [@​jdx](https://github.com/jdx) in [#​15182](https://github.com/jdx/mise/pull/15182)
- **(dotfiles)** resolve secret() only for the keys a merge = "missing" entry adds by [@​jdx](https://github.com/jdx) in [#​15168](https://github.com/jdx/mise/pull/15168)
- **(env)** add position = "append" to env.\_.path by [@​jdx](https://github.com/jdx) in [#​15158](https://github.com/jdx/mise/pull/15158)
- **(http)** add extra_ca_certs and stop reporting unchecked tools as up to date by [@​jdx](https://github.com/jdx) in [#​15171](https://github.com/jdx/mise/pull/15171)
- **(pypi)** add registry_index to search a tool registry ahead of PyPI when locking by [@​jdx](https://github.com/jdx) in [#​15157](https://github.com/jdx/mise/pull/15157)
##### 🐛 Bug Fixes
- **(brew)** skip MachO post_install steps in source builds by [@​jdx](https://github.com/jdx) in [#​15152](https://github.com/jdx/mise/pull/15152)
- **(brew)** resolve relative install_symlink sources like Homebrew by [@​waynehoover](https://github.com/waynehoover) in [#​15173](https://github.com/jdx/mise/pull/15173)
- **(brew-cask)** stage binary payloads before postflight by [@​azohra](https://github.com/azohra) in [#​14837](https://github.com/jdx/mise/pull/14837)
- **(gem)** skip RubyGems prereleases when resolving latest by [@​dennmart](https://github.com/dennmart) in [#​15143](https://github.com/jdx/mise/pull/15143)
- **(install)** don't fail install when a task include can't be loaded by [@​jdx](https://github.com/jdx) in [#​15166](https://github.com/jdx/mise/pull/15166)
- **(lock)** upgrade every lock entry of a tool declared in several config files by [@​jdx](https://github.com/jdx) in [#​15164](https://github.com/jdx/mise/pull/15164)
- **(lock)** hash file:// artifacts in place when generating lockfiles by [@​jdx](https://github.com/jdx) in [#​15180](https://github.com/jdx/mise/pull/15180)
- **(nix)** add ps to macOS test dependencies by [@​nurazon59](https://github.com/nurazon59) in [#​15167](https://github.com/jdx/mise/pull/15167)
- **(pipx)** share one install between tools locked with the same dependencies on different days by [@​jdx](https://github.com/jdx) in [#​15179](https://github.com/jdx/mise/pull/15179)
- **(prune)** keep versions of tools declared in included task files by [@​jdx](https://github.com/jdx) in [#​15156](https://github.com/jdx/mise/pull/15156)
- **(pypi)** lock the dependency graph against the selected Python by [@​jdx](https://github.com/jdx) in [#​15153](https://github.com/jdx/mise/pull/15153)
- **(pypi)** lock tools whose index publishes no upload times by [@​jdx](https://github.com/jdx) in [#​15159](https://github.com/jdx/mise/pull/15159)
- **(shim)** name the active version when it lacks the executable by [@​jdx](https://github.com/jdx) in [#​15165](https://github.com/jdx/mise/pull/15165)
- **(task)** allow comments in turbo.json and global.json by [@​jdx](https://github.com/jdx) in [#​15141](https://github.com/jdx/mise/pull/15141)
- **(task)** run the downloaded file of a remote task with env as a sub-task or dependency by [@​jdx](https://github.com/jdx) in [#​15178](https://github.com/jdx/mise/pull/15178)
##### 📚 Documentation
- **(dotfiles)** show profile variants gating an entry on several active envs by [@​jdx](https://github.com/jdx) in [#​15154](https://github.com/jdx/mise/pull/15154)
##### ⚡ Performance
- **(brew)** resolve formulae from the bulk index and stop re-walking taps every run by [@​waynehoover](https://github.com/waynehoover) in [#​15183](https://github.com/jdx/mise/pull/15183)
##### 📦 Registry
- install Danger Swift libraries alongside its executable by [@​Mostafa-Ashraf97](https://github.com/Mostafa-Ashraf97) in [#​15120](https://github.com/jdx/mise/pull/15120)
##### Chore
- **(config)** deprecate lockfile_mode=merge, warning from 2027.4.0 by [@​jdx](https://github.com/jdx) in [#​15184](https://github.com/jdx/mise/pull/15184)
##### New Contributors
- [@​nurazon59](https://github.com/nurazon59) made their first contribution in [#​15167](https://github.com/jdx/mise/pull/15167)
- [@​Mostafa-Ashraf97](https://github.com/Mostafa-Ashraf97) made their first contribution in [#​15120](https://github.com/jdx/mise/pull/15120)
- [@​dennmart](https://github.com/dennmart) made their first contribution in [#​15143](https://github.com/jdx/mise/pull/15143)
### [`v2026.10.23`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#20261023---2026-10-29)
[Compare Source](https://github.com/jdx/mise/compare/v2026.10.22...v2026.10.23)
##### 🚀 Features
- **(dotfiles)** apply block, line, and merge edits from a dotfile group by [@​jdx](https://github.com/jdx) in [#​15131](https://github.com/jdx/mise/pull/15131)
- **(dotfiles)** merge into INI files such as pip.conf and tox.ini by [@​jdx](https://github.com/jdx) in [#​15135](https://github.com/jdx/mise/pull/15135)
- **(dotfiles)** deploy files stored in fnox with mode = "fnox" by [@​jdx](https://github.com/jdx) in [#​15134](https://github.com/jdx/mise/pull/15134)
- **(gem)** list versions from a source's compact index, so GitHub Packages gems resolve latest by [@​waynehoover](https://github.com/waynehoover) in [#​15122](https://github.com/jdx/mise/pull/15122)
##### 🐛 Bug Fixes
- **(backend)** name the program when a command can't be found by [@​jdx](https://github.com/jdx) in [#​15119](https://github.com/jdx/mise/pull/15119)
- **(lock)** keep the locks/ sidecar layout for a symlinked global config dir by [@​jdx](https://github.com/jdx) in [#​15125](https://github.com/jdx/mise/pull/15125)
- **(lockfile)** keep a dotfiles checkout's lockfile URLs when it is linked into global config by [@​jdx](https://github.com/jdx) in [#​15130](https://github.com/jdx/mise/pull/15130)
- **(ls)** show uninstalled lazy tools as lazy instead of missing by [@​jdx](https://github.com/jdx) in [#​15114](https://github.com/jdx/mise/pull/15114)
- **(node)** keep a packageManager checksum from pinning later installs to npm by [@​jdx](https://github.com/jdx) in [#​15124](https://github.com/jdx/mise/pull/15124)
- **(self-update)** retry replacing mise.exe on Windows while antivirus holds it by [@​jdx](https://github.com/jdx) in [#​15138](https://github.com/jdx/mise/pull/15138)
- **(shell)** convert MANPATH to POSIX form when activating under MSYS2/Cygwin by [@​jdx](https://github.com/jdx) in [#​15117](https://github.com/jdx/mise/pull/15117)
- **(shim)** keep other command wrappers active inside a wrapped command by [@​jdx](https://github.com/jdx) in [#​15126](https://github.com/jdx/mise/pull/15126)
- **(uninstall)** don't remove 3.4.12 when asked to uninstall 3.4.1 by [@​jdx](https://github.com/jdx) in [#​15116](https://github.com/jdx/mise/pull/15116)
##### 📚 Documentation
- rewrite README with upfront config example and bootstrap guide by [@​jdx](https://github.com/jdx) in [#​15136](https://github.com/jdx/mise/pull/15136)
##### ⚡ Performance
- **(dotfiles)** write snapshot blobs without a git process per tracked file by [@​waynehoover](https://github.com/waynehoover) in [#​15127](https://github.com/jdx/mise/pull/15127)
##### 🧪 Testing
- **(dotfiles)** set group in the INI merge symlink test by [@​jdx](https://github.com/jdx) in [#​15139](https://github.com/jdx/mise/pull/15139)
##### 📦 Registry
- stop checking cargo-msrv's reported version in its test by [@​jdx](https://github.com/jdx) in [#​15137](https://github.com/jdx/mise/pull/15137)
##### Security
- **(secrets)** refuse project grants of keys from your own fnox config by [@​jdx](https://github.com/jdx) in [#​15133](https://github.com/jdx/mise/pull/15133)
### [`v2026.10.22`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#20261022---2026-10-28)
[Compare Source](https://github.com/jdx/mise/compare/v2026.10.21...v2026.10.22)
##### 🚀 Features
- **(bootstrap)** print a hook's description or one line instead of its whole script by [@​jdx](https://github.com/jdx) in [#​15106](https://github.com/jdx/mise/pull/15106)
- **(dotfiles)** add create_if_missing to seed a file once by [@​jdx](https://github.com/jdx) in [#​15080](https://github.com/jdx/mise/pull/15080)
- **(dotfiles)** set permissions on a file a merge entry creates by [@​jdx](https://github.com/jdx) in [#​15087](https://github.com/jdx/mise/pull/15087)
- **(dotfiles)** merge into JSONC files such as VS Code's settings.json by [@​jdx](https://github.com/jdx) in [#​15077](https://github.com/jdx/mise/pull/15077)
- **(http)** add ipv4_only setting for hosts that fail over IPv6 by [@​jdx](https://github.com/jdx) in [#​15057](https://github.com/jdx/mise/pull/15057)
- **(shell)** add --all to `mise shell --unset` by [@​jdx](https://github.com/jdx) in [#​15088](https://github.com/jdx/mise/pull/15088)
- **(uninstall)** add --local to remove a project's installed tools by [@​jdx](https://github.com/jdx) in [#​15079](https://github.com/jdx/mise/pull/15079)
- **(vars)** add --json and --json-extended to mise vars by [@​jdx](https://github.com/jdx) in [#​15069](https://github.com/jdx/mise/pull/15069)
- add --no-global and --project scope flags, deprecate --local by [@​jdx](https://github.com/jdx) in [#​15081](https://github.com/jdx/mise/pull/15081)
##### 🐛 Bug Fixes
- **(aqua)** stop warning "invalid aqua tool" for custom registry packages by [@​jdx](https://github.com/jdx) in [#​15048](https://github.com/jdx/mise/pull/15048)
- **(backends)** handle empty lock directories when switching backends by [@​zeitlinger](https://github.com/zeitlinger) in [#​15060](https://github.com/jdx/mise/pull/15060)
- **(config)** treat an empty system_packages.elevate_with as "never elevate" by [@​jdx](https://github.com/jdx) in [#​15049](https://github.com/jdx/mise/pull/15049)
- **(config)** stop warning about a version-file link to a sibling version file by [@​jdx](https://github.com/jdx) in [#​15058](https://github.com/jdx/mise/pull/15058)
- **(core)** point node\@​lts at Node.js 26 by [@​jdx](https://github.com/jdx) in [#​15105](https://github.com/jdx/mise/pull/15105)
- **(gem)** quote paths in generated wrapper scripts by [@​jdx](https://github.com/jdx) in [#​15055](https://github.com/jdx/mise/pull/15055)
- **(github)** ask for fewer releases when api.github.com times out listing them by [@​jdx](https://github.com/jdx) in [#​15078](https://github.com/jdx/mise/pull/15078)
- **(lock)** install pipx tools when only the current platform is locked by [@​jdx](https://github.com/jdx) in [#​15091](https://github.com/jdx/mise/pull/15091)
- **(packslip)** log versions held back by minimum_release_age at debug level by [@​jdx](https://github.com/jdx) in [#​15056](https://github.com/jdx/mise/pull/15056)
- **(prune)** keep only the running version of a tool started through a moved link by [@​jdx](https://github.com/jdx) in [#​15113](https://github.com/jdx/mise/pull/15113)
- **(release)** include shell completions in Debian packages by [@​gilesw](https://github.com/gilesw) in [#​15074](https://github.com/jdx/mise/pull/15074)
- **(remote-source)** validate git ref in remote git sources by [@​Huge](https://github.com/Huge) in [#​14832](https://github.com/jdx/mise/pull/14832)
- **(version)** never report a latest version older than the running one in version --json by [@​jdx](https://github.com/jdx) in [#​15068](https://github.com/jdx/mise/pull/15068)
- hide the Windows console for prompt-started tool updates by [@​yusoofsh](https://github.com/yusoofsh) in [#​15038](https://github.com/jdx/mise/pull/15038)
##### 📚 Documentation
- **(secrets)** note that fnox daemon reads need fnox 1.43.0 by [@​jdx](https://github.com/jdx) in [#​15115](https://github.com/jdx/mise/pull/15115)
##### 📦️ Dependency Updates
- update github actions by [@​renovate](https://github.com/renovate)\[bot] in [#​15039](https://github.com/jdx/mise/pull/15039)
- update ubuntu docker tag to resolute-20261006 by [@​renovate](https://github.com/renovate)\[bot] in [#​15040](https://github.com/jdx/mise/pull/15040)
- update rust crates by [@​renovate](https://github.com/renovate)\[bot] in [#​15041](https://github.com/jdx/mise/pull/15041)
- update github actions by [@​renovate](https://github.com/renovate)\[bot] in [#​15046](https://github.com/jdx/mise/pull/15046)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15043](https://github.com/jdx/mise/pull/15043)
- update mise tools by [@​renovate](https://github.com/renovate)\[bot] in [#​15042](https://github.com/jdx/mise/pull/15042)
- update rust crates to v1.12.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​15050](https://github.com/jdx/mise/pull/15050)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15062](https://github.com/jdx/mise/pull/15062)
- update aube to v2.8.4 by [@​renovate](https://github.com/renovate)\[bot] in [#​15072](https://github.com/jdx/mise/pull/15072)
- update swatinem/rust-cache digest to [`d1527c8`](https://github.com/jdx/mise/commit/d1527c8) by [@​renovate](https://github.com/renovate)\[bot] in [#​15064](https://github.com/jdx/mise/pull/15064)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15073](https://github.com/jdx/mise/pull/15073)
- update rust crates to v1.12.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​15065](https://github.com/jdx/mise/pull/15065)
- stop lock file maintenance from downgrading crates by [@​jdx](https://github.com/jdx) in [#​15086](https://github.com/jdx/mise/pull/15086)
- update jdx/packslip action to v1.9.1 by [@​renovate](https://github.com/renovate)\[bot] in [#​15083](https://github.com/jdx/mise/pull/15083)
- update rust crate jdx-tar to v1.1.2 by [@​renovate](https://github.com/renovate)\[bot] in [#​15089](https://github.com/jdx/mise/pull/15089)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15085](https://github.com/jdx/mise/pull/15085)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15093](https://github.com/jdx/mise/pull/15093)
- update dependency node to v26 by [@​renovate](https://github.com/renovate)\[bot] in [#​15095](https://github.com/jdx/mise/pull/15095)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15097](https://github.com/jdx/mise/pull/15097)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15099](https://github.com/jdx/mise/pull/15099)
- lock file maintenance by [@​renovate](https://github.com/renovate)\[bot] in [#​15100](https://github.com/jdx/mise/pull/15100)
##### 📦 Registry
- fix docuum and android-sdk test expectations by [@​jdx](https://github.com/jdx) in [#​15067](https://github.com/jdx/mise/pull/15067)
- add aqua for oxfmt by [@​scop](https://github.com/scop) in [#​15092](https://github.com/jdx/mise/pull/15092)
##### New Contributors
- [@​gilesw](https://github.com/gilesw) made their first contribution in [#​15074](https://github.com/jdx/mise/pull/15074)
- [@​yusoofsh](https://github.com/yusoofsh) made their first contribution in [#​15038](https://github.com/jdx/mise/pull/15038)
##### 📦 Aqua Registry Updates
##### Updated Packages (9)
- [`aquaproj/aqua-registry-updater`](https://github.com/aquaproj/aqua-registry-updater)
- [`lintnet/lintnet`](https://github.com/lintnet/lintnet)
- [`suzuki-shunsuke/ghproj`](https://github.com/suzuki-shunsuke/ghproj)
- [`suzuki-shunsuke/github-comment`](https://github.com/suzuki-shunsuke/github-comment)
- [`suzuki-shunsuke/rgo`](https://github.com/suzuki-shunsuke/rgo)
- [`suzuki-shunsuke/sort-issue-template`](https://github.com/suzuki-shunsuke/sort-issue-template)
- [`suzuki-shunsuke/tfmv`](https://github.com/suzuki-shunsuke/tfmv)
- [`suzuki-shunsuke/tfprovidercheck`](https://github.com/suzuki-shunsuke/tfprovidercheck)
- [`suzuki-shunsuke/tfrstate`](https://github.com/suzuki-shunsuke/tfrstate)
### [`v2026.10.21`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#20261021---2026-10-27)
[Compare Source](https://github.com/jdx/mise/compare/v2026.10.20...v2026.10.21)
##### 🚀 Features
- **(bootstrap)** add `--force` to remove casks prune cannot prove unchanged by [@​jacobbednarz](https://github.com/jacobbednarz) in [#​14985](https://github.com/jdx/mise/pull/14985)
- **(dotfiles)** warn when apply overwrites an edited template target by [@​jdx](https://github.com/jdx) in [#​15020](https://github.com/jdx/mise/pull/15020)
- **(dotfiles)** set up from a dotfiles checkout or Stow packages with less config by [@​jdx](https://github.com/jdx) in [#​15025](https://github.com/jdx/mise/pull/15025)
##### 🐛 Bug Fixes
- **(aqua)** preserve smolvm guest rootfs links by [@​jdx](https://github.com/jdx) in [#​15015](https://github.com/jdx/mise/pull/15015)
- **(ci)** stop ci overrides from killing tests on the shared macOS profile by [@​jdx](https://github.com/jdx) in [#​15026](https://github.com/jdx/mise/pull/15026)
- **(config)** keep root tool inheritance for monorepo children when "." is a config root by [@​jdx](https://github.com/jdx) in [#​15023](https://github.com/jdx/mise/pull/15023)
- **(config)** use the sub-project lockfile for idiomatic files in monorepo task runs by [@​jdx](https://github.com/jdx) in [#​15021](https://github.com/jdx/mise/pull/15021)
- **(config)** keep a skipped version-file link from hiding the file it points at by [@​jdx](https://github.com/jdx) in [#​15006](https://github.com/jdx/mise/pull/15006)
- **(doctor)** don't report uninstalled lazy tools as problems by [@​jdx](https://github.com/jdx) in [#​15024](https://github.com/jdx/mise/pull/15024)
- **(dotfiles)** refuse mise dot add on a template entry by [@​jdx](https://github.com/jdx) in [#​15019](https://github.com/jdx/mise/pull/15019)
- **(lock)** refresh platform entries whose URL belongs to another release by [@​jdx](https://github.com/jdx) in [#​15010](https://github.com/jdx/mise/pull/15010)
- **(lock)** degrade to version-only for pypi tools with uvx_args during a lock sweep by [@​jdx](https://github.com/jdx) in [#​15030](https://github.com/jdx/mise/pull/15030)
- **(packslip)** read a repository's release list from mise-versions first by [@​jdx](https://github.com/jdx) in [#​15032](https://github.com/jdx/mise/pull/15032)
- **(pypi)** fall back to version-only locks when a uv graph can't install by [@​jdx](https://github.com/jdx) in [#​15031](https://github.com/jdx/mise/pull/15031)
##### 📦️ Dependency Updates
- update jdx crates to v7.1.3 by [@​renovate](https://github.com/renovate)\[bot] in [#​14996](https://github.com/jdx/mise/pull/14996)
##### 📦 Registry
- add tuios ([aqua:Gaurav-Gosain/tuios](https://github.com/Gaurav-Gosain/tuios)) by [@​Gaurav-Gosain](https://github.com/Gaurav-Gosain) in [#​14990](https://github.com/jdx/mise/pull/14990)
##### Ci
- **(release)** leave room to retry a hung tarball build by [@​jdx](https://github.com/jdx) in [#​15022](https://github.com/jdx/mise/pull/15022)
##### New Contributors
- [@​Gaurav-Gosain](https://github.com/Gaurav-Gosain) made their first contribution in [#​14990](https://github.com/jdx/mise/pull/14990)
### [`v2026.10.20`](https://github.com/jdx/mise/blob/HEAD/CHANGELOG.md#20261020---2026-10-26)
[Compare Source](https://github.com/jdx/mise/compare/v2026.10.19...v2026.10.20)
##### 🚀 Features
- **(bootstrap)** let Homebrew upgrade casks mise installs by [@​jdx](https://github.com/jdx) in [#​14929](https://github.com/jdx/mise/pull/14929)
- **(bootstrap)** manage existing systemd user units from bootstrap.services by [@​jdx](https://github.com/jdx) in [#​14980](https://github.com/jdx/mise/pull/14980)
- **(bootstrap)** install Windows packages with Chocolatey by [@​jdx](https://github.com/jdx) in [#​14978](https://github.com/jdx/mise/pull/14978)
- **(bootstrap)** support launchd launch events by [@​deecewan](https://github.com/deecewan) in [#​14992](https://github.com/jdx/mise/pull/14992)
- **(completion)** add nushell support to mise completion by [@​jdx](https://github.com/jdx) in [#​14999](https://github.com/jdx/mise/pull/14999)
- **(dotfiles)** render templates in dotfiles.root by [@​jdx](https://github.com/jdx) in [#​14969](https://github.com/jdx/mise/pull/14969)
- **(github)** add version_regex to list only matching release tags by [@​jdx](https://github.com/jdx) in [#​14984](https://github.com/jdx/mise/pull/14984)
##### 🐛 Bug Fixes
- **(backends)** name --global in the switch warning for global lock entries by [@​jdx](https://github.com/jdx) in [#​14976](https://github.com/jdx/mise/pull/14976)
- **(bootstrap)** find a just-installed git outside startup PATH by [@​pmmmwh](https://github.com/pmmmwh) in [#​14919](https://github.com/jdx/mise/pull/14919)
- **(bootstrap)** pin full container ids when hashing compose service references by [@​jdx](https://github.com/jdx) in [#​14958](https://github.com/jdx/mise/pull/14958)
- **(bootstrap)** stage cask apps in a hidden directory by [@​jdx](https://github.com/jdx) in [#​15001](https://github.com/jdx/mise/pull/15001)
- **(config)** warn about an ignored write_targets only when a write uses it by [@​jdx](https://github.com/jdx) in [#​14973](https://github.com/jdx/mise/pull/14973)
- **(doctor)** accept any registry-listed backend for an explicit install by [@​jdx](https://github.com/jdx) in [#​14965](https://github.com/jdx/mise/pull/14965)
- **(doctor)** color mise doctor project output by [@​jdx](https://github.com/jdx) in [#​14970](https://github.com/jdx/mise/pull/14970)
- **(dot)** show the local history path in status and explain split track entries by [@​jdx](https://github.com/jdx) in [#​14979](https://github.com/jdx/mise/pull/14979)
- **(dot)** resolve a relative dot add --source from the current directory by [@​jdx](https://github.com/jdx) in [#​14983](https://github.com/jdx/mise/pull/14983)
- **(dot)** retry git write-tree when Windows refuses a loose object write by [@​jdx](https://github.com/jdx) in [#​15000](https://github.com/jdx/mise/pull/15000)
- **(env)** avoid sops CLI recursion through mise shims by [@​shuaiyafei](https://github.com/shuaiyafei) in [#​14801](https://github.com/jdx/mise/pull/14801)
- **(hook-env)** install error hooks before the hook-env fast path by [@​jdx](https://github.com/jdx) in [#​14963](https://github.com/jdx/mise/pull/14963)
- **(http)** accept # comment lines in netrc files by [@​jdx](https://github.com/jdx) in [#​14964](https://github.com/jdx/mise/pull/14964)
- **(http)** apply Tera filters to {{ version }} in tool option templates by [@​jdx](https://github.com/jdx) in [#​14967](https://github.com/jdx/mise/pull/14967)
- **(lock)** keep npm sidecars in one place for a symlinked config dir by [@​jdx](https://github.com/jdx) in [#​14961](https://github.com/jdx/mise/pull/14961)
- **(lock)** skip platforms excluded by a tool's os option by [@​jdx](https://github.com/jdx) in [#​14959](https://github.com/jdx/mise/pull/14959)
- **(lock)** let mise lock add tools missing from the lockfile under tool_config.locked by [@​jdx](https://github.com/jdx) in [#​15003](https://github.com/jdx/mise/pull/15003)
- **(npm)** skip the aube tree health walk in repeated hook-env runs on Windows by [@​jdx](https://github.com/jdx) in [#​14960](https://github.com/jdx/mise/pull/14960)
- **(oci)** keep absolute symlink targets in system package layers by [@​jdx](https://github.com/jdx) in [#​14968](https://github.com/jdx/mise/pull/14968)
- **(oci)** write aliased tools by their resolved backend in the image config by [@​jdx](https://github.com/jdx) in [#​14971](https://github.com/jdx/mise/pull/14971)
- **(self-update)** leave WinGet-managed installs to winget by [@​jdx](https://github.com/jdx) in [#​14977](https://github.com/jdx/mise/pull/14977)
- **(shim)** keep command wrappers in place during a concurrent reshim by [@​HackingGate](https://github.com/HackingGate) in [#​14931](https://github.com/jdx/mise/pull/14931)
- **(task)** stop sibling tasks run through Git Bash when a task fails on Windows by [@​jdx](https://github.com/jdx) in [#​14966](https://github.com/jdx/mise/pull/14966)
- **(vfox)** send PreInstall headers when locking downloads artifacts by [@​jdx](https://github.com/jdx) in [#​15002](https://github.com/jdx/mise/pull/15002)
##### 📚 Documentation
- **(ide)** add mise-zed, and screenshots of mise-vscode and mise-zed by [@​hverlin](https://github.com/hverlin) in [#​14988](https://github.com/jdx/mise/pull/14988)
- **(templates)** list the settings that render templates by [@​jdx](https://github.com/jdx) in [#​15004](https://github.com/jdx/mise/pull/15004)
- **(use)** explain that a bare tool reuses the newest installed version by [@​sahidvelji](https://github.com/sahidvelji) in [#​14949](https://github.com/jdx/mise/pull/14949)
##### 📦️ Dependency Updates
- update aube to v2.8.3 by [@​renovate](https://github.com/renovate)\[bot] in [#​14957](https://github.com/jdx/mise/pull/14957)
- update jdx crates to v7.1.2 by [@​renovate](https://github.com/renovate)\[bot] in [#​14934](https://github.com/jdx/mise/pull/14934)
- ignore zstd-safe 7 advisories from zstd 0.13 dependents by [@​jdx](https://github.com/jdx) in [#​15012](https://github.com/jdx/mise/pull/15012)
##### 📦 Registry
- add packslip and aqua backends to jactionlint by [@​sahidvelji](https://github.com/sahidvelji) in [#​14947](https://github.com/jdx/mise/pull/14947)
##### Security
- **(config)** make elevate_with a global-only setting by [@​jdx](https://github.com/jdx) in [#​14972](https://github.com/jdx/mise/pull/14972)
##### New Contributors
- [@​deecewan](https://github.com/deecewan) made their first contribution in [#​14992](https://github.com/jdx/mise/pull/14992)
- [@​HackingGate](https://github.com/HackingGate) made their first contribution in [#​14931](https://github.com/jdx/mise/pull/14931)
- [@​shuaiyafei](https://github.com/shuaiyafei) made their first contribution in [#​14801](https://github.com/jdx/mise/pull/14801)
- [@​sahidvelji](https://github.com/sahidvelji) made their first contribution in [#​14949](https://github.com/jdx/mise/pull/14949)
##### 📦 Aqua Registry Updates
##### New Packages (3)
- [`glsec/glsec`](https://github.com/glsec/glsec)
- [`home-operations/flate`](https://github.com/home-operations/flate)
- [`yashikota/tlc-static`](https://github.com/yashikota/tlc-static)
##### Updated Packages (10)
- [`cloudposse/atmos`](https://github.com/cloudposse/atmos)
- [`jdx/mise`](https://github.com/jdx/mise)
- [`suzuki-shunsuke/ci-info`](https://github.com/suzuki-shunsuke/ci-info)
- [`suzuki-shunsuke/cmdx`](https://github.com/suzuki-shunsuke/cmdx)
- [`suzuki-shunsuke/disable-checkout-persist-credentials`](https://github.com/suzuki-shunsuke/disable-checkout-persist-credentials)
- [`suzuki-shunsuke/ghalint`](https://github.com/suzuki-shunsuke/ghalint)
- [`suzuki-shunsuke/ghatm`](https://github.com/suzuki-shunsuke/ghatm)
- [`suzuki-shunsuke/ghomfc`](https://github.com/suzuki-shunsuke/ghomfc)
- [`suzuki-shunsuke/mkghtag`](https://github.com/suzuki-shunsuke/mkghtag)
- [`twpayne/chezmoi`](https://github.com/twpayne/chezmoi)
</details>
<details>
<summary>jsdom/jsdom (jsdom)</summary>
### [`v31.0.1`](https://github.com/jsdom/jsdom/releases/tag/v31.0.1)
[Compare Source](https://github.com/jsdom/jsdom/compare/v31.0.0...v31.0.1)
- Improved performance of computed style reads, selector matching, CSS variable substitution, CSS shorthand updates, and focus handling on pages with many style rules. ([@​scttcper](https://github.com/scttcper))
- Improved performance when building detached DOM trees and reading `node.isConnected`. ([@​scttcper](https://github.com/scttcper))
- Fixed `element.tabIndex` handling of invalid and out-of-range `tabindex=""` values to use the element's default instead of returning zero or wrapping. Values with trailing non-digits now use their leading integer, so `tabindex="1e2"` yields `1` instead of `100`. ([@​rome-xi](https://github.com/rome-xi))
- Fixed CSS `ident()` results containing spaces or leading digits losing their required escaping during serialization and variable substitution. ([@​scttcper](https://github.com/scttcper))
- Fixed 'max-lines' values combining an integer and `auto` to serialize with the integer first, such as `3 auto`.
</details>
<details>
<summary>nodejs/node (node)</summary>
### [`v25.9.0`](https://github.com/nodejs/node/releases/tag/v25.9.0): 2026-04-01, Version 25.9.0 (Current), @​aduh95
[Compare Source](https://github.com/nodejs/node/compare/v25.8.2...v25.9.0)
##### Notable Changes
##### Test runner module mocking improvements
`MockModuleOptions.defaultExport` and `MockModuleOptions.namedExports` have been
consolidated into a single option `MockModuleOptions.exports` to align with user
expectations and other test runners.
A `default` property on `MockModuleOptions.exports` represents the default
export, and own enumerable properties are treated as named exports.
An automated migration is available to update user code:
<https://github.com/nodejs/userland-migrations/tree/main/recipes/mock-module-exports>
```bash
npx codemod @nodejs/mock-module-exports
```
Contributed by sangwook in [#​61727](https://github.com/nodejs/node/pull/61727).
##### Other notable changes
- \[[`312476cb84`](https://github.com/nodejs/node/commit/312476cb84)] - **(SEMVER-MINOR)** **async_hooks**: add using scopes to `AsyncLocalStorage` (Stephen Belanger) [#​61674](https://github.com/nodejs/node/pull/61674)
- \[[`62d2cd473b`](https://github.com/nodejs/node/commit/62d2cd473b)] - **(SEMVER-MINOR)** **cli**: add `--max-heap-size` option (tannal) [#​58708](https://github.com/nodejs/node/pull/58708)
- \[[`d0ebf0e44b`](https://github.com/nodejs/node/commit/d0ebf0e44b)] - **(SEMVER-MINOR)** **crypto**: add `TurboSHAKE` and `KangarooTwelve` Web Cryptography algorithms (Filip Skokan) [#​62183](https://github.com/nodejs/node/pull/62183)
- \[[`f85b9d9fa8`](https://github.com/nodejs/node/commit/f85b9d9fa8)] - **(SEMVER-MINOR)** **repl**: add customizable error handling (Anna Henningsen) [#​62188](https://github.com/nodejs/node/pull/62188)
- \[[`67b854d407`](https://github.com/nodejs/node/commit/67b854d407)] - **(SEMVER-MINOR)** **repl**: remove dependency on `node:domain` (Matteo Collina) [#​61227](https://github.com/nodejs/node/pull/61227)
- \[[`966b700623`](https://github.com/nodejs/node/commit/966b700623)] - **(SEMVER-MINOR)** **sea**: support code cache for ESM entrypoint in SEA (Joyee Cheung) [#​62158](https://github.com/nodejs/node/pull/62158)
- \[[`e1f0d2a014`](https://github.com/nodejs/node/commit/e1f0d2a014)] - **(SEMVER-MINOR)** **stream**: add stream/iter Implementation (James M Snell) [#​62066](https://github.com/nodejs/node/pull/62066)
##### Commits
- \[[`312476cb84`](https://github.com/nodejs/node/commit/312476cb84)] - **(SEMVER-MINOR)** **async_hooks**: add using scopes to AsyncLocalStorage (Stephen Belanger) [#​61674](https://github.com/nodejs/node/pull/61674)
- \[[`bfff8cb2ab`](https://github.com/nodejs/node/commit/bfff8cb2ab)] - **(SEMVER-MINOR)** **benchmark**: add benchmarks for experimental stream/iter (James M Snell) [#​62066](https://github.com/nodejs/node/pull/62066)
- \[[`c721d68502`](https://github.com/nodejs/node/commit/c721d68502)] - **benchmark**: fix destructuring in dgram/single-buffer (Ali Hassan) [#​62084](https://github.com/nodejs/node/pull/62084)
- \[[`e2f03c8e92`](https://github.com/nodejs/node/commit/e2f03c8e92)] - **buffer**: improve performance of multiple Buffer operations (Ali Hassan) [#​61871](https://github.com/nodejs/node/pull/61871)
- \[[`2fcd07f1ba`](https://github.com/nodejs/node/commit/2fcd07f1ba)] - **build**: support empty libname flags in `configure.py` (Antoine du Hamel) [#​62477](https://github.com/nodejs/node/pull/62477)
- \[[`b800c57fce`](https://github.com/nodejs/node/commit/b800c57fce)] - **build**: fix timezone-update path references (Chengzhong Wu) [#​62280](https://github.com/nodejs/node/pull/62280)
- \[[`7dc5a1e9b4`](https://github.com/nodejs/node/commit/7dc5a1e9b4)] - **build**: skip dockit on IBMi (SRAVANI GUNDEPALLI) [#​62189](https://github.com/nodejs/node/pull/62189)
- \[[`f0eea0f905`](https://github.com/nodejs/node/commit/f0eea0f905)] - **build**: fix --node-builtin-modules-path (Filip Skokan) [#​62115](https://github.com/nodejs/node/pull/62115)
- \[[`62d2cd473b`](https://github.com/nodejs/node/commit/62d2cd473b)] - **(SEMVER-MINOR)** **cli**: add --max-heap-size option (tannal) [#​58708](https://github.com/nodejs/node/pull/58708)
- \[[`ac4b485698`](https://github.com/nodejs/node/commit/ac4b485698)] - **crypto**: update root certificates to NSS 3.121 (Node.js GitHub Bot) [#​62485](https://github.com/nodejs/node/pull/62485)
- \[[`d0ebf0e44b`](https://github.com/nodejs/node/commit/d0ebf0e44b)] - **(SEMVER-MINOR)** **crypto**: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) [#​62183](https://github.com/nodejs/node/pull/62183)
- \[[`3009980d9d`](https://github.com/nodejs/node/commit/3009980d9d)] - **crypto**: add crypto::GetSSLCtx API for addon access to OpenSSL contexts (Tim Perry) [#​62254](https://github.com/nodejs/node/pull/62254)
- \[[`f5725ca81d`](https://github.com/nodejs/node/commit/f5725ca81d)] - **crypto**: reject ML-KEM/ML-DSA [PKCS#8](https://github.com/PKCS/node/issues/8) import without seed in SubtleCrypto (Filip Skokan) [#​62218](https://github.com/nodejs/node/pull/62218)
- \[[`f69ed4bc3f`](https://github.com/nodejs/node/commit/f69ed4bc3f)] - **crypto**: rename CShakeParams and KmacParams length to outputLength (Filip Skokan) [#​61875](https://github.com/nodejs/node/pull/61875)
- \[[`4d96e53570`](https://github.com/nodejs/node/commit/4d96e53570)] - **crypto**: refactor WebCrypto AEAD algorithms auth tag handling (Filip Skokan) [#​62169](https://github.com/nodejs/node/pull/62169)
- \[[`93d77719e8`](https://github.com/nodejs/node/commit/93d77719e8)] - **crypto**: read algorithm name property only once in normalizeAlgorithm (Filip Skokan) [#​62170](https://github.com/nodejs/node/pull/62170)
- \[[`3d2e23a981`](https://github.com/nodejs/node/commit/3d2e23a981)] - **deps**: update ada to 3.4.4 (Node.js GitHub Bot) [#​62414](https://github.com/nodejs/node/pull/62414)
- \[[`176d6d2205`](https://github.com/nodejs/node/commit/176d6d2205)] - **deps**: update timezone to 2026a (Node.js GitHub Bot) [#​62164](https://github.com/nodejs/node/pull/62164)
- \[[`95c7fc67ba`](https://github.com/nodejs/node/commit/95c7fc67ba)] - **deps**: update googletest to [`2461743`](https://github.com/nodejs/node/commit/2461743991f9aa53e9a3625eafcbacd81a3c74cd) (Node.js GitHub Bot) [#​62484](https://github.com/nodejs/node/pull/62484)
- \[[`e5e9f2044a`](https://github.com/nodejs/node/commit/e5e9f2044a)] - **deps**: update simdjson to 4.5.0 (Node.js GitHub Bot) [#​62382](https://github.com/nodejs/node/pull/62382)
- \[[`905b94266a`](https://github.com/nodejs/node/commit/905b94266a)] - **deps**: update ngtcp2 to 1.21.0 (Node.js GitHub Bot) [#​62051](https://github.com/nodejs/node/pull/62051)
- \[[`180c150122`](https://github.com/nodejs/node/commit/180c150122)] - **deps**: V8: cherry-pick [`cf1bce4`](https://github.com/nodejs/node/commit/cf1bce40a5ef) (Richard Lau) [#​62449](https://github.com/nodejs/node/pull/62449)
- \[[`bc265aa003`](https://github.com/nodejs/node/commit/bc265aa003)] - **deps**: upgrade npm to 11.12.1 (npm team) [#​62448](https://github.com/nodejs/node/pull/62448)
- \[[`f1b28612c4`](https://github.com/nodejs/node/commit/f1b28612c4)] - **deps**: V8: cherry-pick [`b25cd62`](https://github.com/nodejs/node/commit/b25cd62c7ba2) (Yagiz Nizipli) [#​62354](https://github.com/nodejs/node/pull/62354)
- \[[`757719d2af`](https://github.com/nodejs/node/commit/757719d2af)] - **deps**: disable rust icu compiled_data features (Chengzhong Wu) [#​62284](https://github.com/nodejs/node/pull/62284)
- \[[`3bdc955b63`](https://github.com/nodejs/node/commit/3bdc955b63)] - **deps**: update sqlite to 3.51.3 (Node.js GitHub Bot) [#​62256](https://github.com/nodejs/node/pull/62256)
- \[[`a9703d194a`](https://github.com/nodejs/node/commit/a9703d194a)] - **deps**: update googletest to [`73a63ea`](https://github.com/nodejs/node/commit/73a63ea05dc8ca29ec1d2c1d66481dd0de1950f1) (Node.js GitHub Bot) [#​61927](https://github.com/nodejs/node/pull/61927)
- \[[`85138935cb`](https://github.com/nodejs/node/commit/85138935cb)] - **deps**: update merve to 1.2.2 (Node.js GitHub Bot) [#​62213](https://github.com/nodejs/node/pull/62213)
- \[[`231521e75e`](https://github.com/nodejs/node/commit/231521e75e)] - **diagnostics_channel**: add diagnostics channels for web locks (Ilyas Shabi) [#​62123](https://github.com/nodejs/node/pull/62123)
- \[[`0093863664`](https://github.com/nodejs/node/commit/0093863664)] - **doc**: deprecate `module.register()` (DEP0205) (Geoffrey Booth) [#​62395](https://github.com/nodejs/node/pull/62395)
- \[[`0b96ece6be`](https://github.com/nodejs/node/commit/0b96ece6be)] - **doc**: clarify that features cannot be both experimental and deprecated (Antoine du Hamel) [#​62456](https://github.com/nodejs/node/pull/62456)
- \[[`8d3ea975f5`](https://github.com/nodejs/node/commit/8d3ea975f5)] - **doc**: fix 'transfered' typo in quic.md (lilianakatrina684-a11y) [#​62492](https://github.com/nodejs/node/pull/62492)
- \[[`08ff16e0ba`](https://github.com/nodejs/node/commit/08ff16e0ba)] - **doc**: move sqlite type conversion section to correct level (René) [#​62482](https://github.com/nodejs/node/pull/62482)
- \[[`61cc747dd8`](https://github.com/nodejs/node/commit/61cc747dd8)] - **doc**: add Rafael to last security release steward (Rafael Gonzaga) [#​62423](https://github.com/nodejs/node/pull/62423)
- \[[`64cfa5a6fa`](https://github.com/nodejs/node/commit/64cfa5a6fa)] - **doc**: use npm-published version of doc-kit (Aviv Keller) [#​62139](https://github.com/nodejs/node/pull/62139)
- \[[`1020321fb0`](https://github.com/nodejs/node/commit/1020321fb0)] - **doc**: fix overstated Date header requirement in response.sendDate (Kit Dallege) [#​62206](https://github.com/nodejs/node/pull/62206)
- \[[`9caa7855b2`](https://github.com/nodejs/node/commit/9caa7855b2)] - **doc**: fix guaranteed typo (lilianakatrina684-a11y) [#​62374](https://github.com/nodejs/node/pull/62374)
- \[[`e254f65306`](https://github.com/nodejs/node/commit/e254f65306)] - **doc**: enhance clarification about the main field (Mowafak Almahaini) [#​62302](https://github.com/nodejs/node/pull/62302)
- \[[`9e724b53f8`](https://github.com/nodejs/node/commit/9e724b53f8)] - **doc**: remove spawn with shell example from bat/cmd section (Kit Dallege) [#​62243](https://github.com/nodejs/node/pull/62243)
- \[[`7f37c17516`](https://github.com/nodejs/node/commit/7f37c17516)] - **doc**: minor typo fix (Jeff Matson) [#​62358](https://github.com/nodejs/node/pull/62358)
- \[[`eb0ca98f01`](https://github.com/nodejs/node/commit/eb0ca98f01)] - **doc**: add path to vulnerabilities.json mention (Rafael Gonzaga) [#​62355](https://github.com/nodejs/node/pull/62355)
- \[[`198b6e0932`](https://github.com/nodejs/node/commit/198b6e0932)] - **doc**: deprecate CryptoKey use in node:crypto (Filip Skokan) [#​62321](https://github.com/nodejs/node/pull/62321)
- \[[`17e5aee6c5`](https://github.com/nodejs/node/commit/17e5aee6c5)] - **doc**: fix small environment_variables typo (chris) [#​62279](https://github.com/nodejs/node/pull/62279)
- \[[`193d629895`](https://github.com/nodejs/node/commit/193d629895)] - **doc**: test and test-only targets do not run linter (Xavier Stouder) [#​62120](https://github.com/nodejs/node/pull/62120)
- \[[`4a1f20ec4a`](https://github.com/nodejs/node/commit/4a1f20ec4a)] - **doc**: clarify fs.ReadStream and fs.WriteStream are not constructable (Kit Dallege) [#​62208](https://github.com/nodejs/node/pull/62208)
- \[[`f976c9214d`](https://github.com/nodejs/node/commit/f976c9214d)] - **doc**: clarify that any truthy value of `shell` is part of DEP0190 (Antoine du Hamel) [#​62249](https://github.com/nodejs/node/pull/62249)
- \[[`4d83972681`](https://github.com/nodejs/node/commit/4d83972681)] - **doc**: remove outdated Chrome 66 and ndb references from debugger (Kit Dallege) [#​62202](https://github.com/nodejs/node/pull/62202)
- \[[`71f2eada5b`](https://github.com/nodejs/node/commit/71f2eada5b)] - **doc**: add throwIfNoEntry version history to fs.stat (kovan) [#​62204](https://github.com/nodejs/node/pull/62204)
- \[[`670c80893b`](https://github.com/nodejs/node/commit/670c80893b)] - **doc**: add note (and caveat) for `mock.module` about customization hooks (Jacob Smith) [#​62075](https://github.com/nodejs/node/pull/62075)
- \[[`2ff5cb13f5`](https://github.com/nodejs/node/commit/2ff5cb13f5)] - **doc,test**: clarify --eval syntax for leading '-' scripts (kovan) [#​62244](https://github.com/nodejs/node/pull/62244)
- \[[`6c6c9004c4`](https://github.com/nodejs/node/commit/6c6c9004c4)] - **esm**: fix typo in worker loader hook comment (jakecastelli) [#​62475](https://github.com/nodejs/node/pull/62475)
- \[[`1cdd23c9f3`](https://github.com/nodejs/node/commit/1cdd23c9f3)] - **esm**: fix source phase identity bug in loadCache eviction (Guy Bedford) [#​62415](https://github.com/nodejs/node/pull/62415)
- \[[`4f4ff15794`](https://github.com/nodejs/node/commit/4f4ff15794)] - **esm**: fix path normalization in `finalizeResolution` (Antoine du Hamel) [#​62080](https://github.com/nodejs/node/pull/62080)
- \[[`088167d102`](https://github.com/nodejs/node/commit/088167d102)] - **events**: avoid cloning listeners array on every emit (Gürgün Dayıoğlu) [#​62261](https://github.com/nodejs/node/pull/62261)
- \[[`0250b436ee`](https://github.com/nodejs/node/commit/0250b436ee)] - **fs**: fix cpSync to handle non-ASCII characters (Stefan Stojanovic) [#​61950](https://github.com/nodejs/node/pull/61950)
- \[[`b67a8fb171`](https://github.com/nodejs/node/commit/b67a8fb171)] - **inspector**: add Target.getTargets and extract TargetManager (Kohei) [#​62487](https://github.com/nodejs/node/pull/62487)
- \[[`ffcc5a5722`](https://github.com/nodejs/node/commit/ffcc5a5722)] - **lib**: make SubtleCrypto.supports enumerable (Filip Skokan) [#​62307](https://github.com/nodejs/node/pull/62307)
- \[[`92ef2ad8fa`](https://github.com/nodejs/node/commit/92ef2ad8fa)] - **lib**: prefer primordials in SubtleCrypto (Filip Skokan) [#​62226](https://github.com/nodejs/node/pull/62226)
- \[[`40a43ac4d0`](https://github.com/nodejs/node/commit/40a43ac4d0)] - **module**: fix coverage of mocked CJS modules imported from ESM (Marco) [#​62133](https://github.com/nodejs/node/pull/62133)
- \[[`3ef0a5b90e`](https://github.com/nodejs/node/commit/3ef0a5b90e)] - **quic**: remove CryptoKey support from session keys option (Filip Skokan) [#​62335](https://github.com/nodejs/node/pull/62335)
- \[[`3c8dd8eb8e`](https://github.com/nodejs/node/commit/3c8dd8eb8e)] - **repl**: use vm DONT_CONTEXTIFY context (Chengzhong Wu) [#​62371](https://github.com/nodejs/node/pull/62371)
- \[[`f85b9d9fa8`](https://github.com/nodejs/node/commit/f85b9d9fa8)] - **(SEMVER-MINOR)** **repl**: add customizable error handling (Anna Henningsen) [#​62188](https://github.com/nodejs/node/pull/62188)
- \[[`e4c164e045`](https://github.com/nodejs/node/commit/e4c164e045)] - **repl**: handle exceptions from async context after close (Anna Henningsen) [#​62165](https://github.com/nodejs/node/pull/62165)
- \[[`67b854d407`](https://github.com/nodejs/node/commit/67b854d407)] - **(SEMVER-MINOR)** **repl**: remove dependency on domain module (Matteo Collina) [#​61227](https://github.com/nodejs/node/pull/61227)
- \[[`966b700623`](https://github.com/nodejs/node/commit/966b700623)] - **(SEMVER-MINOR)** **sea**: support code cache for ESM entrypoint in SEA (Joyee Cheung) [#​62158](https://github.com/nodejs/node/pull/62158)
- \[[`fe82baf970`](https://github.com/nodejs/node/commit/fe82baf970)] - **src**: improve EC JWK import performance (Filip Skokan) [#​62396](https://github.com/nodejs/node/pull/62396)
- \[[`d490b171e0`](https://github.com/nodejs/node/commit/d490b171e0)] - **src**: handle null backing store in ArrayBufferViewContents::Read (Mert Can Altin) [#​62343](https://github.com/nodejs/node/pull/62343)
- \[[`0e4af848bc`](https://github.com/nodejs/node/commit/0e4af848bc)] - **src**: convert context_frame field in AsyncWrap to internal field (Anna Henningsen) [#​62103](https://github.com/nodejs/node/pull/62103)
- \[[`02980b8c8f`](https://github.com/nodejs/node/commit/02980b8c8f)] - **src**: enable compilation/linking with OpenSSL 4.0 (Filip Skokan) [#​62410](https://github.com/nodejs/node/pull/62410)
- \[[`064f7c2fa6`](https://github.com/nodejs/node/commit/064f7c2fa6)] - **src**: use stack allocation in indexOf latin1 path (Mert Can Altin) [#​62268](https://github.com/nodejs/node/pull/62268)
- \[[`ede52bc2dc`](https://github.com/nodejs/node/commit/ede52bc2dc)] - **src,sqlite**: fix filterFunc dangling reference (Edy Silva) [#​62281](https://github.com/nodejs/node/pull/62281)
- \[[`e1f0d2a014`](https://github.com/nodejs/node/commit/e1f0d2a014)] - **(SEMVER-MINOR)** **stream**: add stream/iter Implementation (James M Snell) [#​62066](https://github.com/nodejs/node/pull/62066)
- \[[`03839fb087`](https://github.com/nodejs/node/commit/03839fb087)] - **stream**: preserve error over AbortError in pipeline (Marco) [#​62113](https://github.com/nodejs/node/pull/62113)
- \[[`0000d2f011`](https://github.com/nodejs/node/commit/0000d2f011)] - **stream**: replace bind with arrow function for onwrite callback (Ali Hassan) [#​62087](https://github.com/nodejs/node/pull/62087)
- \[[`3796a73719`](https://github.com/nodejs/node/commit/3796a73719)] - **test**: update WPT for WebCryptoAPI to [`2cb332d`](https://github.com/nodejs/node/commit/2cb332d710) (Node.js GitHub Bot) [#​62483](https://github.com/nodejs/node/pull/62483)
- \[[`ad8309415b`](https://github.com/nodejs/node/commit/ad8309415b)] - **test**: update WPT for url to [`fc3e651`](https://github.com/nodejs/node/commit/fc3e651593) (Node.js GitHub Bot) [#​62379](https://github.com/nodejs/node/pull/62379)
- \[[`bed89b037e`](https://github.com/nodejs/node/commit/bed89b037e)] - **test**: wait for reattach before initial break on restart (Yuya Inoue) [#​62471](https://github.com/nodejs/node/pull/62471)
- \[[`c9ffffcc55`](https://github.com/nodejs/node/commit/c9ffffcc55)] - **test**: disable flaky WPT Blob test on AIX (James M Snell) [#​62470](https://github.com/nodejs/node/pull/62470)
- \[[`fd41ef31f6`](https://github.com/nodejs/node/commit/fd41ef31f6)] - **(SEMVER-MINOR)** **test**: add tests for experimental stream/iter implementation (James M Snell) [#​62066](https://github.com/nodejs/node/pull/62066)
- \[[`1b9d8d3eec`](https://github.com/nodejs/node/commit/1b9d8d3eec)] - **test**: avoid flaky run wait in debugger restart test (Yuya Inoue) [#​62112](https://github.com/nodejs/node/pull/62112)
- \[[`cb08a29d51`](https://github.com/nodejs/node/commit/cb08a29d51)] - **test**: skip test-cluster-dgram-reuse on AIX 7.3 (Stewart X Addison) [#​62238](https://github.com/nodejs/node/pull/62238)
- \[[`abea0af8a9`](https://github.com/nodejs/node/commit/abea0af8a9)] - **test**: add WebCrypto Promise.prototype.then pollution regression tests (Filip Skokan) [#​62226](https://github.com/nodejs/node/pull/62226)
- \[[`47a2132269`](https://github.com/nodejs/node/commit/47a2132269)] - **test**: update WPT for WebCryptoAPI to [`6a1c545`](https://github.com/nodejs/node/commit/6a1c545d77) (Node.js GitHub Bot) [#​62187](https://github.com/nodejs/node/pull/62187)
- \[[`2c63d3006c`](https://github.com/nodejs/node/commit/2c63d3006c)] - **test_runner**: add exports option for module mocks (sangwook) [#​61727](https://github.com/nodejs/node/pull/61727)
- \[[`44ac0e1302`](https://github.com/nodejs/node/commit/44ac0e1302)] - **test_runner**: make it compatible with fake timers (Matteo Collina) [#​59272](https://github.com/nodejs/node/pull/59272)
- \[[`1865691275`](https://github.com/nodejs/node/commit/1865691275)] - **test_runner**: set non-zero exit code when suite errors occur (Edy Silva) [#​62282](https://github.com/nodejs/node/pull/62282)
- \[[`0252b2bab8`](https://github.com/nodejs/node/commit/0252b2bab8)] - **tools**: bump picomatch from 4.0.3 to 4.0.4 in /tools/eslint (dependabot\[bot]) [#​62439](https://github.com/nodejs/node/pull/62439)
- \[[`3368155267`](https://github.com/nodejs/node/commit/3368155267)] - **tools**: bump yaml from 2.8.2 to 2.8.3 in /tools/doc (dependabot\[bot]) [#​62437](https://github.com/nodejs/node/pull/62437)
- \[[`5e47c359f5`](https://github.com/nodejs/node/commit/5e47c359f5)] - **tools**: adopt the `--check-for-duplicates` NCU flag (Antoine du Hamel) [#​62478](https://github.com/nodejs/node/pull/62478)
- \[[`4a604e82d0`](https://github.com/nodejs/node/commit/4a604e82d0)] - **tools**: bump picomatch in /tools/doc (dependabot\[bot]) [#​62438](https://github.com/nodejs/node/pull/62438)
- \[[`d1a98b4ddb`](https://github.com/nodejs/node/commit/d1a98b4ddb)] - **tools**: bump flatted from 3.4.1 to 3.4.2 in /tools/eslint (dependabot\[bot]) [#​62375](https://github.com/nodejs/node/pull/62375)
- \[[`c32daa1ab4`](https://github.com/nodejs/node/commit/c32daa1ab4)] - **tools**: bump eslint deps (Huáng Jùnliàng) [#​62356](https://github.com/nodejs/node/pull/62356)
- \[[`7a2fcc6d41`](https://github.com/nodejs/node/commit/7a2fcc6d41)] - **tools**: do not swallow error in `lint-nix` workflow (Antoine du Hamel) [#​62292](https://github.com/nodejs/node/pull/62292)
- \[[`c41a2871b5`](https://github.com/nodejs/node/commit/c41a2871b5)] - **tools**: add eslint-plugin-regexp (Huáng Jùnliàng) [#​62093](https://github.com/nodejs/node/pull/62093)
- \[[`56dfeb06df`](https://github.com/nodejs/node/commit/56dfeb06df)] - **tools**: fix timeout errors in `lint-nix` job (Antoine du Hamel) [#​62265](https://github.com/nodejs/node/pull/62265)
- \[[`22fc8078e8`](https://github.com/nodejs/node/commit/22fc8078e8)] - **tools**: bump flatted from 3.3.3 to 3.4.1 in /tools/eslint (dependabot\[bot]) [#​62255](https://github.com/nodejs/node/pull/62255)
- \[[`409b0663bd`](https://github.com/nodejs/node/commit/409b0663bd)] - **tools**: bump undici from 6.23.0 to 6.24.1 in /tools/doc (dependabot\[bot]) [#​62250](https://github.com/nodejs/node/pull/62250)
- \[[`67c69750f4`](https://github.com/nodejs/node/commit/67c69750f4)] - **tools**: validate all commits that are pushed to `main` (Antoine du Hamel) [#​62246](https://github.com/nodejs/node/pull/62246)
- \[[`7d9db8cd21`](https://github.com/nodejs/node/commit/7d9db8cd21)] - **tools**: keep GN files when updating Merve (Antoine du Hamel) [#​62167](https://github.com/nodejs/node/pull/62167)
- \[[`6c8fa42ba2`](https://github.com/nodejs/node/commit/6c8fa42ba2)] - **typings**: rationalise TypedArray types (René) [#​62174](https://github.com/nodejs/node/pull/62174)
- \[[`531c64d04e`](https://github.com/nodejs/node/commit/531c64d04e)] - **url**: enable simdutf for ada (Yagiz Nizipli) [#​61477](https://github.com/nodejs/node/pull/61477)
- \[[`2000caccde`](https://github.com/nodejs/node/commit/2000caccde)] - **util**: allow color aliases in styleText (sangwook) [#​62180](https://github.com/nodejs/node/pull/62180)
- \[[`0aed332ab4`](https://github.com/nodejs/node/commit/0aed332ab4)] - **wasm**: support js string constant esm import (Guy Bedford) [#​62198](https://github.com/nodejs/node/pull/62198)
- \[[`d3fd4a978b`](https://github.com/nodejs/node/commit/d3fd4a978b)] - **worker**: heap profile optimizations (Ilyas Shabi) [#​62201](https://github.com/nodejs/node/pull/62201)
- \[[`e992a34a18`](https://github.com/nodejs/node/commit/e992a34a18)] - **zlib**: fix use-after-free when reset() is called during write (Matteo Collina) [#​62325](https://github.com/nodejs/node/pull/62325)
</details>
<details>
<summary>python/cpython (python)</summary>
### [`v3.15.2`](https://github.com/python/cpython/compare/v3.15.1...v3.15.2)
[Compare Source](https://github.com/python/cpython/compare/v3.15.1...v3.15.2)
### [`v3.15.1`](https://github.com/python/cpython/compare/v3.15.0...v3.15.1)
[Compare Source](https://github.com/python/cpython/compare/v3.15.0...v3.15.1)
### [`v3.15.0`](https://github.com/python/cpython/compare/v3.14.10...v3.15.0)
[Compare Source](https://github.com/python/cpython/compare/v3.14.10...v3.15.0)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- 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.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzIuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjIzNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
25.5.0→25.9.92026.10.19→2026.11.731.0.0→31.0.125.8.2→25.9.03.14→3.15.2Release Notes
jdx/mise (ghcr.io/jdx/mise)
v2026.11.7Compare Source
🚀 Features
🐛 Bug Fixes
📚 Documentation
🧪 Testing
📦️ Dependency Updates
Ci
📦 Aqua Registry Updates
New Packages (9)
acelot/termtasticcplieger/grelotemanuele-em/proxelargmr/pgfmtguarnz/deadvaluesjunior/kcxp10node/k10svercel-labs/agent-desktopvshulcz/deja-vuUpdated Packages (2)
aakso/ssh-inscribe/sshisharkdp/fdv2026.11.6Compare Source
🚀 Features
🐛 Bug Fixes
mise env --dotenvso they read back unchanged by @jdx in #15490⚡ Performance
📦️ Dependency Updates
v2026.11.5Compare Source
🚀 Features
mise dot filesto show what is tracked in a directory by @jdx in #15456🐛 Bug Fixes
v2026.11.4Compare Source
🚀 Features
🐛 Bug Fixes
📚 Documentation
📦️ Dependency Updates
📦 Aqua Registry Updates
New Packages (6)
babarot/regomarkewhauser/shuckmicrosoft/apmnushell/nufmtsigoden/argctiny-earth-moon/outskirtsv2026.11.3Compare Source
🚀 Features
🐛 Bug Fixes
📚 Documentation
Chore
v2026.11.2Compare Source
🚀 Features
🐛 Bug Fixes
📚 Documentation
🧪 Testing
📦️ Dependency Updates
📦 Registry
Ci
v2026.11.1Compare Source
🚀 Features
🐛 Bug Fixes
📚 Documentation
🧪 Testing
📦️ Dependency Updates
📦 Registry
Ci
Security
New Contributors
📦 Aqua Registry Updates
Updated Packages (1)
supabase/cliv2026.11.0Compare Source
🚀 Features
🐛 Bug Fixes
🚜 Refactor
📚 Documentation
⚡ Performance
🧪 Testing
📦️ Dependency Updates
be26560by @renovate[bot] in #15308📦 Registry
Chore
Security
New Contributors
📦 Aqua Registry Updates
New Packages (5)
getsentry/toolkit/cligitlab.com/gitlab-org/ci-cd/runner-tools/glciherdrdev/herdr-corepleaseai/asanatimmo001/system-bridgeUpdated Packages (8)
Canop/dyskjedisct1/minisignmattn/zig-updateodigos-io/odigosoxc-project/oxc/oxlintsuperbrothers/ksorttailscale/tailscaletheseus-rs/postgresql-binariesv2026.10.25Compare Source
🚀 Features
🐛 Bug Fixes
📦️ Dependency Updates
📦 Registry
v2026.10.24Compare Source
🚀 Features
🐛 Bug Fixes
📚 Documentation
⚡ Performance
📦 Registry
Chore
New Contributors
v2026.10.23Compare Source
🚀 Features
🐛 Bug Fixes
📚 Documentation
⚡ Performance
🧪 Testing
📦 Registry
Security
v2026.10.22Compare Source
🚀 Features
mise shell --unsetby @jdx in #15088🐛 Bug Fixes
📚 Documentation
📦️ Dependency Updates
d1527c8by @renovate[bot] in #15064📦 Registry
New Contributors
📦 Aqua Registry Updates
Updated Packages (9)
aquaproj/aqua-registry-updaterlintnet/lintnetsuzuki-shunsuke/ghprojsuzuki-shunsuke/github-commentsuzuki-shunsuke/rgosuzuki-shunsuke/sort-issue-templatesuzuki-shunsuke/tfmvsuzuki-shunsuke/tfproviderchecksuzuki-shunsuke/tfrstatev2026.10.21Compare Source
🚀 Features
--forceto remove casks prune cannot prove unchanged by @jacobbednarz in #14985🐛 Bug Fixes
📦️ Dependency Updates
📦 Registry
Ci
New Contributors
v2026.10.20Compare Source
🚀 Features
🐛 Bug Fixes
📚 Documentation
📦️ Dependency Updates
📦 Registry
Security
New Contributors
📦 Aqua Registry Updates
New Packages (3)
glsec/glsechome-operations/flateyashikota/tlc-staticUpdated Packages (10)
cloudposse/atmosjdx/misesuzuki-shunsuke/ci-infosuzuki-shunsuke/cmdxsuzuki-shunsuke/disable-checkout-persist-credentialssuzuki-shunsuke/ghalintsuzuki-shunsuke/ghatmsuzuki-shunsuke/ghomfcsuzuki-shunsuke/mkghtagtwpayne/chezmoijsdom/jsdom (jsdom)
v31.0.1Compare Source
node.isConnected. (@scttcper)element.tabIndexhandling of invalid and out-of-rangetabindex=""values to use the element's default instead of returning zero or wrapping. Values with trailing non-digits now use their leading integer, sotabindex="1e2"yields1instead of100. (@rome-xi)ident()results containing spaces or leading digits losing their required escaping during serialization and variable substitution. (@scttcper)autoto serialize with the integer first, such as3 auto.nodejs/node (node)
v25.9.0: 2026-04-01, Version 25.9.0 (Current), @aduh95Compare Source
Notable Changes
Test runner module mocking improvements
MockModuleOptions.defaultExportandMockModuleOptions.namedExportshave beenconsolidated into a single option
MockModuleOptions.exportsto align with userexpectations and other test runners.
A
defaultproperty onMockModuleOptions.exportsrepresents the defaultexport, and own enumerable properties are treated as named exports.
An automated migration is available to update user code:
https://github.com/nodejs/userland-migrations/tree/main/recipes/mock-module-exports
Contributed by sangwook in #61727.
Other notable changes
312476cb84] - (SEMVER-MINOR) async_hooks: add using scopes toAsyncLocalStorage(Stephen Belanger) #6167462d2cd473b] - (SEMVER-MINOR) cli: add--max-heap-sizeoption (tannal) #58708d0ebf0e44b] - (SEMVER-MINOR) crypto: addTurboSHAKEandKangarooTwelveWeb Cryptography algorithms (Filip Skokan) #62183f85b9d9fa8] - (SEMVER-MINOR) repl: add customizable error handling (Anna Henningsen) #6218867b854d407] - (SEMVER-MINOR) repl: remove dependency onnode:domain(Matteo Collina) #61227966b700623] - (SEMVER-MINOR) sea: support code cache for ESM entrypoint in SEA (Joyee Cheung) #62158e1f0d2a014] - (SEMVER-MINOR) stream: add stream/iter Implementation (James M Snell) #62066Commits
312476cb84] - (SEMVER-MINOR) async_hooks: add using scopes to AsyncLocalStorage (Stephen Belanger) #61674bfff8cb2ab] - (SEMVER-MINOR) benchmark: add benchmarks for experimental stream/iter (James M Snell) #62066c721d68502] - benchmark: fix destructuring in dgram/single-buffer (Ali Hassan) #62084e2f03c8e92] - buffer: improve performance of multiple Buffer operations (Ali Hassan) #618712fcd07f1ba] - build: support empty libname flags inconfigure.py(Antoine du Hamel) #62477b800c57fce] - build: fix timezone-update path references (Chengzhong Wu) #622807dc5a1e9b4] - build: skip dockit on IBMi (SRAVANI GUNDEPALLI) #62189f0eea0f905] - build: fix --node-builtin-modules-path (Filip Skokan) #6211562d2cd473b] - (SEMVER-MINOR) cli: add --max-heap-size option (tannal) #58708ac4b485698] - crypto: update root certificates to NSS 3.121 (Node.js GitHub Bot) #62485d0ebf0e44b] - (SEMVER-MINOR) crypto: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) #621833009980d9d] - crypto: add crypto::GetSSLCtx API for addon access to OpenSSL contexts (Tim Perry) #62254f5725ca81d] - crypto: reject ML-KEM/ML-DSA PKCS#8 import without seed in SubtleCrypto (Filip Skokan) #62218f69ed4bc3f] - crypto: rename CShakeParams and KmacParams length to outputLength (Filip Skokan) #618754d96e53570] - crypto: refactor WebCrypto AEAD algorithms auth tag handling (Filip Skokan) #6216993d77719e8] - crypto: read algorithm name property only once in normalizeAlgorithm (Filip Skokan) #621703d2e23a981] - deps: update ada to 3.4.4 (Node.js GitHub Bot) #62414176d6d2205] - deps: update timezone to 2026a (Node.js GitHub Bot) #6216495c7fc67ba] - deps: update googletest to2461743(Node.js GitHub Bot) #62484e5e9f2044a] - deps: update simdjson to 4.5.0 (Node.js GitHub Bot) #62382905b94266a] - deps: update ngtcp2 to 1.21.0 (Node.js GitHub Bot) #62051180c150122] - deps: V8: cherry-pickcf1bce4(Richard Lau) #62449bc265aa003] - deps: upgrade npm to 11.12.1 (npm team) #62448f1b28612c4] - deps: V8: cherry-pickb25cd62(Yagiz Nizipli) #62354757719d2af] - deps: disable rust icu compiled_data features (Chengzhong Wu) #622843bdc955b63] - deps: update sqlite to 3.51.3 (Node.js GitHub Bot) #62256a9703d194a] - deps: update googletest to73a63ea(Node.js GitHub Bot) #6192785138935cb] - deps: update merve to 1.2.2 (Node.js GitHub Bot) #62213231521e75e] - diagnostics_channel: add diagnostics channels for web locks (Ilyas Shabi) #621230093863664] - doc: deprecatemodule.register()(DEP0205) (Geoffrey Booth) #623950b96ece6be] - doc: clarify that features cannot be both experimental and deprecated (Antoine du Hamel) #624568d3ea975f5] - doc: fix 'transfered' typo in quic.md (lilianakatrina684-a11y) #6249208ff16e0ba] - doc: move sqlite type conversion section to correct level (René) #6248261cc747dd8] - doc: add Rafael to last security release steward (Rafael Gonzaga) #6242364cfa5a6fa] - doc: use npm-published version of doc-kit (Aviv Keller) #621391020321fb0] - doc: fix overstated Date header requirement in response.sendDate (Kit Dallege) #622069caa7855b2] - doc: fix guaranteed typo (lilianakatrina684-a11y) #62374e254f65306] - doc: enhance clarification about the main field (Mowafak Almahaini) #623029e724b53f8] - doc: remove spawn with shell example from bat/cmd section (Kit Dallege) #622437f37c17516] - doc: minor typo fix (Jeff Matson) #62358eb0ca98f01] - doc: add path to vulnerabilities.json mention (Rafael Gonzaga) #62355198b6e0932] - doc: deprecate CryptoKey use in node:crypto (Filip Skokan) #6232117e5aee6c5] - doc: fix small environment_variables typo (chris) #62279193d629895] - doc: test and test-only targets do not run linter (Xavier Stouder) #621204a1f20ec4a] - doc: clarify fs.ReadStream and fs.WriteStream are not constructable (Kit Dallege) #62208f976c9214d] - doc: clarify that any truthy value ofshellis part of DEP0190 (Antoine du Hamel) #622494d83972681] - doc: remove outdated Chrome 66 and ndb references from debugger (Kit Dallege) #6220271f2eada5b] - doc: add throwIfNoEntry version history to fs.stat (kovan) #62204670c80893b] - doc: add note (and caveat) formock.moduleabout customization hooks (Jacob Smith) #620752ff5cb13f5] - doc,test: clarify --eval syntax for leading '-' scripts (kovan) #622446c6c9004c4] - esm: fix typo in worker loader hook comment (jakecastelli) #624751cdd23c9f3] - esm: fix source phase identity bug in loadCache eviction (Guy Bedford) #624154f4ff15794] - esm: fix path normalization infinalizeResolution(Antoine du Hamel) #62080088167d102] - events: avoid cloning listeners array on every emit (Gürgün Dayıoğlu) #622610250b436ee] - fs: fix cpSync to handle non-ASCII characters (Stefan Stojanovic) #61950b67a8fb171] - inspector: add Target.getTargets and extract TargetManager (Kohei) #62487ffcc5a5722] - lib: make SubtleCrypto.supports enumerable (Filip Skokan) #6230792ef2ad8fa] - lib: prefer primordials in SubtleCrypto (Filip Skokan) #6222640a43ac4d0] - module: fix coverage of mocked CJS modules imported from ESM (Marco) #621333ef0a5b90e] - quic: remove CryptoKey support from session keys option (Filip Skokan) #623353c8dd8eb8e] - repl: use vm DONT_CONTEXTIFY context (Chengzhong Wu) #62371f85b9d9fa8] - (SEMVER-MINOR) repl: add customizable error handling (Anna Henningsen) #62188e4c164e045] - repl: handle exceptions from async context after close (Anna Henningsen) #6216567b854d407] - (SEMVER-MINOR) repl: remove dependency on domain module (Matteo Collina) #61227966b700623] - (SEMVER-MINOR) sea: support code cache for ESM entrypoint in SEA (Joyee Cheung) #62158fe82baf970] - src: improve EC JWK import performance (Filip Skokan) #62396d490b171e0] - src: handle null backing store in ArrayBufferViewContents::Read (Mert Can Altin) #623430e4af848bc] - src: convert context_frame field in AsyncWrap to internal field (Anna Henningsen) #6210302980b8c8f] - src: enable compilation/linking with OpenSSL 4.0 (Filip Skokan) #62410064f7c2fa6] - src: use stack allocation in indexOf latin1 path (Mert Can Altin) #62268ede52bc2dc] - src,sqlite: fix filterFunc dangling reference (Edy Silva) #62281e1f0d2a014] - (SEMVER-MINOR) stream: add stream/iter Implementation (James M Snell) #6206603839fb087] - stream: preserve error over AbortError in pipeline (Marco) #621130000d2f011] - stream: replace bind with arrow function for onwrite callback (Ali Hassan) #620873796a73719] - test: update WPT for WebCryptoAPI to2cb332d(Node.js GitHub Bot) #62483ad8309415b] - test: update WPT for url tofc3e651(Node.js GitHub Bot) #62379bed89b037e] - test: wait for reattach before initial break on restart (Yuya Inoue) #62471c9ffffcc55] - test: disable flaky WPT Blob test on AIX (James M Snell) #62470fd41ef31f6] - (SEMVER-MINOR) test: add tests for experimental stream/iter implementation (James M Snell) #620661b9d8d3eec] - test: avoid flaky run wait in debugger restart test (Yuya Inoue) #62112cb08a29d51] - test: skip test-cluster-dgram-reuse on AIX 7.3 (Stewart X Addison) #62238abea0af8a9] - test: add WebCrypto Promise.prototype.then pollution regression tests (Filip Skokan) #6222647a2132269] - test: update WPT for WebCryptoAPI to6a1c545(Node.js GitHub Bot) #621872c63d3006c] - test_runner: add exports option for module mocks (sangwook) #6172744ac0e1302] - test_runner: make it compatible with fake timers (Matteo Collina) #592721865691275] - test_runner: set non-zero exit code when suite errors occur (Edy Silva) #622820252b2bab8] - tools: bump picomatch from 4.0.3 to 4.0.4 in /tools/eslint (dependabot[bot]) #624393368155267] - tools: bump yaml from 2.8.2 to 2.8.3 in /tools/doc (dependabot[bot]) #624375e47c359f5] - tools: adopt the--check-for-duplicatesNCU flag (Antoine du Hamel) #624784a604e82d0] - tools: bump picomatch in /tools/doc (dependabot[bot]) #62438d1a98b4ddb] - tools: bump flatted from 3.4.1 to 3.4.2 in /tools/eslint (dependabot[bot]) #62375c32daa1ab4] - tools: bump eslint deps (Huáng Jùnliàng) #623567a2fcc6d41] - tools: do not swallow error inlint-nixworkflow (Antoine du Hamel) #62292c41a2871b5] - tools: add eslint-plugin-regexp (Huáng Jùnliàng) #6209356dfeb06df] - tools: fix timeout errors inlint-nixjob (Antoine du Hamel) #6226522fc8078e8] - tools: bump flatted from 3.3.3 to 3.4.1 in /tools/eslint (dependabot[bot]) #62255409b0663bd] - tools: bump undici from 6.23.0 to 6.24.1 in /tools/doc (dependabot[bot]) #6225067c69750f4] - tools: validate all commits that are pushed tomain(Antoine du Hamel) #622467d9db8cd21] - tools: keep GN files when updating Merve (Antoine du Hamel) #621676c8fa42ba2] - typings: rationalise TypedArray types (René) #62174531c64d04e] - url: enable simdutf for ada (Yagiz Nizipli) #614772000caccde] - util: allow color aliases in styleText (sangwook) #621800aed332ab4] - wasm: support js string constant esm import (Guy Bedford) #62198d3fd4a978b] - worker: heap profile optimizations (Ilyas Shabi) #62201e992a34a18] - zlib: fix use-after-free when reset() is called during write (Matteo Collina) #62325python/cpython (python)
v3.15.2Compare Source
v3.15.1Compare Source
v3.15.0Compare Source
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, 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 Mend Renovate CLI.
991c822f2dto7731a4c8d77731a4c8d7to558035b53a558035b53ato587fa1d358587fa1d358toaaf51c0940aaf51c0940to924ffa5dcc924ffa5dccto571f8c7fdd571f8c7fddto902b6a8862902b6a8862to21ab8a6d3321ab8a6d33to17fc3b303017fc3b3030to5590efb27f5590efb27ftoa81e19138aa81e19138atobb772a63f8bb772a63f8to1797792e681797792e68tob111924920b111924920to1aa829b113View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.