# Node.js 26 ChangeLog

<!--lint disable maximum-line-length no-literal-urls prohibited-strings-->

<table>
<tr>
<th>Current</th>
</tr>
<tr>
<td>
<a href="#26.5.0">26.5.0</a><br/>
<a href="#26.4.0">26.4.0</a><br/>
<a href="#26.3.1">26.3.1</a><br/>
<a href="#26.3.0">26.3.0</a><br/>
<a href="#26.2.0">26.2.0</a><br/>
<a href="#26.1.0">26.1.0</a><br/>
<a href="#26.0.0">26.0.0</a><br/>
</td>
</tr>
</table>

* Other Versions
  * [25.x](CHANGELOG_V25.md)
  * [24.x](CHANGELOG_V24.md)
  * [23.x](CHANGELOG_V23.md)
  * [22.x](CHANGELOG_V22.md)
  * [21.x](CHANGELOG_V21.md)
  * [20.x](CHANGELOG_V20.md)
  * [19.x](CHANGELOG_V19.md)
  * [18.x](CHANGELOG_V18.md)
  * [17.x](CHANGELOG_V17.md)
  * [16.x](CHANGELOG_V16.md)
  * [15.x](CHANGELOG_V15.md)
  * [14.x](CHANGELOG_V14.md)
  * [13.x](CHANGELOG_V13.md)
  * [12.x](CHANGELOG_V12.md)
  * [11.x](CHANGELOG_V11.md)
  * [10.x](CHANGELOG_V10.md)
  * [9.x](CHANGELOG_V9.md)
  * [8.x](CHANGELOG_V8.md)
  * [7.x](CHANGELOG_V7.md)
  * [6.x](CHANGELOG_V6.md)
  * [5.x](CHANGELOG_V5.md)
  * [4.x](CHANGELOG_V4.md)
  * [0.12.x](CHANGELOG_V012.md)
  * [0.10.x](CHANGELOG_V010.md)
  * [io.js](CHANGELOG_IOJS.md)
  * [Archive](CHANGELOG_ARCHIVE.md)

<a id="26.5.0"></a>

## 2026-07-08, Version 26.5.0 (Current), @richardlau

### Notable Changes

#### New release key

Welcome to our newest releaser, [Stewart X Addison](https://github.com/sxa). Future Node.js releases may be signed with his [release key](https://github.com/nodejs/node/blob/main/README.md#release-keys), `655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD`.

#### Other notable changes

* \[[`55f48446c7`](https://github.com/nodejs/node/commit/55f48446c7)] - **(SEMVER-MINOR)** **buffer**: implement blob.textStream() (Matthew Aitken) [#64036](https://github.com/nodejs/node/pull/64036)
* \[[`b373202efc`](https://github.com/nodejs/node/commit/b373202efc)] - **(SEMVER-MINOR)** **esm**: add `--experimental-import-text` flag (Efe) [#62300](https://github.com/nodejs/node/pull/62300)
* \[[`39e0c14455`](https://github.com/nodejs/node/commit/39e0c14455)] - **(SEMVER-MINOR)** **perf\_hooks**: sample delay per event loop iteration (Pablo Erhard) [#62935](https://github.com/nodejs/node/pull/62935)
* \[[`999a83c937`](https://github.com/nodejs/node/commit/999a83c937)] - **(SEMVER-MINOR)** **stream**: expose ReadableStreamTee (Matteo Collina) [#64195](https://github.com/nodejs/node/pull/64195)
* \[[`4e0236dc3d`](https://github.com/nodejs/node/commit/4e0236dc3d)] - **(SEMVER-MINOR)** **tls**: report negotiated TLS groups (Filip Skokan) [#64119](https://github.com/nodejs/node/pull/64119)

### Commits

* \[[`87648c0a6c`](https://github.com/nodejs/node/commit/87648c0a6c)] - **benchmark**: trim down the argon2 sets (Filip Skokan) [#64218](https://github.com/nodejs/node/pull/64218)
* \[[`a483bfd3f0`](https://github.com/nodejs/node/commit/a483bfd3f0)] - **buffer**: remove unreachable overflow check in atob (haramjeong) [#60161](https://github.com/nodejs/node/pull/60161)
* \[[`6d14279688`](https://github.com/nodejs/node/commit/6d14279688)] - **buffer**: add fast api for isUtf8 and isAscii (Gürgün Dayıoğlu) [#64169](https://github.com/nodejs/node/pull/64169)
* \[[`55f48446c7`](https://github.com/nodejs/node/commit/55f48446c7)] - **(SEMVER-MINOR)** **buffer**: implement blob.textStream() (Matthew Aitken) [#64036](https://github.com/nodejs/node/pull/64036)
* \[[`a67d9a7a44`](https://github.com/nodejs/node/commit/a67d9a7a44)] - **build**: allow linting node.1 (Aviv Keller) [#64157](https://github.com/nodejs/node/pull/64157)
* \[[`06c1fbc25b`](https://github.com/nodejs/node/commit/06c1fbc25b)] - **build**: enable Maglev for riscv64 (Jamie Magee) [#62605](https://github.com/nodejs/node/pull/62605)
* \[[`518309c363`](https://github.com/nodejs/node/commit/518309c363)] - **build**: suppress clang errors building libffi on Windows (René) [#64222](https://github.com/nodejs/node/pull/64222)
* \[[`6a80ab485c`](https://github.com/nodejs/node/commit/6a80ab485c)] - **build**: add manually-dispatched stress-test workflow (Joyee Cheung) [#64118](https://github.com/nodejs/node/pull/64118)
* \[[`f4e7bf1f1c`](https://github.com/nodejs/node/commit/f4e7bf1f1c)] - **build**: pin envinfo versions in github actions (Joyee Cheung) [#64117](https://github.com/nodejs/node/pull/64117)
* \[[`66f6ac0d86`](https://github.com/nodejs/node/commit/66f6ac0d86)] - **build**: support setting an emulator from configure script (Ivan Trubach) [#53899](https://github.com/nodejs/node/pull/53899)
* \[[`7f26c54aa6`](https://github.com/nodejs/node/commit/7f26c54aa6)] - **child\_process**: fix permission model propagation via NODE\_OPTIONS (Matteo Collina) [#63972](https://github.com/nodejs/node/pull/63972)
* \[[`32bb554f5b`](https://github.com/nodejs/node/commit/32bb554f5b)] - **crypto**: fix large DH generator validation (Tobias Nießen) [#64092](https://github.com/nodejs/node/pull/64092)
* \[[`0908d76ef6`](https://github.com/nodejs/node/commit/0908d76ef6)] - **crypto**: reject small-order EdDSA points during verify (Filip Skokan) [#64026](https://github.com/nodejs/node/pull/64026)
* \[[`7f7e5863c2`](https://github.com/nodejs/node/commit/7f7e5863c2)] - **deps**: update undici to 8.7.0 (Node.js GitHub Bot) [#64282](https://github.com/nodejs/node/pull/64282)
* \[[`af91029801`](https://github.com/nodejs/node/commit/af91029801)] - **deps**: update nghttp3 to 1.17.0 (Node.js GitHub Bot) [#64182](https://github.com/nodejs/node/pull/64182)
* \[[`2e500ba7b0`](https://github.com/nodejs/node/commit/2e500ba7b0)] - **deps**: update googletest to 8b53336594cc52213c6c2c7a0b29194fa896d039 (Node.js GitHub Bot) [#64181](https://github.com/nodejs/node/pull/64181)
* \[[`74e3aa24ba`](https://github.com/nodejs/node/commit/74e3aa24ba)] - **deps**: update sqlite to 3.53.3 (Node.js GitHub Bot) [#64180](https://github.com/nodejs/node/pull/64180)
* \[[`c7e57f55a7`](https://github.com/nodejs/node/commit/c7e57f55a7)] - **deps**: c-ares: cherry-pick 8ba37af8e3fb (René) [#64110](https://github.com/nodejs/node/pull/64110)
* \[[`879fdc4daf`](https://github.com/nodejs/node/commit/879fdc4daf)] - **deps**: V8: backport da20a197a7f9 (Kevin Gibbons) [#64101](https://github.com/nodejs/node/pull/64101)
* \[[`a640543a7c`](https://github.com/nodejs/node/commit/a640543a7c)] - **deps**: V8: cherry-pick 0cc9eb22c0b0 (Kevin Gibbons) [#64101](https://github.com/nodejs/node/pull/64101)
* \[[`feefd179e5`](https://github.com/nodejs/node/commit/feefd179e5)] - **deps**: V8: cherry-pick 1a391f98cc7a (Kevin Gibbons) [#64101](https://github.com/nodejs/node/pull/64101)
* \[[`8ef643d4b0`](https://github.com/nodejs/node/commit/8ef643d4b0)] - **deps**: update googletest to 0b1e895ba4226c2fda5ee0178c9b5b1195a741aa (Node.js GitHub Bot) [#64039](https://github.com/nodejs/node/pull/64039)
* \[[`9e50bb0655`](https://github.com/nodejs/node/commit/9e50bb0655)] - **dgram**: skip dns.lookup() for literal IP addresses (Ruben Bridgewater) [#64133](https://github.com/nodejs/node/pull/64133)
* \[[`dc052c095c`](https://github.com/nodejs/node/commit/dc052c095c)] - **diagnostics\_channel**: return original thenable (Stephen Belanger) [#62407](https://github.com/nodejs/node/pull/62407)
* \[[`a22a840293`](https://github.com/nodejs/node/commit/a22a840293)] - **doc**: clarify QUIC stream state wording (EduardF1) [#63660](https://github.com/nodejs/node/pull/63660)
* \[[`8d4bec2d71`](https://github.com/nodejs/node/commit/8d4bec2d71)] - **doc**: update Http2SecureServer.on("timeout") default value (YuSheng Chen) [#64187](https://github.com/nodejs/node/pull/64187)
* \[[`da88f70afa`](https://github.com/nodejs/node/commit/da88f70afa)] - **doc**: add note on visibility of CI failures to new contributor guide (Stewart X Addison) [#64256](https://github.com/nodejs/node/pull/64256)
* \[[`20ce359ccb`](https://github.com/nodejs/node/commit/20ce359ccb)] - **doc**: clarify HTTP/1.1 response ordering (Matteo Collina) [#64213](https://github.com/nodejs/node/pull/64213)
* \[[`05eae2835c`](https://github.com/nodejs/node/commit/05eae2835c)] - **doc**: recommend node-stress-single-test for flaky tests (Trivikram Kamat) [#64223](https://github.com/nodejs/node/pull/64223)
* \[[`3966eb67e7`](https://github.com/nodejs/node/commit/3966eb67e7)] - **doc**: fix typo in examples (Vas Sudanagunta) [#64184](https://github.com/nodejs/node/pull/64184)
* \[[`12a2b9daa3`](https://github.com/nodejs/node/commit/12a2b9daa3)] - **doc**: fix typo in node-config-schema.json (Hamid Reza Ghavami) [#64188](https://github.com/nodejs/node/pull/64188)
* \[[`0854482671`](https://github.com/nodejs/node/commit/0854482671)] - **doc**: clarify defense-in-depth issues (Matteo Collina) [#64215](https://github.com/nodejs/node/pull/64215)
* \[[`ef4915fc3a`](https://github.com/nodejs/node/commit/ef4915fc3a)] - **doc**: fix Fast FFI argument count in ffi.md (Daijiro Wachi) [#63960](https://github.com/nodejs/node/pull/63960)
* \[[`bb2eed863c`](https://github.com/nodejs/node/commit/bb2eed863c)] - **doc**: add sxa GPG key (ed25519) (Stewart X Addison) [#64193](https://github.com/nodejs/node/pull/64193)
* \[[`b7bf6e3a06`](https://github.com/nodejs/node/commit/b7bf6e3a06)] - **doc**: add guide and answers to FAQs for first-time contributors (Joyee Cheung) [#63685](https://github.com/nodejs/node/pull/63685)
* \[[`ff537ba858`](https://github.com/nodejs/node/commit/ff537ba858)] - **doc**: update `Http2Server.close` & `Http2SecureServer.close` (YuSheng Chen) [#63298](https://github.com/nodejs/node/pull/63298)
* \[[`f3db304588`](https://github.com/nodejs/node/commit/f3db304588)] - **doc**: update list of people in `SECURITY.md` (Richard Lau) [#64152](https://github.com/nodejs/node/pull/64152)
* \[[`2a126647b0`](https://github.com/nodejs/node/commit/2a126647b0)] - **doc**: clarify vfs is not a sandbox (Matteo Collina) [#64143](https://github.com/nodejs/node/pull/64143)
* \[[`85fc79dd9b`](https://github.com/nodejs/node/commit/85fc79dd9b)] - **doc**: fix broken links and duplicate stability label (Antoine du Hamel) [#64130](https://github.com/nodejs/node/pull/64130)
* \[[`189e830eb3`](https://github.com/nodejs/node/commit/189e830eb3)] - **doc**: add missing option to man page (Richard Lau) [#64156](https://github.com/nodejs/node/pull/64156)
* \[[`7a16ccccd0`](https://github.com/nodejs/node/commit/7a16ccccd0)] - **doc**: announce upcoming end of tier 2 support for macOS x64 (Antoine du Hamel) [#63931](https://github.com/nodejs/node/pull/63931)
* \[[`d5f826045f`](https://github.com/nodejs/node/commit/d5f826045f)] - **doc**: update toolchain for official AIX releases (Richard Lau) [#64068](https://github.com/nodejs/node/pull/64068)
* \[[`60abc4400f`](https://github.com/nodejs/node/commit/60abc4400f)] - **doc**: fix callback example import in fs docs (Kamal Rawal) [#63912](https://github.com/nodejs/node/pull/63912)
* \[[`e470c74a6c`](https://github.com/nodejs/node/commit/e470c74a6c)] - **doc**: fix keepAliveTimeout default in http.createServer options (Jahanzaib iqbal) [#63974](https://github.com/nodejs/node/pull/63974)
* \[[`851b460583`](https://github.com/nodejs/node/commit/851b460583)] - **esm**: improve ERR\_REQUIRE\_ASYNC\_MODULE (Joyee Cheung) [#64260](https://github.com/nodejs/node/pull/64260)
* \[[`0cd443df39`](https://github.com/nodejs/node/commit/0cd443df39)] - **esm**: print required top-level await locations without evaluating (Joyee Cheung) [#64154](https://github.com/nodejs/node/pull/64154)
* \[[`b373202efc`](https://github.com/nodejs/node/commit/b373202efc)] - **(SEMVER-MINOR)** **esm**: add `--experimental-import-text` flag (Efe) [#62300](https://github.com/nodejs/node/pull/62300)
* \[[`eacfbd0ca5`](https://github.com/nodejs/node/commit/eacfbd0ca5)] - **http**: add CONNECT method handling for default Host header with proxy (Archkon) [#64114](https://github.com/nodejs/node/pull/64114)
* \[[`aeb539a383`](https://github.com/nodejs/node/commit/aeb539a383)] - **http**: fix drain event with cork/uncork (David Evans) [#64038](https://github.com/nodejs/node/pull/64038)
* \[[`8e8874b216`](https://github.com/nodejs/node/commit/8e8874b216)] - **http**: document and validate options.path when it's in absolute-form (Joyee Cheung) [#64108](https://github.com/nodejs/node/pull/64108)
* \[[`eb2e96bc28`](https://github.com/nodejs/node/commit/eb2e96bc28)] - **inspector**: fix crash when writing to closed inspector socket (ympark2011) [#64209](https://github.com/nodejs/node/pull/64209)
* \[[`243b0e4e57`](https://github.com/nodejs/node/commit/243b0e4e57)] - **lib**: reject string "0" in validatePort when allowZero is false (Daijiro Wachi) [#64174](https://github.com/nodejs/node/pull/64174)
* \[[`34a537c0ed`](https://github.com/nodejs/node/commit/34a537c0ed)] - **lib**: use `__proto__: null` when calling `ObjectDefineProperty` (Antoine du Hamel) [#64239](https://github.com/nodejs/node/pull/64239)
* \[[`1f72393f19`](https://github.com/nodejs/node/commit/1f72393f19)] - **lib**: lazily initialize kEvents and kHandlers maps (Guilherme Araújo) [#63702](https://github.com/nodejs/node/pull/63702)
* \[[`92a3dc3191`](https://github.com/nodejs/node/commit/92a3dc3191)] - **lib,permission**: fix addon permission drop (Martin Wagner) [#64007](https://github.com/nodejs/node/pull/64007)
* \[[`87b8f2a296`](https://github.com/nodejs/node/commit/87b8f2a296)] - **meta**: fix linter warning in `stale.yml` (Antoine du Hamel) [#64281](https://github.com/nodejs/node/pull/64281)
* \[[`829c4a5913`](https://github.com/nodejs/node/commit/829c4a5913)] - **meta**: bump actions/cache from 5.0.5 to 6.1.0 (dependabot\[bot]) [#64248](https://github.com/nodejs/node/pull/64248)
* \[[`0808dcd31c`](https://github.com/nodejs/node/commit/0808dcd31c)] - **meta**: bump github/codeql-action/autobuild from 4.36.1 to 4.36.2 (dependabot\[bot]) [#64247](https://github.com/nodejs/node/pull/64247)
* \[[`64aa17058f`](https://github.com/nodejs/node/commit/64aa17058f)] - **meta**: bump github/codeql-action/analyze from 4.36.1 to 4.36.2 (dependabot\[bot]) [#64246](https://github.com/nodejs/node/pull/64246)
* \[[`873d1e0412`](https://github.com/nodejs/node/commit/873d1e0412)] - **meta**: bump actions/checkout from 6.0.2 to 7.0.0 (dependabot\[bot]) [#64245](https://github.com/nodejs/node/pull/64245)
* \[[`fe460ccf0b`](https://github.com/nodejs/node/commit/fe460ccf0b)] - **meta**: bump codecov/codecov-action from 6.0.1 to 7.0.0 (dependabot\[bot]) [#64244](https://github.com/nodejs/node/pull/64244)
* \[[`845c63ed50`](https://github.com/nodejs/node/commit/845c63ed50)] - **meta**: bump rtCamp/action-slack-notify from 2.3.3 to 2.4.0 (dependabot\[bot]) [#64243](https://github.com/nodejs/node/pull/64243)
* \[[`2cad2d6de5`](https://github.com/nodejs/node/commit/2cad2d6de5)] - **meta**: bump github/codeql-action/init from 4.36.1 to 4.36.2 (dependabot\[bot]) [#64242](https://github.com/nodejs/node/pull/64242)
* \[[`0ddde950c7`](https://github.com/nodejs/node/commit/0ddde950c7)] - **meta**: bump actions/setup-python from 6.2.0 to 6.3.0 (dependabot\[bot]) [#64241](https://github.com/nodejs/node/pull/64241)
* \[[`c0a8760d2f`](https://github.com/nodejs/node/commit/c0a8760d2f)] - **meta**: bump github/codeql-action/upload-sarif from 4.36.1 to 4.36.2 (dependabot\[bot]) [#64240](https://github.com/nodejs/node/pull/64240)
* \[[`f49704b9d0`](https://github.com/nodejs/node/commit/f49704b9d0)] - **meta**: clarify V8 flags are outside threat model (Matteo Collina) [#64224](https://github.com/nodejs/node/pull/64224)
* \[[`6b8dc58e6e`](https://github.com/nodejs/node/commit/6b8dc58e6e)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#64057](https://github.com/nodejs/node/pull/64057)
* \[[`fe5260cca7`](https://github.com/nodejs/node/commit/fe5260cca7)] - **meta**: update status of past strategic initiatives (Joyee Cheung) [#63480](https://github.com/nodejs/node/pull/63480)
* \[[`7b01040008`](https://github.com/nodejs/node/commit/7b01040008)] - **meta**: speed up stale bot (Aviv Keller) [#64075](https://github.com/nodejs/node/pull/64075)
* \[[`874c46c24f`](https://github.com/nodejs/node/commit/874c46c24f)] - **meta**: update sccache version in test-linux-quic (René) [#64043](https://github.com/nodejs/node/pull/64043)
* \[[`48c5c86363`](https://github.com/nodejs/node/commit/48c5c86363)] - **module**: enable import support for addons by default (Chengzhong Wu) [#64221](https://github.com/nodejs/node/pull/64221)
* \[[`39e0c14455`](https://github.com/nodejs/node/commit/39e0c14455)] - **(SEMVER-MINOR)** **perf\_hooks**: sample delay per event loop iteration (Pablo Erhard) [#62935](https://github.com/nodejs/node/pull/62935)
* \[[`f90f1bd032`](https://github.com/nodejs/node/commit/f90f1bd032)] - **perf\_hooks**: add NODE\_PERFORMANCE\_GC\_MINOR\_MARK\_SWEEP constant (Attila Szegedi) [#63877](https://github.com/nodejs/node/pull/63877)
* \[[`bdf32628c7`](https://github.com/nodejs/node/commit/bdf32628c7)] - **process**: fix finalization cleanup ref tracking (Trivikram Kamat) [#64087](https://github.com/nodejs/node/pull/64087)
* \[[`9a65b7fff4`](https://github.com/nodejs/node/commit/9a65b7fff4)] - **quic**: drop version negotiation packets with oversized CIDs (Mohamed Sayed) [#64228](https://github.com/nodejs/node/pull/64228)
* \[[`2699fe4706`](https://github.com/nodejs/node/commit/2699fe4706)] - **quic**: fixes undefined handle in QuicStream kInspect (Marten Richter) [#64170](https://github.com/nodejs/node/pull/64170)
* \[[`00dea28bb3`](https://github.com/nodejs/node/commit/00dea28bb3)] - **repl**: lazy-load acorn and defer vm context creation (Daijiro Wachi) [#63879](https://github.com/nodejs/node/pull/63879)
* \[[`ce659a1cf9`](https://github.com/nodejs/node/commit/ce659a1cf9)] - **src**: fix escaping of single quotes in task runner (Antoine du Hamel) [#64089](https://github.com/nodejs/node/pull/64089)
* \[[`dbb3126e5c`](https://github.com/nodejs/node/commit/dbb3126e5c)] - **src**: abstract tracing agent for both legacy and perfetto (Chengzhong Wu) [#64053](https://github.com/nodejs/node/pull/64053)
* \[[`12edf1d68d`](https://github.com/nodejs/node/commit/12edf1d68d)] - **src**: avoid redundant call to `std::get_if<>()` (Tobias Nießen) [#64094](https://github.com/nodejs/node/pull/64094)
* \[[`eda91b6d01`](https://github.com/nodejs/node/commit/eda91b6d01)] - **src**: avoid copying source string in TextEncoder.encode (Yagiz Nizipli) [#63897](https://github.com/nodejs/node/pull/63897)
* \[[`efbbb9a03c`](https://github.com/nodejs/node/commit/efbbb9a03c)] - **stream**: preserve half-open duplexes in async iteration (Efe) [#64275](https://github.com/nodejs/node/pull/64275)
* \[[`999a83c937`](https://github.com/nodejs/node/commit/999a83c937)] - **(SEMVER-MINOR)** **stream**: expose ReadableStreamTee (Matteo Collina) [#64195](https://github.com/nodejs/node/pull/64195)
* \[[`ab5ed72903`](https://github.com/nodejs/node/commit/ab5ed72903)] - **stream**: reject iter consumers on abort (Trivikram Kamat) [#64066](https://github.com/nodejs/node/pull/64066)
* \[[`d3fa77c5e2`](https://github.com/nodejs/node/commit/d3fa77c5e2)] - **stream**: fix merge abort for pending sources (Trivikram Kamat) [#64013](https://github.com/nodejs/node/pull/64013)
* \[[`38b99140ed`](https://github.com/nodejs/node/commit/38b99140ed)] - **stream**: refactor unnecessary optional chaining away (Antoine du Hamel) [#64253](https://github.com/nodejs/node/pull/64253)
* \[[`c81f894ebe`](https://github.com/nodejs/node/commit/c81f894ebe)] - **stream**: cut per-chunk overhead in WHATWG streams (Matteo Collina) [#64252](https://github.com/nodejs/node/pull/64252)
* \[[`f162234f24`](https://github.com/nodejs/node/commit/f162234f24)] - **stream**: normalize Broadcast.from() byte inputs (Trivikram Kamat) [#64082](https://github.com/nodejs/node/pull/64082)
* \[[`1182ad8f3b`](https://github.com/nodejs/node/commit/1182ad8f3b)] - **stream**: proxy first own method in Readable.wrap() (Daijiro Wachi) [#64048](https://github.com/nodejs/node/pull/64048)
* \[[`d0b830b382`](https://github.com/nodejs/node/commit/d0b830b382)] - **stream**: observe abort while awaiting pipeTo source (Trivikram Kamat) [#64015](https://github.com/nodejs/node/pull/64015)
* \[[`f7adcd8359`](https://github.com/nodejs/node/commit/f7adcd8359)] - **stream**: respect iter consumer abort signals (Trivikram Kamat) [#63997](https://github.com/nodejs/node/pull/63997)
* \[[`b09e624c6f`](https://github.com/nodejs/node/commit/b09e624c6f)] - **test**: make blob desiredSize assertion robust (Trivikram Kamat) [#64106](https://github.com/nodejs/node/pull/64106)
* \[[`d0d8f0c774`](https://github.com/nodejs/node/commit/d0d8f0c774)] - **test**: update WPT for urlpattern to 11a459a2b1 (Node.js GitHub Bot) [#64037](https://github.com/nodejs/node/pull/64037)
* \[[`ff9122c20c`](https://github.com/nodejs/node/commit/ff9122c20c)] - **test**: improve lcov reporter snapshot diagnostics (Trivikram Kamat) [#64049](https://github.com/nodejs/node/pull/64049)
* \[[`570952d4f3`](https://github.com/nodejs/node/commit/570952d4f3)] - **test**: keep finalization close fixture ref alive (Trivikram Kamat) [#64085](https://github.com/nodejs/node/pull/64085)
* \[[`1b4f213380`](https://github.com/nodejs/node/commit/1b4f213380)] - **test**: fix typo from overriden to overridden (parkhojeong) [#63403](https://github.com/nodejs/node/pull/63403)
* \[[`4c91090b8b`](https://github.com/nodejs/node/commit/4c91090b8b)] - **test**: fix typo from funciton to function (parkhojeong) [#63403](https://github.com/nodejs/node/pull/63403)
* \[[`bf080c7917`](https://github.com/nodejs/node/commit/bf080c7917)] - **test**: mark hr-time WPT flaky on macos15-x64 (Trivikram Kamat) [#64054](https://github.com/nodejs/node/pull/64054)
* \[[`24e32098c5`](https://github.com/nodejs/node/commit/24e32098c5)] - **test**: use one-off agent in http consumed timeout test (Trivikram Kamat) [#64052](https://github.com/nodejs/node/pull/64052)
* \[[`3229886de2`](https://github.com/nodejs/node/commit/3229886de2)] - **test**: fix flaky test-runner coverage threshold test (Trivikram Kamat) [#64051](https://github.com/nodejs/node/pull/64051)
* \[[`83b91ea6ec`](https://github.com/nodejs/node/commit/83b91ea6ec)] - **test\_runner**: filter execArgv fallback for child tests (Trivikram Kamat) [#64056](https://github.com/nodejs/node/pull/64056)
* \[[`269b609a3d`](https://github.com/nodejs/node/commit/269b609a3d)] - **test\_runner**: improve coverage failure diagnostics (Trivikram Kamat) [#64050](https://github.com/nodejs/node/pull/64050)
* \[[`0342744c34`](https://github.com/nodejs/node/commit/0342744c34)] - **test\_runner**: add timestamp to JUnit reporter testsuites (sangwook) [#64029](https://github.com/nodejs/node/pull/64029)
* \[[`086741d121`](https://github.com/nodejs/node/commit/086741d121)] - **timers**: reuse Timeout objects in setStreamTimeout (Matteo Collina) [#64254](https://github.com/nodejs/node/pull/64254)
* \[[`4e0236dc3d`](https://github.com/nodejs/node/commit/4e0236dc3d)] - **(SEMVER-MINOR)** **tls**: report negotiated TLS groups (Filip Skokan) [#64119](https://github.com/nodejs/node/pull/64119)
* \[[`3bdd7e20be`](https://github.com/nodejs/node/commit/3bdd7e20be)] - **tls**: handle large RSA exponents in X.509 cert (Tobias Nießen) [#64093](https://github.com/nodejs/node/pull/64093)
* \[[`c96c838977`](https://github.com/nodejs/node/commit/c96c838977)] - **tools**: update RUSTC\_VERSION for remaining GHA workflows (René) [#64325](https://github.com/nodejs/node/pull/64325)
* \[[`ee873b7aaf`](https://github.com/nodejs/node/commit/ee873b7aaf)] - **tools**: bump `temporal_rs` version (Antoine du Hamel) [#63281](https://github.com/nodejs/node/pull/63281)
* \[[`ea3b870155`](https://github.com/nodejs/node/commit/ea3b870155)] - **tools**: remove `envinfo` from our workflows (Antoine du Hamel) [#64259](https://github.com/nodejs/node/pull/64259)
* \[[`d940f02e8b`](https://github.com/nodejs/node/commit/d940f02e8b)] - **tools**: bump the eslint group in /tools/eslint with 8 updates (dependabot\[bot]) [#64249](https://github.com/nodejs/node/pull/64249)
* \[[`fe0ea2bb5d`](https://github.com/nodejs/node/commit/fe0ea2bb5d)] - **tools**: bump @node-core/doc-kit (dependabot\[bot]) [#64010](https://github.com/nodejs/node/pull/64010)
* \[[`4dceefde1e`](https://github.com/nodejs/node/commit/4dceefde1e)] - **tools**: bump undici from 6.24.1 to 6.27.0 in /tools/doc (dependabot\[bot]) [#64031](https://github.com/nodejs/node/pull/64031)
* \[[`6e187db7d7`](https://github.com/nodejs/node/commit/6e187db7d7)] - **tools**: update c-ares updater script (Antoine du Hamel) [#64194](https://github.com/nodejs/node/pull/64194)
* \[[`657a35f5a2`](https://github.com/nodejs/node/commit/657a35f5a2)] - **tools**: validate version number in release proposal commit message lint (Antoine du Hamel) [#64070](https://github.com/nodejs/node/pull/64070)
* \[[`17228a861c`](https://github.com/nodejs/node/commit/17228a861c)] - **tools**: add GHA benchmark runner (Antoine du Hamel) [#60293](https://github.com/nodejs/node/pull/60293)
* \[[`6d11a71d91`](https://github.com/nodejs/node/commit/6d11a71d91)] - **tools**: update `build-shared/action.yml` to a reusable workflow (Antoine du Hamel) [#64059](https://github.com/nodejs/node/pull/64059)
* \[[`7a17c50b7f`](https://github.com/nodejs/node/commit/7a17c50b7f)] - **tools**: update libffi updater script (Antoine du Hamel) [#64046](https://github.com/nodejs/node/pull/64046)
* \[[`28047a3e71`](https://github.com/nodejs/node/commit/28047a3e71)] - **tools**: exclude `libffi` changes from `test-shared` GHA CI (Antoine du Hamel) [#64047](https://github.com/nodejs/node/pull/64047)
* \[[`58d9685acc`](https://github.com/nodejs/node/commit/58d9685acc)] - **typings**: add typing for crypto (Filip Skokan) [#64122](https://github.com/nodejs/node/pull/64122)
* \[[`7a9dcad44d`](https://github.com/nodejs/node/commit/7a9dcad44d)] - **util**: fix OOM in inspect color stack formatting (Ijtihed Kilani) [#64022](https://github.com/nodejs/node/pull/64022)
* \[[`d5f01bbbde`](https://github.com/nodejs/node/commit/d5f01bbbde)] - **vfs**: reject rename into descendant directory (Trivikram Kamat) [#64285](https://github.com/nodejs/node/pull/64285)
* \[[`0b6af91081`](https://github.com/nodejs/node/commit/0b6af91081)] - **vfs**: handle current-position sentinel in memory files (Trivikram Kamat) [#64163](https://github.com/nodejs/node/pull/64163)
* \[[`322230d641`](https://github.com/nodejs/node/commit/322230d641)] - **vfs**: support writeFileSync with virtual fds (Trivikram Kamat) [#64165](https://github.com/nodejs/node/pull/64165)
* \[[`9395d209c7`](https://github.com/nodejs/node/commit/9395d209c7)] - **vfs**: avoid recursive readdir symlink cycles (Matteo Collina) [#64168](https://github.com/nodejs/node/pull/64168)
* \[[`bbdd7643b6`](https://github.com/nodejs/node/commit/bbdd7643b6)] - **vfs**: read RealFSProvider files from open fd (Trivikram Kamat) [#64104](https://github.com/nodejs/node/pull/64104)
* \[[`92859b8097`](https://github.com/nodejs/node/commit/92859b8097)] - **vm**: fix copying PropertyDescriptor (Chengzhong Wu) [#64073](https://github.com/nodejs/node/pull/64073)
* \[[`9046035475`](https://github.com/nodejs/node/commit/9046035475)] - **zlib**: validate flush king for all streams (Ic3b3rg) [#63746](https://github.com/nodejs/node/pull/63746)
* \[[`98be4304a3`](https://github.com/nodejs/node/commit/98be4304a3)] - **zlib**: validate flush kind for brotli streams (Ic3b3rg) [#63746](https://github.com/nodejs/node/pull/63746)
* \[[`90007a59a9`](https://github.com/nodejs/node/commit/90007a59a9)] - **zlib**: expose rejectGarbageAfterEnd option (Filip Skokan) [#64023](https://github.com/nodejs/node/pull/64023)
* \[[`5933516066`](https://github.com/nodejs/node/commit/5933516066)] - **zlib**: reject trailing gzip members in web streams (Filip Skokan) [#64023](https://github.com/nodejs/node/pull/64023)

<a id="26.4.0"></a>

## 2026-06-24, Version 26.4.0 (Current), @aduh95

### Notable Changes

* \[[`cde0daabcc`](https://github.com/nodejs/node/commit/cde0daabcc)] - **(SEMVER-MINOR)** **doc**: update `blockList` stability status to release candidate (alphaleadership) [#63050](https://github.com/nodejs/node/pull/63050)
* \[[`b78f5a7537`](https://github.com/nodejs/node/commit/b78f5a7537)] - **(SEMVER-MINOR)** **fs**: support caller-supplied `readFile()` buffers (Matteo Collina) [#63634](https://github.com/nodejs/node/pull/63634)
* \[[`417aacbc36`](https://github.com/nodejs/node/commit/417aacbc36)] - **(SEMVER-MINOR)** **http**: close pre-request sockets in `closeIdleConnections` (semimikoh) [#63470](https://github.com/nodejs/node/pull/63470)
* \[[`fbb108be7d`](https://github.com/nodejs/node/commit/fbb108be7d)] - **(SEMVER-MINOR)** **loader**: implement package maps (Maël Nison) [#62239](https://github.com/nodejs/node/pull/62239)
* \[[`45494d5a8a`](https://github.com/nodejs/node/commit/45494d5a8a)] - **(SEMVER-MINOR)** **net**: support `TCP_KEEPINTVL` and `TCP_KEEPCNT` in `setKeepAlive` (Guy Bedford) [#63825](https://github.com/nodejs/node/pull/63825)
* \[[`ee29465e77`](https://github.com/nodejs/node/commit/ee29465e77)] - **(SEMVER-MINOR)** **tls**: add certificateCompression option (Tim Perry) [#62217](https://github.com/nodejs/node/pull/62217)
* \[[`b17817eb2b`](https://github.com/nodejs/node/commit/b17817eb2b)] - **(SEMVER-MINOR)** **vfs**: dispatch `node:fs/promises` to mounted VFS instances (Matteo Collina) [#63537](https://github.com/nodejs/node/pull/63537)
* \[[`7bc93a6ac5`](https://github.com/nodejs/node/commit/7bc93a6ac5)] - **(SEMVER-MINOR)** **vfs**: add minimal `node:vfs` subsystem (Matteo Collina) [#63115](https://github.com/nodejs/node/pull/63115)

### Commits

* \[[`c7eb83b46a`](https://github.com/nodejs/node/commit/c7eb83b46a)] - **benchmark**: add child\_process async path baselines (Yagiz Nizipli) [#63929](https://github.com/nodejs/node/pull/63929)
* \[[`066fff17a5`](https://github.com/nodejs/node/commit/066fff17a5)] - **benchmark**: remove old alias usage in ffi benchmarks (Anna Henningsen) [#63666](https://github.com/nodejs/node/pull/63666)
* \[[`509cd1b94f`](https://github.com/nodejs/node/commit/509cd1b94f)] - **buffer**: optimize Buffer.prototype.copy (Robert Nagy) [#63828](https://github.com/nodejs/node/pull/63828)
* \[[`86e651bbd0`](https://github.com/nodejs/node/commit/86e651bbd0)] - **buffer**: use simdutf for two-byte utf8 byteLength (Mert Can Altin) [#63639](https://github.com/nodejs/node/pull/63639)
* \[[`d3f4ed9015`](https://github.com/nodejs/node/commit/d3f4ed9015)] - **build**: suppress compiler warnings for histogram (Richard Lau) [#63980](https://github.com/nodejs/node/pull/63980)
* \[[`82dd7ddbe6`](https://github.com/nodejs/node/commit/82dd7ddbe6)] - **build**: add QUIC CI job for PRs matching QUIC related paths (Tim Perry) [#63875](https://github.com/nodejs/node/pull/63875)
* \[[`1124c0652d`](https://github.com/nodejs/node/commit/1124c0652d)] - **build**: remove redundant intermediate node\_aix\_shared (Chengzhong Wu) [#63747](https://github.com/nodejs/node/pull/63747)
* \[[`e510ee8087`](https://github.com/nodejs/node/commit/e510ee8087)] - **build**: build codecache and snapshot with libnode (Chengzhong Wu) [#63626](https://github.com/nodejs/node/pull/63626)
* \[[`5b583dace5`](https://github.com/nodejs/node/commit/5b583dace5)] - **build**: enable maglev by default on Linux ppc64le (Richard Lau) [#63474](https://github.com/nodejs/node/pull/63474)
* \[[`a2324246b4`](https://github.com/nodejs/node/commit/a2324246b4)] - **build**: remove duplicated node\_use\_sqlite and node\_use\_ffi conditions (Chengzhong Wu) [#63629](https://github.com/nodejs/node/pull/63629)
* \[[`2a467a5f69`](https://github.com/nodejs/node/commit/2a467a5f69)] - _**Revert**_ "**build, doc**: generate node.1 with doc-kit" (Antoine du Hamel) [#64091](https://github.com/nodejs/node/pull/64091)
* \[[`e01dec45b8`](https://github.com/nodejs/node/commit/e01dec45b8)] - **build, doc**: generate node.1 with doc-kit (Aviv Keller) [#62044](https://github.com/nodejs/node/pull/62044)
* \[[`2ab9848fe4`](https://github.com/nodejs/node/commit/2ab9848fe4)] - **child\_process**: pass spawn options to the binding positionally (Yagiz Nizipli) [#63930](https://github.com/nodejs/node/pull/63930)
* \[[`04c04c8b5c`](https://github.com/nodejs/node/commit/04c04c8b5c)] - **child\_process**: serialize advanced IPC messages natively (Yagiz Nizipli) [#63933](https://github.com/nodejs/node/pull/63933)
* \[[`1eef57293d`](https://github.com/nodejs/node/commit/1eef57293d)] - **crypto**: support non-byte WebCrypto lengths and cSHAKE (Filip Skokan) [#63988](https://github.com/nodejs/node/pull/63988)
* \[[`788a66e147`](https://github.com/nodejs/node/commit/788a66e147)] - **crypto**: share WebCrypto method and usage helpers (Filip Skokan) [#63975](https://github.com/nodejs/node/pull/63975)
* \[[`f9fdce3f46`](https://github.com/nodejs/node/commit/f9fdce3f46)] - **crypto**: use EVP\_MAC for HMAC on OpenSSL >=3 (Filip Skokan) [#63942](https://github.com/nodejs/node/pull/63942)
* \[[`7e9ca87e58`](https://github.com/nodejs/node/commit/7e9ca87e58)] - **crypto**: make webcrypto aliasKeyFormat directional (Filip Skokan) [#63910](https://github.com/nodejs/node/pull/63910)
* \[[`656e57ebbf`](https://github.com/nodejs/node/commit/656e57ebbf)] - **crypto**: fix unhandled error in Hash.\_transform (Haram Jeong) [#63261](https://github.com/nodejs/node/pull/63261)
* \[[`65536f0d98`](https://github.com/nodejs/node/commit/65536f0d98)] - **crypto**: refactor keyObject.toCryptoKey() and SubtleCrypto.getPublicKey() (Filip Skokan) [#63622](https://github.com/nodejs/node/pull/63622)
* \[[`978f1d2bcc`](https://github.com/nodejs/node/commit/978f1d2bcc)] - **crypto**: handle cipher context allocation failures (Tian Teng) [#63542](https://github.com/nodejs/node/pull/63542)
* \[[`5551e8f773`](https://github.com/nodejs/node/commit/5551e8f773)] - **crypto**: deduplicate X509 subject matching logic (Tobias Nießen) [#63644](https://github.com/nodejs/node/pull/63644)
* \[[`57ae87640a`](https://github.com/nodejs/node/commit/57ae87640a)] - **crypto**: fix warnings in test\_node\_crypto.cc (Maya Lekova) [#63490](https://github.com/nodejs/node/pull/63490)
* \[[`9984b05dff`](https://github.com/nodejs/node/commit/9984b05dff)] - **crypto**: coerce -0 to +0 before native calls (Filip Skokan) [#63556](https://github.com/nodejs/node/pull/63556)
* \[[`88011a3689`](https://github.com/nodejs/node/commit/88011a3689)] - **crypto,tls**: do not ignore BN\_get\_word error (Tobias Nießen) [#63895](https://github.com/nodejs/node/pull/63895)
* \[[`9a3393d14f`](https://github.com/nodejs/node/commit/9a3393d14f)] - **debugger**: lazily wait for initial break output (Trivikram Kamat) [#63969](https://github.com/nodejs/node/pull/63969)
* \[[`b0bfcb9c59`](https://github.com/nodejs/node/commit/b0bfcb9c59)] - **debugger**: defer probe pause handling until startup (Trivikram Kamat) [#63608](https://github.com/nodejs/node/pull/63608)
* \[[`8516003953`](https://github.com/nodejs/node/commit/8516003953)] - **debugger**: await initialization after run and restart (Trivikram Kamat) [#63607](https://github.com/nodejs/node/pull/63607)
* \[[`4438cb5284`](https://github.com/nodejs/node/commit/4438cb5284)] - **debugger**: add --max-hit option to probe mode (Joyee Cheung) [#63704](https://github.com/nodejs/node/pull/63704)
* \[[`238b54ed2a`](https://github.com/nodejs/node/commit/238b54ed2a)] - **debugger**: add more logs to probe mode (Joyee Cheung) [#63663](https://github.com/nodejs/node/pull/63663)
* \[[`bbef54b413`](https://github.com/nodejs/node/commit/bbef54b413)] - **deps**: libffi: cherry-pick 9ca53a19833d (Anthony Green) [#64040](https://github.com/nodejs/node/pull/64040)
* \[[`9761385dbd`](https://github.com/nodejs/node/commit/9761385dbd)] - **deps**: update libffi to 3.6.0 (Node.js GitHub Bot) [#64040](https://github.com/nodejs/node/pull/64040)
* \[[`373ec2d092`](https://github.com/nodejs/node/commit/373ec2d092)] - **deps**: update acorn to 8.17.0 (Node.js GitHub Bot) [#63901](https://github.com/nodejs/node/pull/63901)
* \[[`e44b5d487e`](https://github.com/nodejs/node/commit/e44b5d487e)] - **(SEMVER-MINOR)** **deps**: update OpenSSL build config to support compression (Tim Perry) [#62217](https://github.com/nodejs/node/pull/62217)
* \[[`3ed287a2e2`](https://github.com/nodejs/node/commit/3ed287a2e2)] - **deps**: upgrade npm to 11.17.0 (npm team) [#63857](https://github.com/nodejs/node/pull/63857)
* \[[`b1b597c797`](https://github.com/nodejs/node/commit/b1b597c797)] - **deps**: add ngtcp2\_fmt.c to build configuration (ngtcp2.gyp) (沈鸿飞) [#63821](https://github.com/nodejs/node/pull/63821)
* \[[`0bf8e12305`](https://github.com/nodejs/node/commit/0bf8e12305)] - **deps**: V8: add CopyArrayBufferBytes API (Robert Nagy) [#63828](https://github.com/nodejs/node/pull/63828)
* \[[`e49d7301a5`](https://github.com/nodejs/node/commit/e49d7301a5)] - **deps**: update ngtcp2 to 1.23.0 (Node.js GitHub Bot) [#63777](https://github.com/nodejs/node/pull/63777)
* \[[`e5c079004b`](https://github.com/nodejs/node/commit/e5c079004b)] - **deps**: update nghttp3 to 1.16.0 (Node.js GitHub Bot) [#63776](https://github.com/nodejs/node/pull/63776)
* \[[`d599fa2346`](https://github.com/nodejs/node/commit/d599fa2346)] - **deps**: update googletest to 7140cd416cecd7462a8aae488024abeee55598e4 (Node.js GitHub Bot) [#63775](https://github.com/nodejs/node/pull/63775)
* \[[`bc09f1508c`](https://github.com/nodejs/node/commit/bc09f1508c)] - **deps**: update sqlite to 3.53.2 (Node.js GitHub Bot) [#63774](https://github.com/nodejs/node/pull/63774)
* \[[`60787746c4`](https://github.com/nodejs/node/commit/60787746c4)] - **deps**: update zlib to 1.3.2.1-motley-3246f1b (Node.js GitHub Bot) [#63773](https://github.com/nodejs/node/pull/63773)
* \[[`971af104f1`](https://github.com/nodejs/node/commit/971af104f1)] - **deps**: update amaro to 1.1.10 (Node.js GitHub Bot) [#63670](https://github.com/nodejs/node/pull/63670)
* \[[`e17f665444`](https://github.com/nodejs/node/commit/e17f665444)] - **deps**: update googletest to 8736d2cd5c1dcba41170ed2fddca14021d4916c3 (Node.js GitHub Bot) [#63669](https://github.com/nodejs/node/pull/63669)
* \[[`7591949457`](https://github.com/nodejs/node/commit/7591949457)] - **dgram**: add synchronous Socket connectSync() (Guy Bedford) [#63932](https://github.com/nodejs/node/pull/63932)
* \[[`d75222d7cb`](https://github.com/nodejs/node/commit/d75222d7cb)] - **dgram**: add synchronous Socket.prototype.bindSync() (Guy Bedford) [#63838](https://github.com/nodejs/node/pull/63838)
* \[[`0cf8342ae2`](https://github.com/nodejs/node/commit/0cf8342ae2)] - **dns**: coerce -0 to +0 in lookup and resolver inputs (Filip Skokan) [#63556](https://github.com/nodejs/node/pull/63556)
* \[[`e068299320`](https://github.com/nodejs/node/commit/e068299320)] - **doc**: update gcc toolchains to `gcc-13` and `g++-13` (Louie Llaneta) [#64018](https://github.com/nodejs/node/pull/64018)
* \[[`65178bdcf3`](https://github.com/nodejs/node/commit/65178bdcf3)] - **doc**: add aduh95 to last security release steward (Antoine du Hamel) [#63981](https://github.com/nodejs/node/pull/63981)
* \[[`83eedfe85b`](https://github.com/nodejs/node/commit/83eedfe85b)] - **doc**: fix typo in util.md (Daijiro Wachi) [#63961](https://github.com/nodejs/node/pull/63961)
* \[[`54948c78e7`](https://github.com/nodejs/node/commit/54948c78e7)] - **doc**: clarify callback exceptions (Matteo Collina) [#63939](https://github.com/nodejs/node/pull/63939)
* \[[`205d0a57f2`](https://github.com/nodejs/node/commit/205d0a57f2)] - **doc**: fix incorrect test runner mock examples (Kimaswa Emmanuel Yusufu) [#63656](https://github.com/nodejs/node/pull/63656)
* \[[`44809b176c`](https://github.com/nodejs/node/commit/44809b176c)] - **doc**: clarify fromReadable() duck-typed contract (Trivikram Kamat) [#63682](https://github.com/nodejs/node/pull/63682)
* \[[`9cb15fcc85`](https://github.com/nodejs/node/commit/9cb15fcc85)] - **doc**: fix typo in cli.md (Daijiro Wachi) [#63883](https://github.com/nodejs/node/pull/63883)
* \[[`394d0bb928`](https://github.com/nodejs/node/commit/394d0bb928)] - **doc**: fix typo in vm.md (Daijiro Wachi) [#63881](https://github.com/nodejs/node/pull/63881)
* \[[`59b7be8193`](https://github.com/nodejs/node/commit/59b7be8193)] - **doc**: fix typo in packages.md (Daijiro Wachi) [#63882](https://github.com/nodejs/node/pull/63882)
* \[[`33c236cea9`](https://github.com/nodejs/node/commit/33c236cea9)] - **doc**: fix a/an article typos in module, util, and dns (Daijiro Wachi) [#63766](https://github.com/nodejs/node/pull/63766)
* \[[`30595da67b`](https://github.com/nodejs/node/commit/30595da67b)] - **doc**: update npm supported versions link (hojeong park) [#63672](https://github.com/nodejs/node/pull/63672)
* \[[`5919ba7e97`](https://github.com/nodejs/node/commit/5919ba7e97)] - **doc**: fix AES-OCB IV length in SubtleCrypto.supports example (Anshika Jain) [#63717](https://github.com/nodejs/node/pull/63717)
* \[[`51cab5cb72`](https://github.com/nodejs/node/commit/51cab5cb72)] - **doc**: add webstreams to args for `pipeline` from `stream/promises` (David Sanders) [#63628](https://github.com/nodejs/node/pull/63628)
* \[[`ce85b2af88`](https://github.com/nodejs/node/commit/ce85b2af88)] - **doc**: fix "used to sent" → "used to send" in http2 (Daijiro Wachi) [#63700](https://github.com/nodejs/node/pull/63700)
* \[[`298735e8df`](https://github.com/nodejs/node/commit/298735e8df)] - **doc**: mark Node.js 25 as End-of-Life (Antoine du Hamel) [#63692](https://github.com/nodejs/node/pull/63692)
* \[[`56948518b9`](https://github.com/nodejs/node/commit/56948518b9)] - **doc**: clarify tty raw mode applies to input processing only (Muhammad Zeeshan) [#63438](https://github.com/nodejs/node/pull/63438)
* \[[`32ff731248`](https://github.com/nodejs/node/commit/32ff731248)] - **doc**: add worker\_threads history entries (Bob Put) [#63545](https://github.com/nodejs/node/pull/63545)
* \[[`cde0daabcc`](https://github.com/nodejs/node/commit/cde0daabcc)] - **(SEMVER-MINOR)** **doc**: update `blockList` stability status to release candidate (alphaleadership) [#63050](https://github.com/nodejs/node/pull/63050)
* \[[`d29483fc4f`](https://github.com/nodejs/node/commit/d29483fc4f)] - **doc,crypto**: mark argon2 and encap/decap as stable (Filip Skokan) [#63924](https://github.com/nodejs/node/pull/63924)
* \[[`6e668331d9`](https://github.com/nodejs/node/commit/6e668331d9)] - **events**: improve `addAbortListener` perf by caching options object (Raz Luvaton) [#52367](https://github.com/nodejs/node/pull/52367)
* \[[`97aafe2519`](https://github.com/nodejs/node/commit/97aafe2519)] - **ffi**: add fast support for almost all other platforms (Paolo Insogna) [#63941](https://github.com/nodejs/node/pull/63941)
* \[[`f52cf5eeaa`](https://github.com/nodejs/node/commit/f52cf5eeaa)] - **ffi**: add experimental fast FFI call API for AArch64 and x86\_64 (Paolo Insogna) [#63068](https://github.com/nodejs/node/pull/63068)
* \[[`d9461fee05`](https://github.com/nodejs/node/commit/d9461fee05)] - **ffi**: port semi-colon fix for riscv64 (and others) (Stewart X Addison) [#63794](https://github.com/nodejs/node/pull/63794)
* \[[`4c8402e0a8`](https://github.com/nodejs/node/commit/4c8402e0a8)] - **fs**: do not treat EPERM as ENOTEMPTY on Windows (Kirill Saied) [#63709](https://github.com/nodejs/node/pull/63709)
* \[[`b78f5a7537`](https://github.com/nodejs/node/commit/b78f5a7537)] - **(SEMVER-MINOR)** **fs**: support caller-supplied readFile() buffers (Matteo Collina) [#63634](https://github.com/nodejs/node/pull/63634)
* \[[`3d0097d489`](https://github.com/nodejs/node/commit/3d0097d489)] - **fs**: prevent spurious recursive watch events on prefix siblings (Marco) [#63095](https://github.com/nodejs/node/pull/63095)
* \[[`14d829cb3c`](https://github.com/nodejs/node/commit/14d829cb3c)] - **fs**: ignore deleted dirs in recursive watch scan (Trivikram Kamat) [#63686](https://github.com/nodejs/node/pull/63686)
* \[[`ceba08a1ea`](https://github.com/nodejs/node/commit/ceba08a1ea)] - **fs**: coerce -0 to +0 in mode flags and watch intervals (Filip Skokan) [#63556](https://github.com/nodejs/node/pull/63556)
* \[[`6577d3b282`](https://github.com/nodejs/node/commit/6577d3b282)] - **http**: avoid stream listeners on idle agent sockets (Matteo Collina) [#64004](https://github.com/nodejs/node/pull/64004)
* \[[`417aacbc36`](https://github.com/nodejs/node/commit/417aacbc36)] - **(SEMVER-MINOR)** **http**: close pre-request sockets in closeIdleConnections (semimikoh) [#63470](https://github.com/nodejs/node/pull/63470)
* \[[`b7fd13a59a`](https://github.com/nodejs/node/commit/b7fd13a59a)] - **http2**: retain header memory in session accounting (Matteo Collina) [#63752](https://github.com/nodejs/node/pull/63752)
* \[[`e611ccd167`](https://github.com/nodejs/node/commit/e611ccd167)] - **inspector**: fix inspector.close() documented behavior (Chengzhong Wu) [#63837](https://github.com/nodejs/node/pull/63837)
* \[[`a44f51eef3`](https://github.com/nodejs/node/commit/a44f51eef3)] - **lib**: fix missing lazyDOMException import (Filip Skokan) [#64033](https://github.com/nodejs/node/pull/64033)
* \[[`27cc4ec598`](https://github.com/nodejs/node/commit/27cc4ec598)] - **lib**: add lint rule to enforce use of `kEmptyObject` (Antoine du Hamel) [#63790](https://github.com/nodejs/node/pull/63790)
* \[[`7ee31b0bf4`](https://github.com/nodejs/node/commit/7ee31b0bf4)] - **lib**: improve control abstraction coverage in frozen intrinsics (Renegade334) [#63698](https://github.com/nodejs/node/pull/63698)
* \[[`078457839a`](https://github.com/nodejs/node/commit/078457839a)] - **lib**: add Iterator global to primordials (Renegade334) [#63698](https://github.com/nodejs/node/pull/63698)
* \[[`58837dc4dd`](https://github.com/nodejs/node/commit/58837dc4dd)] - **lib**: remove source map deadcode in type stripping (Chengzhong Wu) [#63738](https://github.com/nodejs/node/pull/63738)
* \[[`e7513a8b9e`](https://github.com/nodejs/node/commit/e7513a8b9e)] - **lib**: make `Navigator#language` getter throw on invalid `this` (Mohamed Sayed) [#63601](https://github.com/nodejs/node/pull/63601)
* \[[`fbb108be7d`](https://github.com/nodejs/node/commit/fbb108be7d)] - **(SEMVER-MINOR)** **loader**: implement package maps (Maël Nison) [#62239](https://github.com/nodejs/node/pull/62239)
* \[[`ea0b8e1dc2`](https://github.com/nodejs/node/commit/ea0b8e1dc2)] - **meta**: bump github/codeql-action from 4.35.3 to 4.36.1 (dependabot\[bot]) [#63724](https://github.com/nodejs/node/pull/63724)
* \[[`ac90719532`](https://github.com/nodejs/node/commit/ac90719532)] - **meta**: bump actions/cache from 5.0.4 to 5.0.5 (dependabot\[bot]) [#62847](https://github.com/nodejs/node/pull/62847)
* \[[`3ed3de3062`](https://github.com/nodejs/node/commit/3ed3de3062)] - **meta**: bump actions/checkout from 6.0.2 to 6.0.3 (dependabot\[bot]) [#63726](https://github.com/nodejs/node/pull/63726)
* \[[`d08d57bf70`](https://github.com/nodejs/node/commit/d08d57bf70)] - **meta**: bump codecov/codecov-action from 6.0.0 to 6.0.1 (dependabot\[bot]) [#63725](https://github.com/nodejs/node/pull/63725)
* \[[`e748d192cf`](https://github.com/nodejs/node/commit/e748d192cf)] - **meta**: bump cachix/cachix-action (dependabot\[bot]) [#63729](https://github.com/nodejs/node/pull/63729)
* \[[`10554eb131`](https://github.com/nodejs/node/commit/10554eb131)] - **meta**: bump actions/stale from 10.2.0 to 10.3.0 (dependabot\[bot]) [#63728](https://github.com/nodejs/node/pull/63728)
* \[[`791885f2af`](https://github.com/nodejs/node/commit/791885f2af)] - **meta**: bump step-security/harden-runner from 2.19.0 to 2.19.4 (dependabot\[bot]) [#63727](https://github.com/nodejs/node/pull/63727)
* \[[`32d9a407d9`](https://github.com/nodejs/node/commit/32d9a407d9)] - **meta**: bump cachix/install-nix-action from 31.10.5 to 31.10.6 (dependabot\[bot]) [#63723](https://github.com/nodejs/node/pull/63723)
* \[[`b97c7bed07`](https://github.com/nodejs/node/commit/b97c7bed07)] - **module**: enable existing machinery for deferred import of static modules (Maya Lekova) [#63712](https://github.com/nodejs/node/pull/63712)
* \[[`4becad2117`](https://github.com/nodejs/node/commit/4becad2117)] - **module**: use file: URL as sourceURL for type-stripped CommonJS (Joyee Cheung) [#63705](https://github.com/nodejs/node/pull/63705)
* \[[`c71c85b95f`](https://github.com/nodejs/node/commit/c71c85b95f)] - **net**: early TCP binding via synchronous net.BoundSocket (Guy Bedford) [#63951](https://github.com/nodejs/node/pull/63951)
* \[[`45494d5a8a`](https://github.com/nodejs/node/commit/45494d5a8a)] - **(SEMVER-MINOR)** **net**: support TCP\_KEEPINTVL and TCP\_KEEPCNT in setKeepAlive (Guy Bedford) [#63825](https://github.com/nodejs/node/pull/63825)
* \[[`3988efa1f3`](https://github.com/nodejs/node/commit/3988efa1f3)] - **net**: coerce -0 to +0 in BlockList prefixes (Filip Skokan) [#63556](https://github.com/nodejs/node/pull/63556)
* \[[`484efd1c44`](https://github.com/nodejs/node/commit/484efd1c44)] - **quic**: fix get\_reader bug that dropped data on FIN (Tim Perry) [#63946](https://github.com/nodejs/node/pull/63946)
* \[[`04a17fe6f0`](https://github.com/nodejs/node/commit/04a17fe6f0)] - **quic**: expose QUIC certificates as JS X509Certificate, not raw handles (Tim Perry) [#63191](https://github.com/nodejs/node/pull/63191)
* \[[`b62d5696dc`](https://github.com/nodejs/node/commit/b62d5696dc)] - **quic**: fix reader backpressure deadlock on idle connections (Tim Perry) [#63950](https://github.com/nodejs/node/pull/63950)
* \[[`3f1c8d7453`](https://github.com/nodejs/node/commit/3f1c8d7453)] - **quic**: fix broken listEndpoints export, test callbacks & nghttp3 include (Tim Perry) [#63874](https://github.com/nodejs/node/pull/63874)
* \[[`d8538b9deb`](https://github.com/nodejs/node/commit/d8538b9deb)] - **quic**: impl. cb for http/3 settings/app. options (Marten Richter) [#63558](https://github.com/nodejs/node/pull/63558)
* \[[`643b19716e`](https://github.com/nodejs/node/commit/643b19716e)] - **quic**: add listEndpoints API (James M Snell) [#63536](https://github.com/nodejs/node/pull/63536)
* \[[`2bce35bea4`](https://github.com/nodejs/node/commit/2bce35bea4)] - **sqlite**: do not leave database open after failed open (Yagiz Nizipli) [#63854](https://github.com/nodejs/node/pull/63854)
* \[[`394af52abb`](https://github.com/nodejs/node/commit/394af52abb)] - **sqlite**: fix stack-use-after-scope with function callback (ndossche) [#63640](https://github.com/nodejs/node/pull/63640)
* \[[`10f03e5958`](https://github.com/nodejs/node/commit/10f03e5958)] - **src**: omit unconvertible names in cjs\_lexer::Parse (Yagiz Nizipli) [#63943](https://github.com/nodejs/node/pull/63943)
* \[[`1723773d41`](https://github.com/nodejs/node/commit/1723773d41)] - **src**: keep global list of addon-provided cleanup hooks (Anna Henningsen) [#63985](https://github.com/nodejs/node/pull/63985)
* \[[`ef12e9ea44`](https://github.com/nodejs/node/commit/ef12e9ea44)] - **src**: guard OpenSSL compression header include (Filip Skokan) [#64009](https://github.com/nodejs/node/pull/64009)
* \[[`48af8a6d8d`](https://github.com/nodejs/node/commit/48af8a6d8d)] - **src**: handle empty MaybeLocal in cjs\_lexer::Parse (Yagiz Nizipli) [#63885](https://github.com/nodejs/node/pull/63885)
* \[[`2a672ee9e8`](https://github.com/nodejs/node/commit/2a672ee9e8)] - **src**: fast path empty native immediate drain (Gürgün Dayıoğlu) [#62969](https://github.com/nodejs/node/pull/62969)
* \[[`db6a31d1a1`](https://github.com/nodejs/node/commit/db6a31d1a1)] - **src**: do not track weak `BaseObject`s as childrens of `Realm`s (Anna Henningsen) [#63842](https://github.com/nodejs/node/pull/63842)
* \[[`5fb837ff46`](https://github.com/nodejs/node/commit/5fb837ff46)] - **src**: allow tracking children in `MemoryTracker` with weak edges (Anna Henningsen) [#63842](https://github.com/nodejs/node/pull/63842)
* \[[`6d22d373a9`](https://github.com/nodejs/node/commit/6d22d373a9)] - **src**: use C++14 deprecated attribute for `NODE_DEPRECATED` (Anna Henningsen) [#63755](https://github.com/nodejs/node/pull/63755)
* \[[`7ac3fe1992`](https://github.com/nodejs/node/commit/7ac3fe1992)] - **src**: add cleanup hooks to `node::ObjectWrap` (Anna Henningsen) [#63642](https://github.com/nodejs/node/pull/63642)
* \[[`d82d369155`](https://github.com/nodejs/node/commit/d82d369155)] - **src**: fix edge case when deflateInit2() fails with Z\_VERSION\_ERROR (Nora Dossche) [#63476](https://github.com/nodejs/node/pull/63476)
* \[[`03858d152b`](https://github.com/nodejs/node/commit/03858d152b)] - **src**: remove redundant `handle_` field in ffi (Anna Henningsen) [#63665](https://github.com/nodejs/node/pull/63665)
* \[[`1682264f6b`](https://github.com/nodejs/node/commit/1682264f6b)] - **src**: add Latin1 fast path in StringBytes::Encode utf8 (Mert Can Altin) [#63385](https://github.com/nodejs/node/pull/63385)
* \[[`cc29696acf`](https://github.com/nodejs/node/commit/cc29696acf)] - **stream**: fix Writable.toWeb() desiredSize for non-object-mode (Matteo Collina) [#62986](https://github.com/nodejs/node/pull/62986)
* \[[`d9967a25b2`](https://github.com/nodejs/node/commit/d9967a25b2)] - **stream**: handle falsy push writer fail reasons (Trivikram Kamat) [#63569](https://github.com/nodejs/node/pull/63569)
* \[[`b53f8f75c9`](https://github.com/nodejs/node/commit/b53f8f75c9)] - **stream**: reduce allocations on WHATWG streams hot paths (Matteo Collina) [#63876](https://github.com/nodejs/node/pull/63876)
* \[[`315ca426d8`](https://github.com/nodejs/node/commit/315ca426d8)] - **stream**: handle setEncoding after buffered data (Matteo Collina) [#63973](https://github.com/nodejs/node/pull/63973)
* \[[`06413cd6bd`](https://github.com/nodejs/node/commit/06413cd6bd)] - **stream**: fix Utf8Stream stall after full write of multi-byte data (Daijiro Wachi) [#63964](https://github.com/nodejs/node/pull/63964)
* \[[`a9f9a3dafa`](https://github.com/nodejs/node/commit/a9f9a3dafa)] - **stream**: keep overlapping broadcast reads pending (Trivikram Kamat) [#63500](https://github.com/nodejs/node/pull/63500)
* \[[`009cca11bd`](https://github.com/nodejs/node/commit/009cca11bd)] - **stream**: refine the stream/iter backpressure (James M Snell) [#63697](https://github.com/nodejs/node/pull/63697)
* \[[`3f81dcfc99`](https://github.com/nodejs/node/commit/3f81dcfc99)] - **stream**: only pass the expected number of parameters to callbacks (Antoine du Hamel) [#63909](https://github.com/nodejs/node/pull/63909)
* \[[`9a83b5d1fe`](https://github.com/nodejs/node/commit/9a83b5d1fe)] - **stream**: fix dropped first chunk in Utf8Stream buffer mode (Daijiro Wachi) [#63833](https://github.com/nodejs/node/pull/63833)
* \[[`0bdf5adea9`](https://github.com/nodejs/node/commit/0bdf5adea9)] - **stream**: remove transform-writer handling in pipeTo (Trivikram Kamat) [#63684](https://github.com/nodejs/node/pull/63684)
* \[[`10272a94b6`](https://github.com/nodejs/node/commit/10272a94b6)] - **stream**: check done before backpressure in stream reader (Daijiro Wachi) [#63699](https://github.com/nodejs/node/pull/63699)
* \[[`792c410631`](https://github.com/nodejs/node/commit/792c410631)] - **stream**: fix pipeToSync byte accounting (Trivikram Kamat) [#63564](https://github.com/nodejs/node/pull/63564)
* \[[`3cfafbc54b`](https://github.com/nodejs/node/commit/3cfafbc54b)] - **stream**: reject pull() reads on abort (Trivikram Kamat) [#63498](https://github.com/nodejs/node/pull/63498)
* \[[`640a8cede5`](https://github.com/nodejs/node/commit/640a8cede5)] - **stream**: fast-path stateless transform flush results (Trivikram Kamat) [#63605](https://github.com/nodejs/node/pull/63605)
* \[[`ece4477872`](https://github.com/nodejs/node/commit/ece4477872)] - **stream**: optimize pipeTo promise handling (Matteo Collina) [#63572](https://github.com/nodejs/node/pull/63572)
* \[[`2cb84c2daf`](https://github.com/nodejs/node/commit/2cb84c2daf)] - **stream**: handle sync writev completion in pipeTo (Trivikram Kamat) [#63561](https://github.com/nodejs/node/pull/63561)
* \[[`7d9fdda5fa`](https://github.com/nodejs/node/commit/7d9fdda5fa)] - **stream**: settle pending broadcast reads on return (Trivikram Kamat) [#63603](https://github.com/nodejs/node/pull/63603)
* \[[`e2aea3aac7`](https://github.com/nodejs/node/commit/e2aea3aac7)] - **test**: tolerate duplicate watch change events (Trivikram Kamat) [#63937](https://github.com/nodejs/node/pull/63937)
* \[[`ea6300593a`](https://github.com/nodejs/node/commit/ea6300593a)] - **test**: mark test-debugger-run-after-quit-restart as flaky on macOS (Matteo Collina) [#64006](https://github.com/nodejs/node/pull/64006)
* \[[`be1b204fa4`](https://github.com/nodejs/node/commit/be1b204fa4)] - **test**: update WPT for url to d4598eba09 (Node.js GitHub Bot) [#63899](https://github.com/nodejs/node/pull/63899)
* \[[`b3d0d05b05`](https://github.com/nodejs/node/commit/b3d0d05b05)] - **test**: update WPT for WebCryptoAPI to 03a1476844 (Node.js GitHub Bot) [#63900](https://github.com/nodejs/node/pull/63900)
* \[[`046af2609f`](https://github.com/nodejs/node/commit/046af2609f)] - **test**: update WPT for urlpattern to 23aac92784 (Node.js GitHub Bot) [#63898](https://github.com/nodejs/node/pull/63898)
* \[[`562b831a98`](https://github.com/nodejs/node/commit/562b831a98)] - **test**: add tests for 3 methods in utils (Daijiro Wachi) [#63765](https://github.com/nodejs/node/pull/63765)
* \[[`28e3629dd3`](https://github.com/nodejs/node/commit/28e3629dd3)] - **test**: mark SEA tests flaky on linux arm debug (Trivikram Kamat) [#63743](https://github.com/nodejs/node/pull/63743)
* \[[`243aa846de`](https://github.com/nodejs/node/commit/243aa846de)] - **test**: validate ERR\_INVALID\_THIS for scheduler methods (Daijiro Wachi) [#63764](https://github.com/nodejs/node/pull/63764)
* \[[`6bd07df2bc`](https://github.com/nodejs/node/commit/6bd07df2bc)] - **test**: add coverage outside SEA (Daijiro Wachi) [#63744](https://github.com/nodejs/node/pull/63744)
* \[[`bd67c9d11b`](https://github.com/nodejs/node/commit/bd67c9d11b)] - **test**: update WPT for urlpattern to 2f28df545c (Node.js GitHub Bot) [#63771](https://github.com/nodejs/node/pull/63771)
* \[[`e40bfe7081`](https://github.com/nodejs/node/commit/e40bfe7081)] - **test**: make Brotli 16GB test wait for backpressure (Trivikram Kamat) [#63389](https://github.com/nodejs/node/pull/63389)
* \[[`444c03fd3b`](https://github.com/nodejs/node/commit/444c03fd3b)] - **test**: add regression test for using `ObjectWrap` in worker (Mohamed Akram) [#63642](https://github.com/nodejs/node/pull/63642)
* \[[`771230df78`](https://github.com/nodejs/node/commit/771230df78)] - **test**: accept SIGILL aborts in async-hooks tests (Trivikram Kamat) [#63687](https://github.com/nodejs/node/pull/63687)
* \[[`0b3cd8e5e6`](https://github.com/nodejs/node/commit/0b3cd8e5e6)] - **test**: add more test cases for pathToFileURL (Rafael Gonzaga) [#63293](https://github.com/nodejs/node/pull/63293)
* \[[`0cbc77c60e`](https://github.com/nodejs/node/commit/0cbc77c60e)] - **test**: update test426-fixtures to 2965987bf4c96afa400c9356c8e620cb340aaee (Node.js GitHub Bot) [#63668](https://github.com/nodejs/node/pull/63668)
* \[[`f53dee5fe4`](https://github.com/nodejs/node/commit/f53dee5fe4)] - **test**: update WPT for WebCryptoAPI to 0c413fb56b (Node.js GitHub Bot) [#63647](https://github.com/nodejs/node/pull/63647)
* \[[`3048f8dc1a`](https://github.com/nodejs/node/commit/3048f8dc1a)] - **test,debugger**: add test for type stripping in debugger probe mode (Joyee Cheung) [#63748](https://github.com/nodejs/node/pull/63748)
* \[[`9485caa97e`](https://github.com/nodejs/node/commit/9485caa97e)] - **test\_runner**: remove unused shuffleArrayWithSeed (Daijiro Wachi) [#63847](https://github.com/nodejs/node/pull/63847)
* \[[`34433a4a87`](https://github.com/nodejs/node/commit/34433a4a87)] - **test\_runner**: fix watch cwd with isolation none (Trivikram Kamat) [#63690](https://github.com/nodejs/node/pull/63690)
* \[[`2e7da29b7c`](https://github.com/nodejs/node/commit/2e7da29b7c)] - **test\_runner**: avoid recompiling coverage globs for every file (sangwook) [#63675](https://github.com/nodejs/node/pull/63675)
* \[[`205295a31e`](https://github.com/nodejs/node/commit/205295a31e)] - **test\_runner**: cache `shouldSkipFileCoverage` result per URL (sangwook) [#63675](https://github.com/nodejs/node/pull/63675)
* \[[`ee29465e77`](https://github.com/nodejs/node/commit/ee29465e77)] - **(SEMVER-MINOR)** **tls**: add certificateCompression option (Tim Perry) [#62217](https://github.com/nodejs/node/pull/62217)
* \[[`57d060ed2b`](https://github.com/nodejs/node/commit/57d060ed2b)] - **tls**: route event listener exceptions through error handlers (Antoine du Hamel) [#63822](https://github.com/nodejs/node/pull/63822)
* \[[`d2dc6f8506`](https://github.com/nodejs/node/commit/d2dc6f8506)] - **tools**: bump piscina from 5.1.4 to 5.2.0 in /tools/doc (dependabot\[bot]) [#64002](https://github.com/nodejs/node/pull/64002)
* \[[`b0c418f605`](https://github.com/nodejs/node/commit/b0c418f605)] - **tools**: update sccache to v0.16.0 (Michaël Zasso) [#63078](https://github.com/nodejs/node/pull/63078)
* \[[`2af8433bef`](https://github.com/nodejs/node/commit/2af8433bef)] - **tools**: bump js-yaml from 4.1.1 to 4.2.0 in /tools/lint-md (dependabot\[bot]) [#63948](https://github.com/nodejs/node/pull/63948)
* \[[`8ba5b8574b`](https://github.com/nodejs/node/commit/8ba5b8574b)] - **tools**: bump js-yaml from 4.1.1 to 4.2.0 in /tools/eslint (dependabot\[bot]) [#63947](https://github.com/nodejs/node/pull/63947)
* \[[`325087be5b`](https://github.com/nodejs/node/commit/325087be5b)] - **tools**: enforce iterator result property order (Trivikram Kamat) [#63526](https://github.com/nodejs/node/pull/63526)
* \[[`314f417db7`](https://github.com/nodejs/node/commit/314f417db7)] - **tools**: update the llhttp updater script (Antoine du Hamel) [#63819](https://github.com/nodejs/node/pull/63819)
* \[[`c6e4f5a4fe`](https://github.com/nodejs/node/commit/c6e4f5a4fe)] - **tools**: avoid test/fixtures/wpt/README.md conflicts (Filip Skokan) [#63938](https://github.com/nodejs/node/pull/63938)
* \[[`363912acc3`](https://github.com/nodejs/node/commit/363912acc3)] - **tools**: align Bash snippets in GHA with `lint-sh` conventions (Antoine du Hamel) [#63829](https://github.com/nodejs/node/pull/63829)
* \[[`cfd16e973c`](https://github.com/nodejs/node/commit/cfd16e973c)] - **tools**: bump @node-core/doc-kit in /tools/doc in the doc group (dependabot\[bot]) [#63760](https://github.com/nodejs/node/pull/63760)
* \[[`1566872706`](https://github.com/nodejs/node/commit/1566872706)] - **tools**: bump the eslint group in /tools/eslint with 7 updates (dependabot\[bot]) [#63730](https://github.com/nodejs/node/pull/63730)
* \[[`08437a3a5b`](https://github.com/nodejs/node/commit/08437a3a5b)] - **tools**: fix zlib updater script (Antoine du Hamel) [#63707](https://github.com/nodejs/node/pull/63707)
* \[[`e883366172`](https://github.com/nodejs/node/commit/e883366172)] - **url**: fix URLSearchParams(null) to prudce null= per spec (Marco) [#63782](https://github.com/nodejs/node/pull/63782)
* \[[`60e83d9bfd`](https://github.com/nodejs/node/commit/60e83d9bfd)] - **util**: fix scientific notation formatting (Daijiro Wachi) [#63823](https://github.com/nodejs/node/pull/63823)
* \[[`5f7f60ac36`](https://github.com/nodejs/node/commit/5f7f60ac36)] - **util**: fix -0 formatting when numericSeparator is enabled (Daijiro Wachi) [#63815](https://github.com/nodejs/node/pull/63815)
* \[[`af1a11e0dd`](https://github.com/nodejs/node/commit/af1a11e0dd)] - **util**: remove style caches from styleText slow path (Guilherme Araújo) [#63706](https://github.com/nodejs/node/pull/63706)
* \[[`b17817eb2b`](https://github.com/nodejs/node/commit/b17817eb2b)] - **(SEMVER-MINOR)** **vfs**: dispatch fs/promises to mounted VFS instances (Matteo Collina) [#63537](https://github.com/nodejs/node/pull/63537)
* \[[`7bc93a6ac5`](https://github.com/nodejs/node/commit/7bc93a6ac5)] - **(SEMVER-MINOR)** **vfs**: add minimal node:vfs subsystem (Matteo Collina) [#63115](https://github.com/nodejs/node/pull/63115)
* \[[`584e7527c4`](https://github.com/nodejs/node/commit/584e7527c4)] - **vm**: fix property queries for proxy sandboxes (Brian Meek) [#63742](https://github.com/nodejs/node/pull/63742)
* \[[`a926e72eaf`](https://github.com/nodejs/node/commit/a926e72eaf)] - **watch**: print name of changed file that triggers restart (Marco) [#63781](https://github.com/nodejs/node/pull/63781)
* \[[`32a2621ca4`](https://github.com/nodejs/node/commit/32a2621ca4)] - **watch**: cancel pending restart on shutdown (Trivikram Kamat) [#63383](https://github.com/nodejs/node/pull/63383)
* \[[`692215d1b1`](https://github.com/nodejs/node/commit/692215d1b1)] - **zlib**: coerce -0 to +0 for crc32 seeds (Filip Skokan) [#63556](https://github.com/nodejs/node/pull/63556)

<a id="26.3.1"></a>

## 2026-06-18, Version 26.3.1 (Current), @aduh95

This is a security release.

### Notable Changes

* (CVE-2026-48618) tls: normalize hostname for server identity checks (Matteo Collina) – High
* (CVE-2026-48933) crypto: guard WebCrypto cipher output length (Filip Skokan) – High
* (CVE-2026-48615) lib,test: redact proxy credentials in tunnel errors (Matteo Collina) – Medium
* (CVE-2026-48619) http2: cap originSet size to prevent unbounded memory growth (Matteo Collina) – Medium
* (CVE-2026-48928) tls: fix case-sensitive SNI context matching (Matteo Collina) – Medium
* (CVE-2026-48930) dns,net: reject hostnames with embedded NUL bytes (Matteo Collina) – Medium
* (CVE-2026-48934) tls: bind reusable sessions to authenticated host (Matteo Collina) – Medium
* (CVE-2026-48617) permission: handle process.chdir on writereport (RafaelGSS) – Low
* (CVE-2026-48931) http: fix response queue poisoning in http.Agent (Matteo Collina) – Low
* (CVE-2026-48935) permission: disable FileHandle utimes with permission model (RafaelGSS) – Low
* (CVE-2026-48936) permission: guard pipe open and chmod with net scope (RafaelGSS) – Low

### Commits

* \[[`98fbc89211`](https://github.com/nodejs/node/commit/98fbc89211)] - **(CVE-2026-48933)** **crypto**: guard WebCrypto cipher output length (Filip Skokan) [nodejs-private/node-private#878](https://github.com/nodejs-private/node-private/pull/878)
* \[[`110840f2c7`](https://github.com/nodejs/node/commit/110840f2c7)] - **deps**: update llhttp to 9.4.2 (Antoine du Hamel) [nodejs-private/node-private#890](https://github.com/nodejs-private/node-private/pull/890)
* \[[`8d36d522b2`](https://github.com/nodejs/node/commit/8d36d522b2)] - **deps**: update undici to 8.5.0 (Node.js GitHub Bot) [#63903](https://github.com/nodejs/node/pull/63903)
* \[[`2e6d03993a`](https://github.com/nodejs/node/commit/2e6d03993a)] - **deps**: update undici to 8.4.0 (Node.js GitHub Bot) [#63779](https://github.com/nodejs/node/pull/63779)
* \[[`5a17d5b07a`](https://github.com/nodejs/node/commit/5a17d5b07a)] - **deps**: update archs files for openssl-3.5.7 (Node.js GitHub Bot) [#63820](https://github.com/nodejs/node/pull/63820)
* \[[`362725d4e5`](https://github.com/nodejs/node/commit/362725d4e5)] - **deps**: upgrade openssl sources to openssl-3.5.7 (Node.js GitHub Bot) [#63820](https://github.com/nodejs/node/pull/63820)
* \[[`bd1214ab01`](https://github.com/nodejs/node/commit/bd1214ab01)] - **(CVE-2026-48930)** **dns,net**: reject hostnames with embedded NUL bytes (Matteo Collina) [nodejs-private/node-private#868](https://github.com/nodejs-private/node-private/pull/868)
* \[[`bc0b53813e`](https://github.com/nodejs/node/commit/bc0b53813e)] - **(CVE-2026-48931)** **http**: fix response queue poisoning in http.Agent (Matteo Collina) [nodejs-private/node-private#846](https://github.com/nodejs-private/node-private/pull/846)
* \[[`87d847bc70`](https://github.com/nodejs/node/commit/87d847bc70)] - **(CVE-2026-48619)** **http2**: cap originSet size to prevent unbounded memory growth (Matteo Collina) [nodejs-private/node-private#855](https://github.com/nodejs-private/node-private/pull/855)
* \[[`9308084fcb`](https://github.com/nodejs/node/commit/9308084fcb)] - **(CVE-2026-48615)** **lib,test**: redact proxy credentials in tunnel errors (Matteo Collina) [nodejs-private/node-private#867](https://github.com/nodejs-private/node-private/pull/867)
* \[[`a67dd46891`](https://github.com/nodejs/node/commit/a67dd46891)] - **(CVE-2026-48936)** **permission**: guard pipe open and chmod with net scope (RafaelGSS) [nodejs-private/node-private#885](https://github.com/nodejs-private/node-private/pull/885)
* \[[`7057c3f16c`](https://github.com/nodejs/node/commit/7057c3f16c)] - **(CVE-2026-48935)** **permission**: disable FileHandle utimes with permission model (RafaelGSS) [nodejs-private/node-private#873](https://github.com/nodejs-private/node-private/pull/873)
* \[[`6bc17a6b51`](https://github.com/nodejs/node/commit/6bc17a6b51)] - **(CVE-2026-48617)** **permission**: handle process.chdir on writereport (RafaelGSS) [nodejs-private/node-private#870](https://github.com/nodejs-private/node-private/pull/870)
* \[[`c8668beff8`](https://github.com/nodejs/node/commit/c8668beff8)] - **test**: add session reuse host verification regressions (Matteo Collina) [nodejs-private/node-private#854](https://github.com/nodejs-private/node-private/pull/854)
* \[[`d1be630415`](https://github.com/nodejs/node/commit/d1be630415)] - **(CVE-2026-48934)** **tls**: bind reusable sessions to authenticated host (Matteo Collina) [nodejs-private/node-private#854](https://github.com/nodejs-private/node-private/pull/854)
* \[[`a14c158bb3`](https://github.com/nodejs/node/commit/a14c158bb3)] - **(CVE-2026-48928)** **tls**: fix case-sensitive SNI context matching (Matteo Collina) [nodejs-private/node-private#857](https://github.com/nodejs-private/node-private/pull/857)
* \[[`ebda73470d`](https://github.com/nodejs/node/commit/ebda73470d)] - **(CVE-2026-48618)** **tls**: normalize hostname for server identity checks (Matteo Collina) [nodejs-private/node-private#869](https://github.com/nodejs-private/node-private/pull/869)

<a id="26.3.0"></a>

## 2026-06-01, Version 26.3.0 (Current), @aduh95

### Notable Changes

#### Potential changes to macOS Universal Binary availability

With Apple and its ecosystem progressively dropping support for Intel-based
architectures, it has become apparent that the Node.js project may not be able
to maintain the universal binaries we currently distribute for the full lifetime
of Node.js 26. This change serves to communicate that risk. At present, our
intention remains to continue shipping universal binaries supporting both Apple
Silicon and Intel-based Macs for as long as practical.

Contributed by Antoine du Hamel in [#63055](https://github.com/nodejs/node/pull/63055).

#### Other notable changes

* \[[`a2a4b33dd8`](https://github.com/nodejs/node/commit/a2a4b33dd8)] - **(SEMVER-MINOR)** **buffer**: increase `Buffer.poolSize` default to 64 KiB (Matteo Collina) [#63597](https://github.com/nodejs/node/pull/63597)
* \[[`051a2152f7`](https://github.com/nodejs/node/commit/051a2152f7)] - **crypto**: update root certificates to NSS 3.123.1 (Node.js GitHub Bot) [#63527](https://github.com/nodejs/node/pull/63527)
* \[[`49462eca37`](https://github.com/nodejs/node/commit/49462eca37)] - **(SEMVER-MINOR)** **http**: add `httpValidation` option to configure header value validation (RajeshKumar11) [#61597](https://github.com/nodejs/node/pull/61597)
* \[[`97b7ab19bd`](https://github.com/nodejs/node/commit/97b7ab19bd)] - **(SEMVER-MINOR)** **inspector**: expose precise coverage start to JS runtime (sangwook) [#63079](https://github.com/nodejs/node/pull/63079)
* \[[`cfb80a2103`](https://github.com/nodejs/node/commit/cfb80a2103)] - **(SEMVER-MINOR)** **lib,permission**: add `permission.drop` (Rafael Gonzaga) [#62672](https://github.com/nodejs/node/pull/62672)

### Commits

* \[[`a2a4b33dd8`](https://github.com/nodejs/node/commit/a2a4b33dd8)] - **(SEMVER-MINOR)** **buffer**: increase Buffer.poolSize default to 64 KiB (Matteo Collina) [#63597](https://github.com/nodejs/node/pull/63597)
* \[[`0eff3e23b9`](https://github.com/nodejs/node/commit/0eff3e23b9)] - **build**: def `NODE_USE_NODE_CODE_CACHE` only used in node\_mksnapshot (Chengzhong Wu) [#63588](https://github.com/nodejs/node/pull/63588)
* \[[`447ab2d252`](https://github.com/nodejs/node/commit/447ab2d252)] - **build,win**: fix VS2022 arm64 PGO build (Stefan Stojanovic) [#63413](https://github.com/nodejs/node/pull/63413)
* \[[`86032758e4`](https://github.com/nodejs/node/commit/86032758e4)] - **build,win**: replace LTCG with Thin LTO for releases (Stefan Stojanovic) [#63114](https://github.com/nodejs/node/pull/63114)
* \[[`5f4d794052`](https://github.com/nodejs/node/commit/5f4d794052)] - **build,win**: add Rust toolchain automated configuration Windows (Mike McCready) [#63381](https://github.com/nodejs/node/pull/63381)
* \[[`051a2152f7`](https://github.com/nodejs/node/commit/051a2152f7)] - **crypto**: update root certificates to NSS 3.123.1 (Node.js GitHub Bot) [#63527](https://github.com/nodejs/node/pull/63527)
* \[[`d0f65e3579`](https://github.com/nodejs/node/commit/d0f65e3579)] - **crypto**: coerce -0 keylen to +0 in pbkdf2 and scrypt (Jordan Harband) [#63531](https://github.com/nodejs/node/pull/63531)
* \[[`e3ddb326c9`](https://github.com/nodejs/node/commit/e3ddb326c9)] - **crypto**: harden WebCrypto against prototype pollution (Filip Skokan) [#63363](https://github.com/nodejs/node/pull/63363)
* \[[`e04cd17dc0`](https://github.com/nodejs/node/commit/e04cd17dc0)] - **crypto**: pass CryptoKey handles to KDF jobs (Filip Skokan) [#63363](https://github.com/nodejs/node/pull/63363)
* \[[`64ba74d847`](https://github.com/nodejs/node/commit/64ba74d847)] - **crypto**: remove async from WebCrypto methods (Filip Skokan) [#63363](https://github.com/nodejs/node/pull/63363)
* \[[`bd230418b4`](https://github.com/nodejs/node/commit/bd230418b4)] - **crypto**: add WebCrypto CryptoJob mode (Filip Skokan) [#63363](https://github.com/nodejs/node/pull/63363)
* \[[`1a4090a83d`](https://github.com/nodejs/node/commit/1a4090a83d)] - **debugger**: surface inspector failures in probe mode (Joyee Cheung) [#63437](https://github.com/nodejs/node/pull/63437)
* \[[`dbc78ff825`](https://github.com/nodejs/node/commit/dbc78ff825)] - **debugger,test**: deflake resume failure test and add debug logs (Joyee Cheung) [#63524](https://github.com/nodejs/node/pull/63524)
* \[[`4da442f432`](https://github.com/nodejs/node/commit/4da442f432)] - **deps**: upgrade npm to 11.16.0 (npm team) [#63602](https://github.com/nodejs/node/pull/63602)
* \[[`63372cfa87`](https://github.com/nodejs/node/commit/63372cfa87)] - **deps**: SQLite: cherry-pick b869ed6b067d623cb1383549f2a18aa35508385d (Junsu Han) [#63525](https://github.com/nodejs/node/pull/63525)
* \[[`e286fa170d`](https://github.com/nodejs/node/commit/e286fa170d)] - **deps**: upgrade npm to 11.15.0 (npm team) [#63463](https://github.com/nodejs/node/pull/63463)
* \[[`de996437a5`](https://github.com/nodejs/node/commit/de996437a5)] - **doc**: downgrade macOS x64 to Tier 2 (Antoine du Hamel) [#63055](https://github.com/nodejs/node/pull/63055)
* \[[`22ac78750c`](https://github.com/nodejs/node/commit/22ac78750c)] - **doc**: remove duplicated sentences in large-pull-requests.md (Joyee Cheung) [#63650](https://github.com/nodejs/node/pull/63650)
* \[[`532f7f2085`](https://github.com/nodejs/node/commit/532f7f2085)] - **doc**: update `git node land` instructions for security releases (Antoine du Hamel) [#63586](https://github.com/nodejs/node/pull/63586)
* \[[`c61f90dfb9`](https://github.com/nodejs/node/commit/c61f90dfb9)] - **doc**: drop --experimental from --permission (Rafael Gonzaga) [#63583](https://github.com/nodejs/node/pull/63583)
* \[[`fd69d7b16a`](https://github.com/nodejs/node/commit/fd69d7b16a)] - **doc**: improve `fs.StatFs` properties descriptions (aymanxdev) [#62578](https://github.com/nodejs/node/pull/62578)
* \[[`693257782c`](https://github.com/nodejs/node/commit/693257782c)] - **doc**: generate llms.txt (Guilherme Araújo) [#62027](https://github.com/nodejs/node/pull/62027)
* \[[`55a57beb26`](https://github.com/nodejs/node/commit/55a57beb26)] - **doc**: explicitly ask for reproducible in JS (Rafael Gonzaga) [#63479](https://github.com/nodejs/node/pull/63479)
* \[[`4895c2babc`](https://github.com/nodejs/node/commit/4895c2babc)] - **doc**: fix URL postMessage example in worker\_threads (Kit Dallege) [#62203](https://github.com/nodejs/node/pull/62203)
* \[[`0355c36e37`](https://github.com/nodejs/node/commit/0355c36e37)] - **doc**: clarify `filter` option of `sqlite.database.applyChangeset` (Antoine du Hamel) [#63515](https://github.com/nodejs/node/pull/63515)
* \[[`c85ee22df6`](https://github.com/nodejs/node/commit/c85ee22df6)] - **doc**: fix double spaces in ERR\_TLS\_INVALID\_PROTOCOL\_METHOD (Daijiro Wachi) [#63511](https://github.com/nodejs/node/pull/63511)
* \[[`62947192f6`](https://github.com/nodejs/node/commit/62947192f6)] - **doc**: move hyperlinks outside of text blocks (Aviv Keller) [#63493](https://github.com/nodejs/node/pull/63493)
* \[[`9849690a1d`](https://github.com/nodejs/node/commit/9849690a1d)] - **doc**: edit Rust toolchain general install instructions (Antoine du Hamel) [#63488](https://github.com/nodejs/node/pull/63488)
* \[[`885d2462e9`](https://github.com/nodejs/node/commit/885d2462e9)] - **doc**: fix double space in modules.md (Daijiro Wachi) [#63512](https://github.com/nodejs/node/pull/63512)
* \[[`42fbb48bc6`](https://github.com/nodejs/node/commit/42fbb48bc6)] - **doc**: fix "options" to "option" in tls.createServer (Daijiro Wachi) [#63453](https://github.com/nodejs/node/pull/63453)
* \[[`05a7b0a301`](https://github.com/nodejs/node/commit/05a7b0a301)] - **doc**: add Rust toolchain general install instructions (Mike McCready) [#63426](https://github.com/nodejs/node/pull/63426)
* \[[`e13dfd7ed0`](https://github.com/nodejs/node/commit/e13dfd7ed0)] - **doc**: update toolchain for official releases (Richard Lau) [#63441](https://github.com/nodejs/node/pull/63441)
* \[[`82306881cc`](https://github.com/nodejs/node/commit/82306881cc)] - **doc**: fix typo in deprecations (Daijiro Wachi) [#63434](https://github.com/nodejs/node/pull/63434)
* \[[`eeb77d217c`](https://github.com/nodejs/node/commit/eeb77d217c)] - **doc,lib**: align WebCrypto names with spec (Filip Skokan) [#63518](https://github.com/nodejs/node/pull/63518)
* \[[`679e13c57f`](https://github.com/nodejs/node/commit/679e13c57f)] - **errors**: handle V8 warnings in DisallowJavascriptExecutionScope (Divyanshu Sharma) [#63491](https://github.com/nodejs/node/pull/63491)
* \[[`7f41f5d803`](https://github.com/nodejs/node/commit/7f41f5d803)] - **ffi**: validate 'void' as parameter type in getFunction and getFunctions (Anshika Jain) [#63504](https://github.com/nodejs/node/pull/63504)
* \[[`972cd227cb`](https://github.com/nodejs/node/commit/972cd227cb)] - **ffi**: remove function signature property aliases (René) [#63482](https://github.com/nodejs/node/pull/63482)
* \[[`5d7805e433`](https://github.com/nodejs/node/commit/5d7805e433)] - **ffi**: move DynamicLibrary disposer to native layer (René) [#63459](https://github.com/nodejs/node/pull/63459)
* \[[`5a0b32dc24`](https://github.com/nodejs/node/commit/5a0b32dc24)] - **gyp**: update deps gypfiles (Nad Alaba) [#63117](https://github.com/nodejs/node/pull/63117)
* \[[`49462eca37`](https://github.com/nodejs/node/commit/49462eca37)] - **(SEMVER-MINOR)** **http**: add httpValidation option to configure header value validation (RajeshKumar11) [#61597](https://github.com/nodejs/node/pull/61597)
* \[[`e3c6629ee3`](https://github.com/nodejs/node/commit/e3c6629ee3)] - **http2**: emit session close before stream close (Matteo Collina) [#63414](https://github.com/nodejs/node/pull/63414)
* \[[`97b7ab19bd`](https://github.com/nodejs/node/commit/97b7ab19bd)] - **(SEMVER-MINOR)** **inspector**: expose precise coverage start to JS runtime (sangwook) [#63079](https://github.com/nodejs/node/pull/63079)
* \[[`6bef10e7b7`](https://github.com/nodejs/node/commit/6bef10e7b7)] - **lib**: cleanup stateless diffiehellman key handling (Filip Skokan) [#62645](https://github.com/nodejs/node/pull/62645)
* \[[`fdc0b3d49c`](https://github.com/nodejs/node/commit/fdc0b3d49c)] - **lib**: define `kEnumerableProperty` atomically (Antoine du Hamel) [#63609](https://github.com/nodejs/node/pull/63609)
* \[[`99baf27aeb`](https://github.com/nodejs/node/commit/99baf27aeb)] - **lib**: fix typos in esm loader comments (RonGamzu) [#63465](https://github.com/nodejs/node/pull/63465)
* \[[`cfb80a2103`](https://github.com/nodejs/node/commit/cfb80a2103)] - **(SEMVER-MINOR)** **lib,permission**: add permission.drop (Rafael Gonzaga) [#62672](https://github.com/nodejs/node/pull/62672)
* \[[`8e75efb9bc`](https://github.com/nodejs/node/commit/8e75efb9bc)] - **meta**: flip mcollina emails in .mailmap (Matteo Collina) [#63621](https://github.com/nodejs/node/pull/63621)
* \[[`a4ae97045f`](https://github.com/nodejs/node/commit/a4ae97045f)] - **meta**: label "source maps" PRs (Chengzhong Wu) [#63591](https://github.com/nodejs/node/pull/63591)
* \[[`3455a48ae1`](https://github.com/nodejs/node/commit/3455a48ae1)] - **meta**: add `vfs` subsystem label (René) [#62331](https://github.com/nodejs/node/pull/62331)
* \[[`01bfcdfc20`](https://github.com/nodejs/node/commit/01bfcdfc20)] - **meta**: skip scheduled workflows on forks (Jamie Magee) [#63565](https://github.com/nodejs/node/pull/63565)
* \[[`bc4c457eae`](https://github.com/nodejs/node/commit/bc4c457eae)] - **meta**: add additional gitignore entries (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`e1d65d9509`](https://github.com/nodejs/node/commit/e1d65d9509)] - **module**: load ESM helpers eagerly in the snapshot (Joyee Cheung) [#63550](https://github.com/nodejs/node/pull/63550)
* \[[`6a97b0932a`](https://github.com/nodejs/node/commit/6a97b0932a)] - **quic**: add proper error codes & messages for QUIC failures (Tim Perry) [#63198](https://github.com/nodejs/node/pull/63198)
* \[[`5989f4a6e1`](https://github.com/nodejs/node/commit/5989f4a6e1)] - **quic**: support hostname verification (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
* \[[`b4d30e7a78`](https://github.com/nodejs/node/commit/b4d30e7a78)] - **quic**: add stream idle timeout (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
* \[[`8a1017f774`](https://github.com/nodejs/node/commit/8a1017f774)] - **quic**: add block list support for endpoints (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
* \[[`5a3ab93c49`](https://github.com/nodejs/node/commit/5a3ab93c49)] - **quic**: improve peer cert verification (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
* \[[`9701a82a78`](https://github.com/nodejs/node/commit/9701a82a78)] - **quic**: handle h3 max header size option (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
* \[[`71788a2048`](https://github.com/nodejs/node/commit/71788a2048)] - **quic**: add rate limiting docs (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
* \[[`309bd49906`](https://github.com/nodejs/node/commit/309bd49906)] - **quic**: cache timestamp for address lru cache (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
* \[[`2ce5588d51`](https://github.com/nodejs/node/commit/2ce5588d51)] - **quic**: add session creation rate limiting (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
* \[[`98808baed1`](https://github.com/nodejs/node/commit/98808baed1)] - **quic**: refine rate limiting (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
* \[[`75a4176b32`](https://github.com/nodejs/node/commit/75a4176b32)] - **quic**: flip preferred address policy default to 'ignore' (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
* \[[`8b6b03d60c`](https://github.com/nodejs/node/commit/8b6b03d60c)] - **quic**: add doc note about certificate size limitations (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
* \[[`30eff873e0`](https://github.com/nodejs/node/commit/30eff873e0)] - **quic**: add applicationOptions to session (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`4303daa43c`](https://github.com/nodejs/node/commit/4303daa43c)] - **quic**: add getters for local and remote transport parameters (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`e1b1bb5465`](https://github.com/nodejs/node/commit/e1b1bb5465)] - **quic**: improve recv coalescing test sizes (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`25a416f457`](https://github.com/nodejs/node/commit/25a416f457)] - **quic**: add initial RTT option to session options (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`22e91c357f`](https://github.com/nodejs/node/commit/22e91c357f)] - **quic**: enable recvmmsg batching in Endpoint (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`c96d8a9d9b`](https://github.com/nodejs/node/commit/c96d8a9d9b)] - **quic**: improve stream header collection performance (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`409460f2ce`](https://github.com/nodejs/node/commit/409460f2ce)] - **quic**: add reusePort option to QuicEndpoint (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`9a2afffec9`](https://github.com/nodejs/node/commit/9a2afffec9)] - **quic**: coalesce received data into fewer buffers (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`f9a6a2f558`](https://github.com/nodejs/node/commit/f9a6a2f558)] - **quic**: apply multiple additional minor improvements (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`ea5f3724ee`](https://github.com/nodejs/node/commit/ea5f3724ee)] - **quic**: fix tests that are missing serverEndpoint close (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`6cffc931fc`](https://github.com/nodejs/node/commit/6cffc931fc)] - **quic**: fixup some v8:: qualifiers (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`9bc875e522`](https://github.com/nodejs/node/commit/9bc875e522)] - **quic**: fix premature unref of endpoint when listening (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`f940d6b1be`](https://github.com/nodejs/node/commit/f940d6b1be)] - **quic**: fixup UAFs in bindingdata, streams, and app (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`fd00e0acb0`](https://github.com/nodejs/node/commit/fd00e0acb0)] - **quic**: fix UAF in Application::OnTimeout() (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`378dbf00e9`](https://github.com/nodejs/node/commit/378dbf00e9)] - **quic**: improve the quic js structure (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`0045dc30b6`](https://github.com/nodejs/node/commit/0045dc30b6)] - **quic**: improve internal structure of QuicStream (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`5e38946b26`](https://github.com/nodejs/node/commit/5e38946b26)] - **quic**: add aliased struct arenas (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`95430437a0`](https://github.com/nodejs/node/commit/95430437a0)] - **quic**: add handshake timeout and default connection limits (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`5622701429`](https://github.com/nodejs/node/commit/5622701429)] - **quic**: implement rate limiting for version nego and immediate close (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`b171f391cd`](https://github.com/nodejs/node/commit/b171f391cd)] - **quic**: fixup linting issue after other changes (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`24e9f4f177`](https://github.com/nodejs/node/commit/24e9f4f177)] - **quic**: fix crash in early handshake failure (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`5025e85d0a`](https://github.com/nodejs/node/commit/5025e85d0a)] - **quic**: eliminate per-received datagram allocation (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`aec1e17ec5`](https://github.com/nodejs/node/commit/aec1e17ec5)] - **quic**: cache the timestamp on send and receive (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`9560084560`](https://github.com/nodejs/node/commit/9560084560)] - **quic**: add support for future ECN marking (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`2b3ff8ada2`](https://github.com/nodejs/node/commit/2b3ff8ada2)] - **quic**: improve batching of packet sending (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`fe3639a4d6`](https://github.com/nodejs/node/commit/fe3639a4d6)] - **quic**: improve backend quic packet processing (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`f043013d9a`](https://github.com/nodejs/node/commit/f043013d9a)] - **src**: remove TOCTOU race condition when encoding SAB-backed `Buffer`s (Antoine du Hamel) [#63517](https://github.com/nodejs/node/pull/63517)
* \[[`343958224d`](https://github.com/nodejs/node/commit/343958224d)] - **src**: skip duplicate UTF-8 validation in TextDecoder fatal path (Mert Can Altin) [#63231](https://github.com/nodejs/node/pull/63231)
* \[[`2906fa833d`](https://github.com/nodejs/node/commit/2906fa833d)] - **src**: dispatch ToV8Value(string\_view) via StringBytes::Encode (Mert Can Altin) [#63370](https://github.com/nodejs/node/pull/63370)
* \[[`860f9d8d4b`](https://github.com/nodejs/node/commit/860f9d8d4b)] - **src**: fix ContextifyContext property definer interception result (Chengzhong Wu) [#63549](https://github.com/nodejs/node/pull/63549)
* \[[`fcccffcbe6`](https://github.com/nodejs/node/commit/fcccffcbe6)] - **src**: fix crash when reading length on Storage.prototype (Mohamed Sayed) [#63529](https://github.com/nodejs/node/pull/63529)
* \[[`55f65f9fb6`](https://github.com/nodejs/node/commit/55f65f9fb6)] - **src**: improve token return value check (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483)
* \[[`7a36ca46cd`](https://github.com/nodejs/node/commit/7a36ca46cd)] - **src**: expose `node::RegisterContext` to make a node managed context (Chengzhong Wu) [#62322](https://github.com/nodejs/node/pull/62322)
* \[[`9bda92963c`](https://github.com/nodejs/node/commit/9bda92963c)] - **src,sqlite**: only pass `xFilter` when user provided a callback (Antoine du Hamel) [#63516](https://github.com/nodejs/node/pull/63516)
* \[[`563db50f38`](https://github.com/nodejs/node/commit/563db50f38)] - **stream**: switch to internal `sleep` binding (Antoine du Hamel) [#63611](https://github.com/nodejs/node/pull/63611)
* \[[`a6e2322ee6`](https://github.com/nodejs/node/commit/a6e2322ee6)] - **stream**: use data listener for compose forwarding (Trivikram Kamat) [#63593](https://github.com/nodejs/node/pull/63593)
* \[[`7198895c6b`](https://github.com/nodejs/node/commit/7198895c6b)] - **stream**: serialize concurrent share consumer reads (Trivikram Kamat) [#63478](https://github.com/nodejs/node/pull/63478)
* \[[`70ba8be1d7`](https://github.com/nodejs/node/commit/70ba8be1d7)] - **stream**: fix lint error (Antoine du Hamel) [#63598](https://github.com/nodejs/node/pull/63598)
* \[[`1608d905a7`](https://github.com/nodejs/node/commit/1608d905a7)] - **stream**: reject pending reads on iterator throw (Trivikram Kamat) [#63555](https://github.com/nodejs/node/pull/63555)
* \[[`dc12b730d8`](https://github.com/nodejs/node/commit/dc12b730d8)] - **stream**: wait for push writer end fallback to drain (Trivikram Kamat) [#63503](https://github.com/nodejs/node/pull/63503)
* \[[`4f40a85a1a`](https://github.com/nodejs/node/commit/4f40a85a1a)] - **stream**: flush each fused stateless transform (Trivikram Kamat) [#63468](https://github.com/nodejs/node/pull/63468)
* \[[`526e0fc427`](https://github.com/nodejs/node/commit/526e0fc427)] - **stream**: avoid duplicate writes in toWritable (Trivikram Kamat) [#63360](https://github.com/nodejs/node/pull/63360)
* \[[`0008d01f9c`](https://github.com/nodejs/node/commit/0008d01f9c)] - **stream**: propagate abort reason in share and broadcast (Trivikram Kamat) [#63358](https://github.com/nodejs/node/pull/63358)
* \[[`217338e18b`](https://github.com/nodejs/node/commit/217338e18b)] - **stream**: fix Writable.toWeb() hang on synchronous drain (sangwook) [#61197](https://github.com/nodejs/node/pull/61197)
* \[[`381f4b1b10`](https://github.com/nodejs/node/commit/381f4b1b10)] - **stream**: disallow writing string chunk with 'buffer' encoding (René) [#63062](https://github.com/nodejs/node/pull/63062)
* \[[`cbee0de1cb`](https://github.com/nodejs/node/commit/cbee0de1cb)] - **stream**: align `Readable.toWeb` termination with eos (ikeyan) [#62394](https://github.com/nodejs/node/pull/62394)
* \[[`be91f0a927`](https://github.com/nodejs/node/commit/be91f0a927)] - **test**: shorten path in net pipe connect errors (Matteo Collina) [#63405](https://github.com/nodejs/node/pull/63405)
* \[[`83cada8bcc`](https://github.com/nodejs/node/commit/83cada8bcc)] - **test**: deflake test-debugger-probe-timeout (Joyee Cheung) [#63547](https://github.com/nodejs/node/pull/63547)
* \[[`3560b96a10`](https://github.com/nodejs/node/commit/3560b96a10)] - **test**: deflake test-webcrypto-crypto-job-mode (Filip Skokan) [#63543](https://github.com/nodejs/node/pull/63543)
* \[[`0c9c52373a`](https://github.com/nodejs/node/commit/0c9c52373a)] - **test**: remove test-node-output-v8-warning (Joyee Cheung) [#63469](https://github.com/nodejs/node/pull/63469)
* \[[`12052dbe14`](https://github.com/nodejs/node/commit/12052dbe14)] - **test**: cover webcrypto prototype pollution systematically (Filip Skokan) [#63520](https://github.com/nodejs/node/pull/63520)
* \[[`8c479f274a`](https://github.com/nodejs/node/commit/8c479f274a)] - **test**: update test426-fixtures to 9b9e225b5a63139e9a95cdd1bf874a8f0b9d131 (Node.js GitHub Bot) [#63373](https://github.com/nodejs/node/pull/63373)
* \[[`2ca32a5ee8`](https://github.com/nodejs/node/commit/2ca32a5ee8)] - **test**: update WPT for url to e4a4672e9e (Node.js GitHub Bot) [#63372](https://github.com/nodejs/node/pull/63372)
* \[[`1bf875bd21`](https://github.com/nodejs/node/commit/1bf875bd21)] - **test**: deflake async-hooks statwatcher test (Trivikram Kamat) [#63396](https://github.com/nodejs/node/pull/63396)
* \[[`97dbfa09f7`](https://github.com/nodejs/node/commit/97dbfa09f7)] - **test**: avoid test\_runner watch restart in spec snapshot (Trivikram Kamat) [#63392](https://github.com/nodejs/node/pull/63392)
* \[[`8b038d7b33`](https://github.com/nodejs/node/commit/8b038d7b33)] - **test**: reduce watch mode restart flakiness (Trivikram Kamat) [#63390](https://github.com/nodejs/node/pull/63390)
* \[[`f504c01d66`](https://github.com/nodejs/node/commit/f504c01d66)] - **test**: get rid of unnecessary `AbortController` instanciations (Antoine du Hamel) [#63489](https://github.com/nodejs/node/pull/63489)
* \[[`170585ff90`](https://github.com/nodejs/node/commit/170585ff90)] - **test**: isolate rerun-failures state file under tmpdir (Chemi Atlow) [#63449](https://github.com/nodejs/node/pull/63449)
* \[[`935468a49e`](https://github.com/nodejs/node/commit/935468a49e)] - **test**: fixup quic tests (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267)
* \[[`fbbdfdcfc7`](https://github.com/nodejs/node/commit/fbbdfdcfc7)] - **test**: wait for ok before initial break after restart (Yuya Inoue) [#62807](https://github.com/nodejs/node/pull/62807)
* \[[`db808ad77d`](https://github.com/nodejs/node/commit/db808ad77d)] - **test**: unskip snapshot reproducibility test (Joyee Cheung) [#63307](https://github.com/nodejs/node/pull/63307)
* \[[`259d8b3dce`](https://github.com/nodejs/node/commit/259d8b3dce)] - **test**: update WPT for WebCryptoAPI to 97bbc7247a (Node.js GitHub Bot) [#63417](https://github.com/nodejs/node/pull/63417)
* \[[`d56c6cd708`](https://github.com/nodejs/node/commit/d56c6cd708)] - **test\_runner**: ignore erased TS lines in coverage (Matteo Collina) [#63510](https://github.com/nodejs/node/pull/63510)
* \[[`16015f1565`](https://github.com/nodejs/node/commit/16015f1565)] - **test\_runner**: fix suite diagnostic chanel end (Moshe Atlow) [#63533](https://github.com/nodejs/node/pull/63533)
* \[[`003b9ccbe9`](https://github.com/nodejs/node/commit/003b9ccbe9)] - **test\_runner**: dont buffer unordered events in process isolation mode (Moshe Atlow) [#63432](https://github.com/nodejs/node/pull/63432)
* \[[`fdc4b5aed4`](https://github.com/nodejs/node/commit/fdc4b5aed4)] - **test\_runner**: fix --test-rerun-failures swallowing failures on retry (Chemi Atlow) [#63431](https://github.com/nodejs/node/pull/63431)
* \[[`6a0bd2f329`](https://github.com/nodejs/node/commit/6a0bd2f329)] - **test\_runner**: add parentId to test events with testId (Moshe Atlow) [#63435](https://github.com/nodejs/node/pull/63435)
* \[[`a646c93254`](https://github.com/nodejs/node/commit/a646c93254)] - **test\_runner**: show replayed-from-attempt hint in spec reporter (Moshe Atlow) [#63429](https://github.com/nodejs/node/pull/63429)
* \[[`b1fa59cbb6`](https://github.com/nodejs/node/commit/b1fa59cbb6)] - **test\_runner**: preserve run duration when using test-rerun (Moshe Atlow) [#63429](https://github.com/nodejs/node/pull/63429)
* \[[`6ac7ff24ac`](https://github.com/nodejs/node/commit/6ac7ff24ac)] - **tools**: refine `v8.nix` source definition (Antoine du Hamel) [#63625](https://github.com/nodejs/node/pull/63625)
* \[[`59c01b959f`](https://github.com/nodejs/node/commit/59c01b959f)] - **tools**: add lint rule for aborted AbortController (Trivikram Kamat) [#63541](https://github.com/nodejs/node/pull/63541)
* \[[`2ab034f6f9`](https://github.com/nodejs/node/commit/2ab034f6f9)] - **tools**: bump @node-core/doc-kit in /tools/doc in the doc group (dependabot\[bot]) [#63494](https://github.com/nodejs/node/pull/63494)
* \[[`a6af903e0a`](https://github.com/nodejs/node/commit/a6af903e0a)] - **tools**: bump brace-expansion from 5.0.5 to 5.0.6 in /tools/eslint (dependabot\[bot]) [#63415](https://github.com/nodejs/node/pull/63415)
* \[[`215cd543dd`](https://github.com/nodejs/node/commit/215cd543dd)] - **tools**: skip commit-lint on backport pull requests (Marco) [#63378](https://github.com/nodejs/node/pull/63378)
* \[[`0479f28e95`](https://github.com/nodejs/node/commit/0479f28e95)] - **tools**: fix skip of `test-internet` on forks (Antoine du Hamel) [#63492](https://github.com/nodejs/node/pull/63492)
* \[[`69dfadf785`](https://github.com/nodejs/node/commit/69dfadf785)] - **tools**: mock some Python utils in `v8.nix` to reuse builds (Antoine du Hamel) [#63454](https://github.com/nodejs/node/pull/63454)
* \[[`7b3e222cda`](https://github.com/nodejs/node/commit/7b3e222cda)] - **util**: remove unused functions (Antoine du Hamel) [#63612](https://github.com/nodejs/node/pull/63612)
* \[[`5a1f67c27b`](https://github.com/nodejs/node/commit/5a1f67c27b)] - **util**: create hex style cache and fast path (Guilherme Araújo) [#62999](https://github.com/nodejs/node/pull/62999)

<a id="26.2.0"></a>

## 2026-05-20, Version 26.2.0 (Current), @aduh95

### Notable Changes

* \[[`189d43a193`](https://github.com/nodejs/node/commit/189d43a193)] - **doc**: mark `stream.compose` stable (Matteo Collina) [#62562](https://github.com/nodejs/node/pull/62562)
* \[[`f858c6140e`](https://github.com/nodejs/node/commit/f858c6140e)] - **(SEMVER-MINOR)** **fs**: add `Temporal.Instant` support to `Stats` and `BigIntStats` (Livia Medeiros) [#60789](https://github.com/nodejs/node/pull/60789)
* \[[`0cbb3895df`](https://github.com/nodejs/node/commit/0cbb3895df)] - **(SEMVER-MINOR)** **http**: add `writeInformation` to send arbitrary 1xx status codes (Tim Perry) [#63155](https://github.com/nodejs/node/pull/63155)

### Commits

* \[[`9a394bab84`](https://github.com/nodejs/node/commit/9a394bab84)] - **benchmark**: respect stream/iter broadcast backpressure (Trivikram Kamat) [#63314](https://github.com/nodejs/node/pull/63314)
* \[[`ad98b4620b`](https://github.com/nodejs/node/commit/ad98b4620b)] - **crypto**: align verifyOneShot accepted types (Anshika Jain) [#63280](https://github.com/nodejs/node/pull/63280)
* \[[`ba0736a847`](https://github.com/nodejs/node/commit/ba0736a847)] - **crypto**: wire ML-DSA and ML-KEM for use when using BoringSSL (Filip Skokan) [#63255](https://github.com/nodejs/node/pull/63255)
* \[[`5573a6a4a8`](https://github.com/nodejs/node/commit/5573a6a4a8)] - **crypto**: wire ChaCha20-Poly1305 in Web Cryptography when using BoringSSL (Filip Skokan) [#63255](https://github.com/nodejs/node/pull/63255)
* \[[`7dc563b8d6`](https://github.com/nodejs/node/commit/7dc563b8d6)] - **crypto**: wire AES-KW in Web Cryptography when using BoringSSL (Filip Skokan) [#63255](https://github.com/nodejs/node/pull/63255)
* \[[`b55e2b1f4d`](https://github.com/nodejs/node/commit/b55e2b1f4d)] - **crypto**: improve system certificate enumeration logic on macOS (Robo) [#62576](https://github.com/nodejs/node/pull/62576)
* \[[`fd509a755a`](https://github.com/nodejs/node/commit/fd509a755a)] - **crypto**: harden CryptoKey algorithm slots (Filip Skokan) [#63111](https://github.com/nodejs/node/pull/63111)
* \[[`8657df39e7`](https://github.com/nodejs/node/commit/8657df39e7)] - **crypto**: harden KeyObject internal slots (Filip Skokan) [#63111](https://github.com/nodejs/node/pull/63111)
* \[[`729274e046`](https://github.com/nodejs/node/commit/729274e046)] - **crypto**: reject invalid raw key imports (Filip Skokan) [#63134](https://github.com/nodejs/node/pull/63134)
* \[[`8fc9cb9c01`](https://github.com/nodejs/node/commit/8fc9cb9c01)] - **crypto**: improve accuracy of SubtleCrypto.supports (Filip Skokan) [#63104](https://github.com/nodejs/node/pull/63104)
* \[[`288065cb3f`](https://github.com/nodejs/node/commit/288065cb3f)] - **crypto**: optimize normalizeAlgorithm dispatch hot path (Filip Skokan) [#62756](https://github.com/nodejs/node/pull/62756)
* \[[`ecf3797d09`](https://github.com/nodejs/node/commit/ecf3797d09)] - **debugger**: disambiguate probe location binding (Joyee Cheung) [#63286](https://github.com/nodejs/node/pull/63286)
* \[[`bdc57135fd`](https://github.com/nodejs/node/commit/bdc57135fd)] - **debugger**: add --help to `node inspect` and improve docs (Joyee Cheung) [#63201](https://github.com/nodejs/node/pull/63201)
* \[[`2a6e6058e9`](https://github.com/nodejs/node/commit/2a6e6058e9)] - **deps**: update undici to 8.3.0 (Node.js GitHub Bot) [#63377](https://github.com/nodejs/node/pull/63377)
* \[[`327b927271`](https://github.com/nodejs/node/commit/327b927271)] - **deps**: update corepack to 0.35.0 (Node.js GitHub Bot) [#63375](https://github.com/nodejs/node/pull/63375)
* \[[`5828fadf52`](https://github.com/nodejs/node/commit/5828fadf52)] - **deps**: update sqlite to 3.53.1 (Node.js GitHub Bot) [#63217](https://github.com/nodejs/node/pull/63217)
* \[[`fe127a999b`](https://github.com/nodejs/node/commit/fe127a999b)] - **deps**: update simdjson to 4.6.4 (Node.js GitHub Bot) [#62811](https://github.com/nodejs/node/pull/62811)
* \[[`a34c4ea159`](https://github.com/nodejs/node/commit/a34c4ea159)] - **deps**: V8: cherry-pick 435a2cdf664c (Matthias Liedtke) [#63136](https://github.com/nodejs/node/pull/63136)
* \[[`ad91efcc43`](https://github.com/nodejs/node/commit/ad91efcc43)] - **deps**: cherry-pick libuv/libuv\@a43e543 (Ali Hassan) [#63222](https://github.com/nodejs/node/pull/63222)
* \[[`5ea6c3ee7e`](https://github.com/nodejs/node/commit/5ea6c3ee7e)] - **deps**: add missing static linking targets for libffi (Paolo Insogna) [#63168](https://github.com/nodejs/node/pull/63168)
* \[[`c1f6ba22b4`](https://github.com/nodejs/node/commit/c1f6ba22b4)] - **deps**: update ngtcp2 to 1.22.1 (Node.js GitHub Bot) [#62812](https://github.com/nodejs/node/pull/62812)
* \[[`7b8767ef76`](https://github.com/nodejs/node/commit/7b8767ef76)] - **doc**: remove unsupported template type from v8.md (René) [#63410](https://github.com/nodejs/node/pull/63410)
* \[[`b2ec1880b1`](https://github.com/nodejs/node/commit/b2ec1880b1)] - **doc**: fix promise nomenclature in `stream_iter.md` (Antoine du Hamel) [#63406](https://github.com/nodejs/node/pull/63406)
* \[[`cf6cbbd39d`](https://github.com/nodejs/node/commit/cf6cbbd39d)] - **doc**: fix article usage before vowel-sound acronyms (joao-oliveira-softtor) [#62696](https://github.com/nodejs/node/pull/62696)
* \[[`da05065d98`](https://github.com/nodejs/node/commit/da05065d98)] - **doc**: remove the bi-monthly contributor spotlight section (Claudio Wunder) [#62734](https://github.com/nodejs/node/pull/62734)
* \[[`c31f320fba`](https://github.com/nodejs/node/commit/c31f320fba)] - **doc**: update http2's `push` and `trailers` events with `rawHeaders` param (YuSheng Chen) [#63259](https://github.com/nodejs/node/pull/63259)
* \[[`f0d008439b`](https://github.com/nodejs/node/commit/f0d008439b)] - **doc**: add Rust toolchain manual installation instructions Windows (Mike McCready) [#63367](https://github.com/nodejs/node/pull/63367)
* \[[`68b1220fbd`](https://github.com/nodejs/node/commit/68b1220fbd)] - **doc**: remove inactive members from Triagers list (Antoine du Hamel) [#63329](https://github.com/nodejs/node/pull/63329)
* \[[`189d43a193`](https://github.com/nodejs/node/commit/189d43a193)] - **doc**: mark stream.compose stable (Matteo Collina) [#62562](https://github.com/nodejs/node/pull/62562)
* \[[`c4fb894039`](https://github.com/nodejs/node/commit/c4fb894039)] - **doc**: fix CHANGELOG (Richard Lau) [#63292](https://github.com/nodejs/node/pull/63292)
* \[[`9f319a77e4`](https://github.com/nodejs/node/commit/9f319a77e4)] - **doc**: reference correct function in Module docs (Robin Malfait) [#63247](https://github.com/nodejs/node/pull/63247)
* \[[`2c13acc88e`](https://github.com/nodejs/node/commit/2c13acc88e)] - **doc**: replace Visual Studio 2022 Evergreen version reference with 17.14 (Mike McCready) [#63211](https://github.com/nodejs/node/pull/63211)
* \[[`7e42c336c9`](https://github.com/nodejs/node/commit/7e42c336c9)] - **doc**: recommend explicitly Tier 1 or 2 for production applications (Mike McCready) [#63187](https://github.com/nodejs/node/pull/63187)
* \[[`d99e0bb6d5`](https://github.com/nodejs/node/commit/d99e0bb6d5)] - **doc**: document Temporal configure flags in BUILDING.md (ChrisJr404) [#63248](https://github.com/nodejs/node/pull/63248)
* \[[`c0ea77b305`](https://github.com/nodejs/node/commit/c0ea77b305)] - **doc**: run license-builder (github-actions\[bot]) [#63232](https://github.com/nodejs/node/pull/63232)
* \[[`8265aba0f4`](https://github.com/nodejs/node/commit/8265aba0f4)] - **doc**: add large pull requests contributing guide (Matteo Collina) [#62829](https://github.com/nodejs/node/pull/62829)
* \[[`be241bacc8`](https://github.com/nodejs/node/commit/be241bacc8)] - **doc**: remove unnecessary `<!-- eslint-` magic comments (Antoine du Hamel) [#63200](https://github.com/nodejs/node/pull/63200)
* \[[`e0b1f092c3`](https://github.com/nodejs/node/commit/e0b1f092c3)] - **doc**: fix inconsistencies in CJS code snippets (Antoine du Hamel) [#63199](https://github.com/nodejs/node/pull/63199)
* \[[`a3feb15871`](https://github.com/nodejs/node/commit/a3feb15871)] - **doc**: clarify SEA platform support excludes darwin-x64 (MJSHANG) [#63181](https://github.com/nodejs/node/pull/63181)
* \[[`cafd7667fc`](https://github.com/nodejs/node/commit/cafd7667fc)] - **doc**: improve quic documentation (James M Snell) [#63157](https://github.com/nodejs/node/pull/63157)
* \[[`3c784edb6f`](https://github.com/nodejs/node/commit/3c784edb6f)] - **doc**: update release steps when post-release fails (Rafael Gonzaga) [#63131](https://github.com/nodejs/node/pull/63131)
* \[[`9de954e9be`](https://github.com/nodejs/node/commit/9de954e9be)] - **doc**: fix deprecation list in 26.0.0 changelog (Antoine du Hamel) [#63147](https://github.com/nodejs/node/pull/63147)
* \[[`20c553e456`](https://github.com/nodejs/node/commit/20c553e456)] - **doc**: add Hmac.digest() documentation-only deprecation (DEP0206) (Anshika Jain) [#63121](https://github.com/nodejs/node/pull/63121)
* \[[`3494eae2c8`](https://github.com/nodejs/node/commit/3494eae2c8)] - **doc**: document the latest-vX.x schema (Marco Ippolito) [#63033](https://github.com/nodejs/node/pull/63033)
* \[[`c02413d29d`](https://github.com/nodejs/node/commit/c02413d29d)] - **doc**: remove list of versions in `BUILDING.md` (Antoine du Hamel) [#63113](https://github.com/nodejs/node/pull/63113)
* \[[`53f9a902a1`](https://github.com/nodejs/node/commit/53f9a902a1)] - **doc,sqlite**: document entryPoint argument for loadExtension (Edy Silva) [#63152](https://github.com/nodejs/node/pull/63152)
* \[[`f858c6140e`](https://github.com/nodejs/node/commit/f858c6140e)] - **(SEMVER-MINOR)** **fs**: add `Temporal.Instant` support to `Stats` and `BigIntStats` (Livia Medeiros) [#60789](https://github.com/nodejs/node/pull/60789)
* \[[`b2ba62ca0e`](https://github.com/nodejs/node/commit/b2ba62ca0e)] - **fs**: make `Date` properties on `Stats` enumerable (LiviaMedeiros) [#63328](https://github.com/nodejs/node/pull/63328)
* \[[`0cbb3895df`](https://github.com/nodejs/node/commit/0cbb3895df)] - **(SEMVER-MINOR)** **http**: add writeInformation to send arbitrary 1xx status codes (Tim Perry) [#63155](https://github.com/nodejs/node/pull/63155)
* \[[`f712e6856e`](https://github.com/nodejs/node/commit/f712e6856e)] - **http2**: validate non-link headers in writeEarlyHints (Matteo Collina) [#62017](https://github.com/nodejs/node/pull/62017)
* \[[`3acadae676`](https://github.com/nodejs/node/commit/3acadae676)] - **lib**: fix typo idenity => identity (Daijiro Wachi) [#63112](https://github.com/nodejs/node/pull/63112)
* \[[`460329e886`](https://github.com/nodejs/node/commit/460329e886)] - **lib**: fixes validator message (Daijiro Wachi) [#62823](https://github.com/nodejs/node/pull/62823)
* \[[`9438c832b2`](https://github.com/nodejs/node/commit/9438c832b2)] - **lib**: narrow ReadableStreamBYOBRequest.view return type to Uint8Array (RoomWithOutRoof) [#63017](https://github.com/nodejs/node/pull/63017)
* \[[`c7d27c82c4`](https://github.com/nodejs/node/commit/c7d27c82c4)] - **lib**: handle --permission-audit when propagating flags (Rafael Gonzaga) [#63047](https://github.com/nodejs/node/pull/63047)
* \[[`9f19915276`](https://github.com/nodejs/node/commit/9f19915276)] - **lib**: optimize webidl conversion options (Filip Skokan) [#62756](https://github.com/nodejs/node/pull/62756)
* \[[`771afd626a`](https://github.com/nodejs/node/commit/771afd626a)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#63402](https://github.com/nodejs/node/pull/63402)
* \[[`67d094a554`](https://github.com/nodejs/node/commit/67d094a554)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#63235](https://github.com/nodejs/node/pull/63235)
* \[[`9091398f3d`](https://github.com/nodejs/node/commit/9091398f3d)] - **meta**: ignore AI assistants files (Matteo Collina) [#62612](https://github.com/nodejs/node/pull/62612)
* \[[`96f19a16d0`](https://github.com/nodejs/node/commit/96f19a16d0)] - **module**: fix sync hook short-circuit in require() in imported CJS (Joyee Cheung) [#62920](https://github.com/nodejs/node/pull/62920)
* \[[`45f3e3ef11`](https://github.com/nodejs/node/commit/45f3e3ef11)] - **node-api**: support SharedArrayBuffer in napi\_create\_typedarray (Yilong Li) [#62710](https://github.com/nodejs/node/pull/62710)
* \[[`d7afa617bb`](https://github.com/nodejs/node/commit/d7afa617bb)] - **quic**: send correct OpenSSL alert for ALPN mismatches (Tim Perry) [#63193](https://github.com/nodejs/node/pull/63193)
* \[[`526313beb8`](https://github.com/nodejs/node/commit/526313beb8)] - **quic**: fixup quic stream variable chunk len (James M Snell) [#63230](https://github.com/nodejs/node/pull/63230)
* \[[`1613c7fe70`](https://github.com/nodejs/node/commit/1613c7fe70)] - **quic**: support --allow-net permissions (James M Snell) [#63184](https://github.com/nodejs/node/pull/63184)
* \[[`72ab7444a8`](https://github.com/nodejs/node/commit/72ab7444a8)] - **quic**: remove unused env\_ variable in session\_manager.h/cc (James M Snell) [#63177](https://github.com/nodejs/node/pull/63177)
* \[[`2b55656778`](https://github.com/nodejs/node/commit/2b55656778)] - **quic**: remove unused binding variable in session.cc (James M Snell) [#63177](https://github.com/nodejs/node/pull/63177)
* \[[`83f0d37400`](https://github.com/nodejs/node/commit/83f0d37400)] - **quic**: ignore coverage for quic files (James M Snell) [#63149](https://github.com/nodejs/node/pull/63149)
* \[[`7e6b77b14d`](https://github.com/nodejs/node/commit/7e6b77b14d)] - **quic**: complete the internal implementation of QUIC (James M Snell) [#62876](https://github.com/nodejs/node/pull/62876)
* \[[`71372418f1`](https://github.com/nodejs/node/commit/71372418f1)] - **repl**: fix dedup comparing normalized line against raw history (Daijiro Wachi) [#62886](https://github.com/nodejs/node/pull/62886)
* \[[`20f40c2c25`](https://github.com/nodejs/node/commit/20f40c2c25)] - **sqlite**: keep source database alive during backup (Matteo Collina) [#62673](https://github.com/nodejs/node/pull/62673)
* \[[`592f741bd0`](https://github.com/nodejs/node/commit/592f741bd0)] - **src**: simplify OpenSSL feature gates (Filip Skokan) [#63255](https://github.com/nodejs/node/pull/63255)
* \[[`520ab7ad40`](https://github.com/nodejs/node/commit/520ab7ad40)] - **src**: add BoringSSL EVP enumeration fallback (Filip Skokan) [#63206](https://github.com/nodejs/node/pull/63206)
* \[[`12be49acbc`](https://github.com/nodejs/node/commit/12be49acbc)] - **src**: support multiple versions in node.config.json (Marco Ippolito) [#63033](https://github.com/nodejs/node/pull/63033)
* \[[`296f907585`](https://github.com/nodejs/node/commit/296f907585)] - **src**: remove unused using declarations in node\_task\_queue (Mert Can Altin) [#63144](https://github.com/nodejs/node/pull/63144)
* \[[`7703f11b3c`](https://github.com/nodejs/node/commit/7703f11b3c)] - **src**: skip JS callback for settled Promise.race losers (Felipe Coelho) [#62336](https://github.com/nodejs/node/pull/62336)
* \[[`74ab710c3a`](https://github.com/nodejs/node/commit/74ab710c3a)] - **src,sqlite**: remove dead code (Edy Silva) [#63204](https://github.com/nodejs/node/pull/63204)
* \[[`e49154f4c8`](https://github.com/nodejs/node/commit/e49154f4c8)] - **stream**: add sync iterable fast path to pipeTo (Trivikram Kamat) [#63318](https://github.com/nodejs/node/pull/63318)
* \[[`537455e98d`](https://github.com/nodejs/node/commit/537455e98d)] - **stream**: fix merge handling for object-like sources (Trivikram Kamat) [#63356](https://github.com/nodejs/node/pull/63356)
* \[[`e21b8a47f0`](https://github.com/nodejs/node/commit/e21b8a47f0)] - **stream**: limit iter from sync iterable batches (Trivikram Kamat) [#63324](https://github.com/nodejs/node/pull/63324)
* \[[`3bdb64dc67`](https://github.com/nodejs/node/commit/3bdb64dc67)] - **stream**: cache minimum cursor count in broadcast (Trivikram Kamat) [#63322](https://github.com/nodejs/node/pull/63322)
* \[[`81819add6b`](https://github.com/nodejs/node/commit/81819add6b)] - **stream**: remove unnecessary check (Antoine du Hamel) [#63030](https://github.com/nodejs/node/pull/63030)
* \[[`22e3579d74`](https://github.com/nodejs/node/commit/22e3579d74)] - **stream**: avoid retrying accepted pipeTo writes (Trivikram Kamat) [#63297](https://github.com/nodejs/node/pull/63297)
* \[[`691915ea94`](https://github.com/nodejs/node/commit/691915ea94)] - **stream**: validate broadcast writer writev chunks (Trivikram Kamat) [#63300](https://github.com/nodejs/node/pull/63300)
* \[[`253f5f4ca2`](https://github.com/nodejs/node/commit/253f5f4ca2)] - **stream**: uncork fromWritable writev on chunk error (Trivikram Kamat) [#63295](https://github.com/nodejs/node/pull/63295)
* \[[`aa6913cc4a`](https://github.com/nodejs/node/commit/aa6913cc4a)] - **stream**: validate fromWritable() options before cache (Trivikram Kamat) [#63278](https://github.com/nodejs/node/pull/63278)
* \[[`6c53ddb988`](https://github.com/nodejs/node/commit/6c53ddb988)] - **stream**: optimize single-slot push queue drain (Trivikram Kamat) [#63274](https://github.com/nodejs/node/pull/63274)
* \[[`b568649f6f`](https://github.com/nodejs/node/commit/b568649f6f)] - **stream**: preserve toReadableSync batch after backpressure (Trivikram Kamat) [#63276](https://github.com/nodejs/node/pull/63276)
* \[[`cdcefd7e2f`](https://github.com/nodejs/node/commit/cdcefd7e2f)] - **stream**: cache minimum cursor count in share (Trivikram Kamat) [#63262](https://github.com/nodejs/node/pull/63262)
* \[[`ba7000e4f7`](https://github.com/nodejs/node/commit/ba7000e4f7)] - **stream**: minor stream/iter implementation edits (René) [#63132](https://github.com/nodejs/node/pull/63132)
* \[[`c694999ab8`](https://github.com/nodejs/node/commit/c694999ab8)] - **test**: disable Maglev in near-heap-limit worker test (Trivikram Kamat) [#63398](https://github.com/nodejs/node/pull/63398)
* \[[`a6d6d51c1b`](https://github.com/nodejs/node/commit/a6d6d51c1b)] - **test**: deflake connection refused proxy tests (Trivikram Kamat) [#63395](https://github.com/nodejs/node/pull/63395)
* \[[`31d89c4f59`](https://github.com/nodejs/node/commit/31d89c4f59)] - **test**: avoid repeated writes in watch helper (Trivikram Kamat) [#63386](https://github.com/nodejs/node/pull/63386)
* \[[`6f3587c773`](https://github.com/nodejs/node/commit/6f3587c773)] - **test**: deflake watch mode worker test (Trivikram Kamat) [#63384](https://github.com/nodejs/node/pull/63384)
* \[[`a57aebaa73`](https://github.com/nodejs/node/commit/a57aebaa73)] - **test**: update tls/crypto behaviour expectations when using BoringSSL (Filip Skokan) [#63161](https://github.com/nodejs/node/pull/63161)
* \[[`b871cff2db`](https://github.com/nodejs/node/commit/b871cff2db)] - **test**: relax test-memory-usage arrayBuffers check (inoway46) [#63244](https://github.com/nodejs/node/pull/63244)
* \[[`25189bcb95`](https://github.com/nodejs/node/commit/25189bcb95)] - **test**: reduce flakiness of `different-registry-per-thread` (Antoine du Hamel) [#63244](https://github.com/nodejs/node/pull/63244)
* \[[`5bdb1f8426`](https://github.com/nodejs/node/commit/5bdb1f8426)] - **test**: fix flaky test-watch-mode-inspect timeout (Matteo Collina) [#63361](https://github.com/nodejs/node/pull/63361)
* \[[`d57bd2bf59`](https://github.com/nodejs/node/commit/d57bd2bf59)] - **test**: relax min assertion in test-performance-eventloopdelay (Marco) [#63100](https://github.com/nodejs/node/pull/63100)
* \[[`014e1f00c1`](https://github.com/nodejs/node/commit/014e1f00c1)] - **test**: avoid flaky restart sync in debugger exceptions test (Yuya Inoue) [#62055](https://github.com/nodejs/node/pull/62055)
* \[[`dd28ff8a80`](https://github.com/nodejs/node/commit/dd28ff8a80)] - **test**: avoid initial-break wait in restart-message (inoway46) [#62060](https://github.com/nodejs/node/pull/62060)
* \[[`e89a49a13a`](https://github.com/nodejs/node/commit/e89a49a13a)] - **test**: move FFI tests to `NATIVE_SUITES` (Antoine du Hamel) [#63165](https://github.com/nodejs/node/pull/63165)
* \[[`51ef0258ba`](https://github.com/nodejs/node/commit/51ef0258ba)] - **test**: update WPT for wasm/jsapi to 288c467d35 (Node.js GitHub Bot) [#63136](https://github.com/nodejs/node/pull/63136)
* \[[`c0175a9ba1`](https://github.com/nodejs/node/commit/c0175a9ba1)] - **test**: use ERM to destroy sqlite database handles after tests (René) [#63076](https://github.com/nodejs/node/pull/63076)
* \[[`83054e8aba`](https://github.com/nodejs/node/commit/83054e8aba)] - **test\_runner**: avoid hanging on incomplete v8 frames (Ali Hassan) [#62704](https://github.com/nodejs/node/pull/62704)
* \[[`4f1426d361`](https://github.com/nodejs/node/commit/4f1426d361)] - **test\_runner**: fix hooks test context (Moshe Atlow) [#63285](https://github.com/nodejs/node/pull/63285)
* \[[`6a4c4b7193`](https://github.com/nodejs/node/commit/6a4c4b7193)] - **test\_runner**: fix diagnostics channel context tracking (Moshe Atlow) [#63283](https://github.com/nodejs/node/pull/63283)
* \[[`eba9c3481b`](https://github.com/nodejs/node/commit/eba9c3481b)] - **test\_runner**: add tags option and tag-name filter (Chemi Atlow) [#63221](https://github.com/nodejs/node/pull/63221)
* \[[`2ba124f23b`](https://github.com/nodejs/node/commit/2ba124f23b)] - **tls**: add unsupported renegotiation error (Filip Skokan) [#63161](https://github.com/nodejs/node/pull/63161)
* \[[`7c5048495a`](https://github.com/nodejs/node/commit/7c5048495a)] - **tools**: bump the eslint group in /tools/eslint with 4 updates (dependabot\[bot]) [#63075](https://github.com/nodejs/node/pull/63075)
* \[[`6c574110a7`](https://github.com/nodejs/node/commit/6c574110a7)] - **tools**: update gyp-next to 0.22.2 (Node.js GitHub Bot) [#63374](https://github.com/nodejs/node/pull/63374)
* \[[`f14ed762b3`](https://github.com/nodejs/node/commit/f14ed762b3)] - **tools**: add boringssl to tools/nix/openssl-matrix.nix (Filip Skokan) [#63206](https://github.com/nodejs/node/pull/63206)
* \[[`14d3924c48`](https://github.com/nodejs/node/commit/14d3924c48)] - **tools**: fix test426 updater (Antoine du Hamel) [#63271](https://github.com/nodejs/node/pull/63271)
* \[[`0d017ece8d`](https://github.com/nodejs/node/commit/0d017ece8d)] - **tools**: filter V8 scripts for build toolchain (Richard Lau) [#63069](https://github.com/nodejs/node/pull/63069)
* \[[`3859a8700e`](https://github.com/nodejs/node/commit/3859a8700e)] - **tools**: use different branch for tool updates on staging branches (Antoine du Hamel) [#63110](https://github.com/nodejs/node/pull/63110)
* \[[`4a32ed82bd`](https://github.com/nodejs/node/commit/4a32ed82bd)] - **tools**: prevent lib code from reading KeyObject and CryptoKey accessors (Filip Skokan) [#63111](https://github.com/nodejs/node/pull/63111)

<a id="26.1.0"></a>

## 2026-05-07, Version 26.1.0 (Current), @aduh95

### Notable Changes

#### Experimental `node:ffi` module

Node.js now includes an experimental `node:ffi` module for loading dynamic
libraries and calling native symbols from JavaScript.

The API is gated behind the `--experimental-ffi` flag and, when the Permission
Model is enabled, requires `--allow-ffi`.

This API is inherently unsafe. Invalid pointers, incorrect signatures, or accessing memory
after it has been freed can crash the process or corrupt memory.

Contributed by Paolo Insogna in [#62072](https://github.com/nodejs/node/pull/62072).

#### Other Notable Changes

* \[[`34a6454fe3`](https://github.com/nodejs/node/commit/34a6454fe3)] - **(SEMVER-MINOR)** **buffer**: add `end` parameter (Robert Nagy) [#62390](https://github.com/nodejs/node/pull/62390)
* \[[`073e84d7fe`](https://github.com/nodejs/node/commit/073e84d7fe)] - **(SEMVER-MINOR)** **crypto**: accept key data in `crypto.diffieHellman()` and cleanup DH jobs (Filip Skokan) [#62527](https://github.com/nodejs/node/pull/62527)
* \[[`5b9cb10a5f`](https://github.com/nodejs/node/commit/5b9cb10a5f)] - **(SEMVER-MINOR)** **crypto**: implement `randomUUIDv7()` (nabeel378) [#62553](https://github.com/nodejs/node/pull/62553)
* \[[`98f9becd16`](https://github.com/nodejs/node/commit/98f9becd16)] - **(SEMVER-MINOR)** **debugger**: add edit-free runtime expression probes to `node inspect` (Joyee Cheung) [#62713](https://github.com/nodejs/node/pull/62713)
* \[[`06defaa2ea`](https://github.com/nodejs/node/commit/06defaa2ea)] - **(SEMVER-MINOR)** **fs**: add `signal` option to `fs.stat()` (Mert Can Altin) [#57775](https://github.com/nodejs/node/pull/57775)
* \[[`db66a963bf`](https://github.com/nodejs/node/commit/db66a963bf)] - **(SEMVER-MINOR)** **fs**: expose `frsize` field in `statfs` (Jinho Jang) [#62277](https://github.com/nodejs/node/pull/62277)
* \[[`87adb3472b`](https://github.com/nodejs/node/commit/87adb3472b)] - **(SEMVER-MINOR)** **http**: harden `ClientRequest` options merge (Matteo Collina) [#63082](https://github.com/nodejs/node/pull/63082)
* \[[`9047ec12ce`](https://github.com/nodejs/node/commit/9047ec12ce)] - **(SEMVER-MINOR)** **http**: add `req.signal` to `IncomingMessage` (Akshat) [#62541](https://github.com/nodejs/node/pull/62541)
* \[[`ab66de8eaa`](https://github.com/nodejs/node/commit/ab66de8eaa)] - **(SEMVER-MINOR)** **process**: throw on `execve(2)` failure instead of aborting (Bryan English) [#62878](https://github.com/nodejs/node/pull/62878)
* \[[`8273682c87`](https://github.com/nodejs/node/commit/8273682c87)] - **(SEMVER-MINOR)** **src**: allow empty `--experimental-config-file` (Marco Ippolito) [#61610](https://github.com/nodejs/node/pull/61610)
* \[[`fbff28f7e6`](https://github.com/nodejs/node/commit/fbff28f7e6)] - **(SEMVER-MINOR)** **stream**: propagate destruction in `duplexPair` (Ahmed Elhor) [#61098](https://github.com/nodejs/node/pull/61098)
* \[[`a8c773a0c7`](https://github.com/nodejs/node/commit/a8c773a0c7)] - **(SEMVER-MINOR)** **test\_runner**: align mock timeout api (sangwook) [#62820](https://github.com/nodejs/node/pull/62820)
* \[[`b883a5eaea`](https://github.com/nodejs/node/commit/b883a5eaea)] - **(SEMVER-MINOR)** **test\_runner**: add mock-timers support for `AbortSignal.timeout` (DeveloperViraj) [#60751](https://github.com/nodejs/node/pull/60751)
* \[[`a21ae1771e`](https://github.com/nodejs/node/commit/a21ae1771e)] - **(SEMVER-MINOR)** **test\_runner**: support test order randomization (Pietro Marchini) [#61747](https://github.com/nodejs/node/pull/61747)
* \[[`b85c73ff10`](https://github.com/nodejs/node/commit/b85c73ff10)] - **(SEMVER-MINOR)** **util**: colorize text with hex colors (Guilherme Araújo) [#61556](https://github.com/nodejs/node/pull/61556)

### Commits

* \[[`1b959d02c2`](https://github.com/nodejs/node/commit/1b959d02c2)] - **assert,util**: fix stale nested cycle memo entries (Ruben Bridgewater) [#62509](https://github.com/nodejs/node/pull/62509)
* \[[`bbeb38d210`](https://github.com/nodejs/node/commit/bbeb38d210)] - **buffer**: fix end parameter bugs in indexOf/lastIndexOf (Robert Nagy) [#62711](https://github.com/nodejs/node/pull/62711)
* \[[`34a6454fe3`](https://github.com/nodejs/node/commit/34a6454fe3)] - **(SEMVER-MINOR)** **buffer**: add end parameter (Robert Nagy) [#62390](https://github.com/nodejs/node/pull/62390)
* \[[`8b91526cd5`](https://github.com/nodejs/node/commit/8b91526cd5)] - **build**: track PDL files as inputs in inspector GN build (Robo) [#62888](https://github.com/nodejs/node/pull/62888)
* \[[`da40ed7842`](https://github.com/nodejs/node/commit/da40ed7842)] - **build**: remove armv6 from experimental platforms (René) [#63063](https://github.com/nodejs/node/pull/63063)
* \[[`b36e55a23e`](https://github.com/nodejs/node/commit/b36e55a23e)] - **build**: make test-addons dependency-free (Joyee Cheung) [#62388](https://github.com/nodejs/node/pull/62388)
* \[[`c27f3cf8f2`](https://github.com/nodejs/node/commit/c27f3cf8f2)] - **build**: add --enable-all-experimentals build flag (Paolo Insogna) [#62755](https://github.com/nodejs/node/pull/62755)
* \[[`0d73b63a76`](https://github.com/nodejs/node/commit/0d73b63a76)] - **build**: fix cargo check when Temporal is disabled (Antoine du Hamel) [#62730](https://github.com/nodejs/node/pull/62730)
* \[[`d8f97e6f7b`](https://github.com/nodejs/node/commit/d8f97e6f7b)] - **build**: fix ffi dependency compilation (Paolo Insogna) [#62731](https://github.com/nodejs/node/pull/62731)
* \[[`d1eb7b340f`](https://github.com/nodejs/node/commit/d1eb7b340f)] - **build**: fix stray debug string in LIEF defines (Om Ghante) [#62683](https://github.com/nodejs/node/pull/62683)
* \[[`845283009d`](https://github.com/nodejs/node/commit/845283009d)] - **build**: remove redundant -fuse-linker-plugin from GCC LTO flags (Daniel Lando) [#62667](https://github.com/nodejs/node/pull/62667)
* \[[`a6e99879f4`](https://github.com/nodejs/node/commit/a6e99879f4)] - **build,win**: enable x64 PGO (Stefan Stojanovic) [#62761](https://github.com/nodejs/node/pull/62761)
* \[[`38befee0fb`](https://github.com/nodejs/node/commit/38befee0fb)] - **crypto**: add JWK support for ML-KEM and SLH-DSA key types (Filip Skokan) [#62706](https://github.com/nodejs/node/pull/62706)
* \[[`b10653ad87`](https://github.com/nodejs/node/commit/b10653ad87)] - **crypto**: add guards and adjust tests for BoringSSL (Filip Skokan) [#62883](https://github.com/nodejs/node/pull/62883)
* \[[`2a7a69c6b0`](https://github.com/nodejs/node/commit/2a7a69c6b0)] - **crypto**: reject unintended raw key format string input (Filip Skokan) [#62974](https://github.com/nodejs/node/pull/62974)
* \[[`bad1e2fe6a`](https://github.com/nodejs/node/commit/bad1e2fe6a)] - **crypto**: fix unsigned conversion of 4-byte RSA publicExponent (DeepView Autofix) [#62839](https://github.com/nodejs/node/pull/62839)
* \[[`c9d5bae598`](https://github.com/nodejs/node/commit/c9d5bae598)] - **crypto**: remove Argon2 KDF derivation from its job setup (Filip Skokan) [#62863](https://github.com/nodejs/node/pull/62863)
* \[[`6eea52426f`](https://github.com/nodejs/node/commit/6eea52426f)] - **crypto**: reject duplicate ML-KEM JWK key\_ops (Filip Skokan) [#62905](https://github.com/nodejs/node/pull/62905)
* \[[`80d4836616`](https://github.com/nodejs/node/commit/80d4836616)] - **crypto**: deduplicate and canonicalize CryptoKey usages (Filip Skokan) [#62902](https://github.com/nodejs/node/pull/62902)
* \[[`8950247027`](https://github.com/nodejs/node/commit/8950247027)] - **crypto**: reject inherited key type names (Jonathan Lopes) [#62875](https://github.com/nodejs/node/pull/62875)
* \[[`3f42f9615a`](https://github.com/nodejs/node/commit/3f42f9615a)] - **crypto**: strengthen argument CHECKs in TurboSHAKE (Tobias Nießen) [#62763](https://github.com/nodejs/node/pull/62763)
* \[[`28346d999b`](https://github.com/nodejs/node/commit/28346d999b)] - **crypto**: guard against size\_t overflow on experimental 32-bit arch (Filip Skokan) [#62626](https://github.com/nodejs/node/pull/62626)
* \[[`d4cec263c4`](https://github.com/nodejs/node/commit/d4cec263c4)] - **(SEMVER-MINOR)** **crypto**: align key argument names in docs and error messages (Filip Skokan) [#62527](https://github.com/nodejs/node/pull/62527)
* \[[`073e84d7fe`](https://github.com/nodejs/node/commit/073e84d7fe)] - **(SEMVER-MINOR)** **crypto**: accept key data in crypto.diffieHellman() and cleanup DH jobs (Filip Skokan) [#62527](https://github.com/nodejs/node/pull/62527)
* \[[`518b578fe7`](https://github.com/nodejs/node/commit/518b578fe7)] - **crypto**: add memory tracking for secureContext openssl objects (Mert Can Altin) [#59051](https://github.com/nodejs/node/pull/59051)
* \[[`5b9cb10a5f`](https://github.com/nodejs/node/commit/5b9cb10a5f)] - **(SEMVER-MINOR)** **crypto**: implement randomUUIDv7() (nabeel378) [#62553](https://github.com/nodejs/node/pull/62553)
* \[[`7133826053`](https://github.com/nodejs/node/commit/7133826053)] - **debugger**: move ProbeInspectorSession and helpers to separate files (Joyee Cheung) [#63013](https://github.com/nodejs/node/pull/63013)
* \[[`98f9becd16`](https://github.com/nodejs/node/commit/98f9becd16)] - **(SEMVER-MINOR)** **debugger**: add edit-free runtime expression probes to `node inspect` (Joyee Cheung) [#62713](https://github.com/nodejs/node/pull/62713)
* \[[`94ac62a2d1`](https://github.com/nodejs/node/commit/94ac62a2d1)] - **deps**: update undici to 8.2.0 (Node.js GitHub Bot) [#63092](https://github.com/nodejs/node/pull/63092)
* \[[`ef71de87e6`](https://github.com/nodejs/node/commit/ef71de87e6)] - **deps**: update amaro to 1.1.9 (Node.js GitHub Bot) [#63090](https://github.com/nodejs/node/pull/63090)
* \[[`c4f0ef881a`](https://github.com/nodejs/node/commit/c4f0ef881a)] - **deps**: update llhttp to 9.4.1 (Node.js GitHub Bot) [#63045](https://github.com/nodejs/node/pull/63045)
* \[[`d29fbc0029`](https://github.com/nodejs/node/commit/d29fbc0029)] - **deps**: fix integration issues with the latest nghttp2 (Tim Perry) [#62891](https://github.com/nodejs/node/pull/62891)
* \[[`537825acee`](https://github.com/nodejs/node/commit/537825acee)] - **deps**: update nghttp2 to 1.69.0 (Node.js GitHub Bot) [#62891](https://github.com/nodejs/node/pull/62891)
* \[[`4446bf694d`](https://github.com/nodejs/node/commit/4446bf694d)] - **deps**: update corepack to 0.34.7 (Node.js GitHub Bot) [#62810](https://github.com/nodejs/node/pull/62810)
* \[[`8f55327f1c`](https://github.com/nodejs/node/commit/8f55327f1c)] - **deps**: fix libffi macos build (Paolo Insogna) [#63006](https://github.com/nodejs/node/pull/63006)
* \[[`3dee18f72f`](https://github.com/nodejs/node/commit/3dee18f72f)] - **deps**: patch V8 to 14.6.202.34 (Node.js GitHub Bot) [#62964](https://github.com/nodejs/node/pull/62964)
* \[[`e281b247e6`](https://github.com/nodejs/node/commit/e281b247e6)] - **deps**: update timezone to 2026b (Node.js GitHub Bot) [#62962](https://github.com/nodejs/node/pull/62962)
* \[[`4dd982df13`](https://github.com/nodejs/node/commit/4dd982df13)] - **deps**: upgrade npm to 11.13.0 (npm team) [#62898](https://github.com/nodejs/node/pull/62898)
* \[[`61c0ff4a13`](https://github.com/nodejs/node/commit/61c0ff4a13)] - **deps**: cherry-pick libuv/libuv\@439a54b (skooch) [#62881](https://github.com/nodejs/node/pull/62881)
* \[[`d26ca462ae`](https://github.com/nodejs/node/commit/d26ca462ae)] - **deps**: update undici to 8.1.0 (Node.js GitHub Bot) [#62728](https://github.com/nodejs/node/pull/62728)
* \[[`6f08489ac9`](https://github.com/nodejs/node/commit/6f08489ac9)] - **deps**: update sqlite to 3.53.0 (Node.js GitHub Bot) [#62699](https://github.com/nodejs/node/pull/62699)
* \[[`713601e8bd`](https://github.com/nodejs/node/commit/713601e8bd)] - **deps**: update nbytes to 0.1.4 (Node.js GitHub Bot) [#62698](https://github.com/nodejs/node/pull/62698)
* \[[`578cf1c0c1`](https://github.com/nodejs/node/commit/578cf1c0c1)] - **deps**: update archs files for openssl-3.5.6 (Node.js GitHub Bot) [#62629](https://github.com/nodejs/node/pull/62629)
* \[[`4a4ef13c67`](https://github.com/nodejs/node/commit/4a4ef13c67)] - **deps**: upgrade openssl sources to openssl-3.5.6 (Node.js GitHub Bot) [#62629](https://github.com/nodejs/node/pull/62629)
* \[[`2f3eca8c1e`](https://github.com/nodejs/node/commit/2f3eca8c1e)] - **deps**: update perfetto to 54.0 (Chengzhong Wu) [#62397](https://github.com/nodejs/node/pull/62397)
* \[[`944ed9b739`](https://github.com/nodejs/node/commit/944ed9b739)] - **deps**: add perfetto build files (Chengzhong Wu) [#62397](https://github.com/nodejs/node/pull/62397)
* \[[`15530a7484`](https://github.com/nodejs/node/commit/15530a7484)] - **deps**: update ngtcp2 to 1.22.0 (Node.js GitHub Bot) [#62595](https://github.com/nodejs/node/pull/62595)
* \[[`b813b4c4b5`](https://github.com/nodejs/node/commit/b813b4c4b5)] - **deps**: update minimatch to 10.2.5 (Node.js GitHub Bot) [#62594](https://github.com/nodejs/node/pull/62594)
* \[[`38e7ce58c5`](https://github.com/nodejs/node/commit/38e7ce58c5)] - **deps**: update googletest to d72f9c8aea6817cdf1ca0ac10887f328de7f3da2 (Node.js GitHub Bot) [#62593](https://github.com/nodejs/node/pull/62593)
* \[[`b5c573ed14`](https://github.com/nodejs/node/commit/b5c573ed14)] - **deps**: update simdjson to 4.6.1 (Node.js GitHub Bot) [#62592](https://github.com/nodejs/node/pull/62592)
* \[[`318e2c7cd3`](https://github.com/nodejs/node/commit/318e2c7cd3)] - **deps**: libuv: cherry-pick aabb7651de (Santiago Gimeno) [#62561](https://github.com/nodejs/node/pull/62561)
* \[[`c6ccbd742a`](https://github.com/nodejs/node/commit/c6ccbd742a)] - **deps**: libuv: reapply 3a9a6e3e6b (Andy Pan) [#62561](https://github.com/nodejs/node/pull/62561)
* \[[`4ad07de7ae`](https://github.com/nodejs/node/commit/4ad07de7ae)] - **diagnostics\_channel**: add BoundedChannel and scopes (Stephen Belanger) [#61680](https://github.com/nodejs/node/pull/61680)
* \[[`44416ea3fd`](https://github.com/nodejs/node/commit/44416ea3fd)] - **doc**: fix documentation history missing 25.9.0 (Antoine du Hamel) [#63151](https://github.com/nodejs/node/pull/63151)
* \[[`5f6dfbf68e`](https://github.com/nodejs/node/commit/5f6dfbf68e)] - **doc**: fix changelog for chromium numbering (Rafael Gonzaga) [#63133](https://github.com/nodejs/node/pull/63133)
* \[[`30c4b3658c`](https://github.com/nodejs/node/commit/30c4b3658c)] - **doc**: fix the TypeScript Execute (tsx) project link (David Thornton) [#63093](https://github.com/nodejs/node/pull/63093)
* \[[`ca3c3097f1`](https://github.com/nodejs/node/commit/ca3c3097f1)] - **doc**: minor structural stream/iter edits (René) [#63089](https://github.com/nodejs/node/pull/63089)
* \[[`92324aab6f`](https://github.com/nodejs/node/commit/92324aab6f)] - **doc**: remove typo comma from man page (Vas Sudanagunta) [#63080](https://github.com/nodejs/node/pull/63080)
* \[[`712a15da73`](https://github.com/nodejs/node/commit/712a15da73)] - **doc**: correct diagnostics\_channel built-in channel names (Bryan English) [#62995](https://github.com/nodejs/node/pull/62995)
* \[[`c92cb6fe0d`](https://github.com/nodejs/node/commit/c92cb6fe0d)] - **doc**: use mjs/cjs blocks for callbackify null reason example (Daijiro Wachi) [#62884](https://github.com/nodejs/node/pull/62884)
* \[[`020776d4d6`](https://github.com/nodejs/node/commit/020776d4d6)] - **doc**: fix typo in test.md (Rich Trott) [#62960](https://github.com/nodejs/node/pull/62960)
* \[[`7d52f2061e`](https://github.com/nodejs/node/commit/7d52f2061e)] - **doc**: correct typo in PR contribution instructions (Mike McCready) [#62738](https://github.com/nodejs/node/pull/62738)
* \[[`70e8944676`](https://github.com/nodejs/node/commit/70e8944676)] - **doc**: fix duplicate word "of of" in postMessageToThread (Daijiro Wachi) [#62917](https://github.com/nodejs/node/pull/62917)
* \[[`11c6c29284`](https://github.com/nodejs/node/commit/11c6c29284)] - **doc**: fix duplicate word "to to" in util.styleText (Daijiro Wachi) [#62917](https://github.com/nodejs/node/pull/62917)
* \[[`242adab671`](https://github.com/nodejs/node/commit/242adab671)] - **doc**: fix duplicate word "for for" in compile cache (Daijiro Wachi) [#62917](https://github.com/nodejs/node/pull/62917)
* \[[`b9f3abd63e`](https://github.com/nodejs/node/commit/b9f3abd63e)] - **doc**: fix doubled word typo in stream\_iter.md (Daijiro Wachi) [#62916](https://github.com/nodejs/node/pull/62916)
* \[[`7a52fd0448`](https://github.com/nodejs/node/commit/7a52fd0448)] - **doc**: fix typo in dns.lookup options description (Daijiro Wachi) [#62882](https://github.com/nodejs/node/pull/62882)
* \[[`acd7e18a8c`](https://github.com/nodejs/node/commit/acd7e18a8c)] - **doc**: fix Argon2 parameter bounds (Tobias Nießen) [#62868](https://github.com/nodejs/node/pull/62868)
* \[[`b43ecf40bb`](https://github.com/nodejs/node/commit/b43ecf40bb)] - **doc**: trust FFI in the threat model (Paolo Insogna) [#62852](https://github.com/nodejs/node/pull/62852)
* \[[`981ce96b03`](https://github.com/nodejs/node/commit/981ce96b03)] - **doc**: fix typos and inconsistencies in crypto.md and webcrypto.md (Filip Skokan) [#62828](https://github.com/nodejs/node/pull/62828)
* \[[`acc52ef257`](https://github.com/nodejs/node/commit/acc52ef257)] - **doc**: clarify diffieHellman.generateKeys recomputes same key (Kit Dallege) [#62205](https://github.com/nodejs/node/pull/62205)
* \[[`ae87597c07`](https://github.com/nodejs/node/commit/ae87597c07)] - **doc**: remove Ayase-252 and meixg from triagger team (Antoine du Hamel) [#62841](https://github.com/nodejs/node/pull/62841)
* \[[`1cd3694a5f`](https://github.com/nodejs/node/commit/1cd3694a5f)] - **doc**: clarify dns.lookup() callback signature when all is true (eungi) [#62800](https://github.com/nodejs/node/pull/62800)
* \[[`40a4337d65`](https://github.com/nodejs/node/commit/40a4337d65)] - **doc**: add experimental modules lifetime policy (Paolo Insogna) [#62753](https://github.com/nodejs/node/pull/62753)
* \[[`46f48222f8`](https://github.com/nodejs/node/commit/46f48222f8)] - **doc**: clarify process.\_debugProcess() in Permission Model (Fahad Khan) [#62537](https://github.com/nodejs/node/pull/62537)
* \[[`6eb9917497`](https://github.com/nodejs/node/commit/6eb9917497)] - **doc**: fix typo in devcontainer guide (Rohan Santhosh Kumar) [#62687](https://github.com/nodejs/node/pull/62687)
* \[[`3826c5ed7e`](https://github.com/nodejs/node/commit/3826c5ed7e)] - **doc**: clarify Backport-PR-URL metadata added automatically (Mike McCready) [#62668](https://github.com/nodejs/node/pull/62668)
* \[[`5d7e0dbbd8`](https://github.com/nodejs/node/commit/5d7e0dbbd8)] - **doc**: update WPT test runner README.md (Filip Skokan) [#62680](https://github.com/nodejs/node/pull/62680)
* \[[`e9d76b2a75`](https://github.com/nodejs/node/commit/e9d76b2a75)] - **doc**: fix spelling in release announcement guidance (Rohan Santhosh Kumar) [#62663](https://github.com/nodejs/node/pull/62663)
* \[[`1ae41cebb0`](https://github.com/nodejs/node/commit/1ae41cebb0)] - **doc**: note GCC >= 14 requirement for native riscv64 builds (Jamie Magee) [#62607](https://github.com/nodejs/node/pull/62607)
* \[[`9b29be6a28`](https://github.com/nodejs/node/commit/9b29be6a28)] - **doc**: note non-monotonic clock in crypto.randomUUIDv7 (nabeel378) [#62600](https://github.com/nodejs/node/pull/62600)
* \[[`5ae59553f6`](https://github.com/nodejs/node/commit/5ae59553f6)] - **doc**: update bug bounty program (Rafael Gonzaga) [#62590](https://github.com/nodejs/node/pull/62590)
* \[[`ce3f4c85dd`](https://github.com/nodejs/node/commit/ce3f4c85dd)] - **doc**: document TransformStream transformer.cancel option (Tom Pereira) [#62566](https://github.com/nodejs/node/pull/62566)
* \[[`08a9ba73e4`](https://github.com/nodejs/node/commit/08a9ba73e4)] - **doc**: mention test runner retry attemp is zero based (Moshe Atlow) [#62504](https://github.com/nodejs/node/pull/62504)
* \[[`32f2169ede`](https://github.com/nodejs/node/commit/32f2169ede)] - **doc,src,test**: fix dead inspector help URL (semimikoh) [#62745](https://github.com/nodejs/node/pull/62745)
* \[[`870c1cd3f4`](https://github.com/nodejs/node/commit/870c1cd3f4)] - **doc,test**: mem protection must be observed in ffi (Bryan English) [#62818](https://github.com/nodejs/node/pull/62818)
* \[[`3d5cf171dc`](https://github.com/nodejs/node/commit/3d5cf171dc)] - **esm**: add `ERR_REQUIRE_ESM_RACE_CONDITION` (Antoine du Hamel) [#62462](https://github.com/nodejs/node/pull/62462)
* \[[`2004d8d6db`](https://github.com/nodejs/node/commit/2004d8d6db)] - **ffi**: make `FFIFunctionInfo` a `BaseObject` subclass (Anna Henningsen) [#63071](https://github.com/nodejs/node/pull/63071)
* \[[`53eb7abeba`](https://github.com/nodejs/node/commit/53eb7abeba)] - **ffi**: prevent premature GC of DynamicLibrary (semimikoh) [#63024](https://github.com/nodejs/node/pull/63024)
* \[[`58dc92f502`](https://github.com/nodejs/node/commit/58dc92f502)] - **ffi**: support Symbol.dispose on DynamicLibrary (Matteo Collina) [#62925](https://github.com/nodejs/node/pull/62925)
* \[[`528f8b2bae`](https://github.com/nodejs/node/commit/528f8b2bae)] - **ffi**: add shared-buffer fast path for numeric and pointer signatures (Bryan English) [#62918](https://github.com/nodejs/node/pull/62918)
* \[[`42ac8b9ae7`](https://github.com/nodejs/node/commit/42ac8b9ae7)] - **fs**: add followSymlinks option to glob (Matteo Collina) [#62695](https://github.com/nodejs/node/pull/62695)
* \[[`873c2bca70`](https://github.com/nodejs/node/commit/873c2bca70)] - **fs**: restore fs patchability in ESM loader (Joyee Cheung) [#62835](https://github.com/nodejs/node/pull/62835)
* \[[`349c7502c3`](https://github.com/nodejs/node/commit/349c7502c3)] - **fs**: validate position argument before length === 0 early return (Edy Silva) [#62674](https://github.com/nodejs/node/pull/62674)
* \[[`06defaa2ea`](https://github.com/nodejs/node/commit/06defaa2ea)] - **(SEMVER-MINOR)** **fs**: add signal option to fs.stat() (Mert Can Altin) [#57775](https://github.com/nodejs/node/pull/57775)
* \[[`db66a963bf`](https://github.com/nodejs/node/commit/db66a963bf)] - **(SEMVER-MINOR)** **fs**: expose frsize field in statfs (Jinho Jang) [#62277](https://github.com/nodejs/node/pull/62277)
* \[[`3191d2936a`](https://github.com/nodejs/node/commit/3191d2936a)] - **http**: emit 'drain' on OutgoingMessage only after buffers drain (Robert Nagy) [#62936](https://github.com/nodejs/node/pull/62936)
* \[[`87adb3472b`](https://github.com/nodejs/node/commit/87adb3472b)] - **(SEMVER-MINOR)** **http**: harden ClientRequest options merge (Matteo Collina) [#63082](https://github.com/nodejs/node/pull/63082)
* \[[`e0b79633f6`](https://github.com/nodejs/node/commit/e0b79633f6)] - **http**: fix leaked error listener on sync HTTP req create + destroy (Tim Perry) [#62872](https://github.com/nodejs/node/pull/62872)
* \[[`70c5491f53`](https://github.com/nodejs/node/commit/70c5491f53)] - **http**: fix no\_proxy leading-dot suffix matching (Daijiro Wachi) [#62333](https://github.com/nodejs/node/pull/62333)
* \[[`60a585e68a`](https://github.com/nodejs/node/commit/60a585e68a)] - **http**: cleanup pipeline queue (Robert Nagy) [#62534](https://github.com/nodejs/node/pull/62534)
* \[[`9047ec12ce`](https://github.com/nodejs/node/commit/9047ec12ce)] - **(SEMVER-MINOR)** **http**: add req.signal to IncomingMessage (Akshat) [#62541](https://github.com/nodejs/node/pull/62541)
* \[[`01eed5901b`](https://github.com/nodejs/node/commit/01eed5901b)] - **http2**: expose writable stream state on compat response (T) [#63003](https://github.com/nodejs/node/pull/63003)
* \[[`19b7adf3ba`](https://github.com/nodejs/node/commit/19b7adf3ba)] - **inspector**: fix absolute URLs in network http (bugyaluwang) [#62955](https://github.com/nodejs/node/pull/62955)
* \[[`4d10823fbb`](https://github.com/nodejs/node/commit/4d10823fbb)] - **inspector**: coerce key and value to string in webstorage events (Ali Hassan) [#62616](https://github.com/nodejs/node/pull/62616)
* \[[`9a3ac66cc5`](https://github.com/nodejs/node/commit/9a3ac66cc5)] - **inspector**: return errors when CDP protocol event emission fails (Ryuhei Shima) [#62162](https://github.com/nodejs/node/pull/62162)
* \[[`c89501c6e5`](https://github.com/nodejs/node/commit/c89501c6e5)] - **inspector**: auto collect webstorage data (Ryuhei Shima) [#62145](https://github.com/nodejs/node/pull/62145)
* \[[`ef08c5016a`](https://github.com/nodejs/node/commit/ef08c5016a)] - **lib**: refactor internal webidl converters (Filip Skokan) [#62979](https://github.com/nodejs/node/pull/62979)
* \[[`d0744c6a99`](https://github.com/nodejs/node/commit/d0744c6a99)] - **lib**: add Temporal to frozen intrinsics (René) [#63029](https://github.com/nodejs/node/pull/63029)
* \[[`6d81cb17b3`](https://github.com/nodejs/node/commit/6d81cb17b3)] - **lib**: avoid quadratic shift() in startup snapshot callback (Daijiro Wachi) [#62914](https://github.com/nodejs/node/pull/62914)
* \[[`3491f73051`](https://github.com/nodejs/node/commit/3491f73051)] - **lib**: fix FLOAT\_32 and FLOAT\_64 type constants in ffi (Daijiro Wachi) [#62892](https://github.com/nodejs/node/pull/62892)
* \[[`c4ca303b36`](https://github.com/nodejs/node/commit/c4ca303b36)] - **lib**: harden kKeyOps lookup with null prototype (Filip Skokan) [#62877](https://github.com/nodejs/node/pull/62877)
* \[[`2e612fe070`](https://github.com/nodejs/node/commit/2e612fe070)] - **lib**: short-circuit WebIDL BufferSource SAB check (Filip Skokan) [#62833](https://github.com/nodejs/node/pull/62833)
* \[[`e850ee9c69`](https://github.com/nodejs/node/commit/e850ee9c69)] - **lib**: add new methods and error codes (Paolo Insogna) [#62762](https://github.com/nodejs/node/pull/62762)
* \[[`e21b873589`](https://github.com/nodejs/node/commit/e21b873589)] - **lib**: use js-only implementation of `isDataView()` (René) [#62780](https://github.com/nodejs/node/pull/62780)
* \[[`f454d1719d`](https://github.com/nodejs/node/commit/f454d1719d)] - **lib**: fix lint in internal/webstreams/util.js (Filip Skokan) [#62806](https://github.com/nodejs/node/pull/62806)
* \[[`fbd8ededba`](https://github.com/nodejs/node/commit/fbd8ededba)] - **lib**: fix sequence argument handling in Blob constructor (Ms2ger) [#62179](https://github.com/nodejs/node/pull/62179)
* \[[`16860e6abd`](https://github.com/nodejs/node/commit/16860e6abd)] - **lib**: improve Web Cryptography key validation ordering (Filip Skokan) [#62749](https://github.com/nodejs/node/pull/62749)
* \[[`ba3f3e1753`](https://github.com/nodejs/node/commit/ba3f3e1753)] - **lib**: reject SharedArrayBuffer in web APIs per spec (Ali Hassan) [#62632](https://github.com/nodejs/node/pull/62632)
* \[[`d065e996bb`](https://github.com/nodejs/node/commit/d065e996bb)] - **lib**: defer AbortSignal.any() following (sangwook) [#62367](https://github.com/nodejs/node/pull/62367)
* \[[`2a711f4b0c`](https://github.com/nodejs/node/commit/2a711f4b0c)] - **(SEMVER-MINOR)** **lib,src,test,doc**: add node:ffi module (Colin Ihrig) [#62072](https://github.com/nodejs/node/pull/62072)
* \[[`d578343582`](https://github.com/nodejs/node/commit/d578343582)] - **meta**: bump github/codeql-action from 4.35.1 to 4.35.3 (dependabot\[bot]) [#63074](https://github.com/nodejs/node/pull/63074)
* \[[`1b4b90d544`](https://github.com/nodejs/node/commit/1b4b90d544)] - **meta**: bump Mozilla-Actions/sccache-action from 0.0.9 to 0.0.10 (dependabot\[bot]) [#63073](https://github.com/nodejs/node/pull/63073)
* \[[`1477349e47`](https://github.com/nodejs/node/commit/1477349e47)] - **meta**: bump actions/upload-artifact from 7.0.0 to 7.0.1 (dependabot\[bot]) [#63072](https://github.com/nodejs/node/pull/63072)
* \[[`ecb7de271a`](https://github.com/nodejs/node/commit/ecb7de271a)] - **meta**: bump cachix/install-nix-action from 31.10.3 to 31.10.5 (dependabot\[bot]) [#62846](https://github.com/nodejs/node/pull/62846)
* \[[`fb91408312`](https://github.com/nodejs/node/commit/fb91408312)] - **meta**: bump actions/upload-artifact from 7.0.0 to 7.0.1 (dependabot\[bot]) [#62850](https://github.com/nodejs/node/pull/62850)
* \[[`7eb9a6be68`](https://github.com/nodejs/node/commit/7eb9a6be68)] - **meta**: add automation policy (Chengzhong Wu) [#62871](https://github.com/nodejs/node/pull/62871)
* \[[`6f053a4cb8`](https://github.com/nodejs/node/commit/6f053a4cb8)] - **meta**: update CODEOWNERS for FFI (Paolo Insogna) [#62853](https://github.com/nodejs/node/pull/62853)
* \[[`88fe50a725`](https://github.com/nodejs/node/commit/88fe50a725)] - **meta**: move VoltrexKeyva to emeritus (Matteo Collina) [#62895](https://github.com/nodejs/node/pull/62895)
* \[[`42e770bdd0`](https://github.com/nodejs/node/commit/42e770bdd0)] - **meta**: bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (dependabot\[bot]) [#62845](https://github.com/nodejs/node/pull/62845)
* \[[`952d005233`](https://github.com/nodejs/node/commit/952d005233)] - **meta**: bump step-security/harden-runner from 2.16.1 to 2.19.0 (dependabot\[bot]) [#62844](https://github.com/nodejs/node/pull/62844)
* \[[`1bd19d9768`](https://github.com/nodejs/node/commit/1bd19d9768)] - **meta**: bump actions/github-script from 8.0.0 to 9.0.0 (dependabot\[bot]) [#62843](https://github.com/nodejs/node/pull/62843)
* \[[`386244a7dd`](https://github.com/nodejs/node/commit/386244a7dd)] - **meta**: bump actions/setup-node from 6.3.0 to 6.4.0 (dependabot\[bot]) [#62842](https://github.com/nodejs/node/pull/62842)
* \[[`16b2c41f70`](https://github.com/nodejs/node/commit/16b2c41f70)] - **meta**: broaden stale bot (Aviv Keller) [#62658](https://github.com/nodejs/node/pull/62658)
* \[[`41e7a4ba82`](https://github.com/nodejs/node/commit/41e7a4ba82)] - **meta**: pass release version to release worker (flakey5) [#62777](https://github.com/nodejs/node/pull/62777)
* \[[`632821db85`](https://github.com/nodejs/node/commit/632821db85)] - **meta**: add QUIC to CODEOWNERS (Tim Perry) [#62652](https://github.com/nodejs/node/pull/62652)
* \[[`4a7ad93ed8`](https://github.com/nodejs/node/commit/4a7ad93ed8)] - **meta**: move Michael to emeritus (Michael Dawson) [#62536](https://github.com/nodejs/node/pull/62536)
* \[[`44d5a33efb`](https://github.com/nodejs/node/commit/44d5a33efb)] - **meta**: populate apt list for slim runner in update-openssl workflow (René) [#62628](https://github.com/nodejs/node/pull/62628)
* \[[`d874596aa3`](https://github.com/nodejs/node/commit/d874596aa3)] - **meta**: bump cachix/install-nix-action from 31.9.1 to 31.10.3 (dependabot\[bot]) [#62551](https://github.com/nodejs/node/pull/62551)
* \[[`1631b27e2b`](https://github.com/nodejs/node/commit/1631b27e2b)] - **meta**: bump step-security/harden-runner from 2.15.0 to 2.16.1 (dependabot\[bot]) [#62550](https://github.com/nodejs/node/pull/62550)
* \[[`4de376894d`](https://github.com/nodejs/node/commit/4de376894d)] - **meta**: bump actions/download-artifact from 8.0.0 to 8.0.1 (dependabot\[bot]) [#62549](https://github.com/nodejs/node/pull/62549)
* \[[`39da4d7bd6`](https://github.com/nodejs/node/commit/39da4d7bd6)] - **meta**: bump actions/setup-node from 6.2.0 to 6.3.0 (dependabot\[bot]) [#62548](https://github.com/nodejs/node/pull/62548)
* \[[`62e3aa55ad`](https://github.com/nodejs/node/commit/62e3aa55ad)] - **meta**: bump github/codeql-action from 4.32.4 to 4.35.1 (dependabot\[bot]) [#62547](https://github.com/nodejs/node/pull/62547)
* \[[`83986de8a2`](https://github.com/nodejs/node/commit/83986de8a2)] - **meta**: bump codecov/codecov-action from 5.5.2 to 6.0.0 (dependabot\[bot]) [#62545](https://github.com/nodejs/node/pull/62545)
* \[[`18e56861dc`](https://github.com/nodejs/node/commit/18e56861dc)] - **meta**: bump cachix/cachix-action from 16 to 17 (dependabot\[bot]) [#62544](https://github.com/nodejs/node/pull/62544)
* \[[`d4e49d567a`](https://github.com/nodejs/node/commit/d4e49d567a)] - **meta**: bump actions/cache from 5.0.3 to 5.0.4 (dependabot\[bot]) [#62543](https://github.com/nodejs/node/pull/62543)
* \[[`2c5a914af4`](https://github.com/nodejs/node/commit/2c5a914af4)] - **meta**: require DCO signoff in commit message guidelines (James M Snell) [#62510](https://github.com/nodejs/node/pull/62510)
* \[[`f21039ce59`](https://github.com/nodejs/node/commit/f21039ce59)] - **meta**: expand memory leak DoS criteria to all DoS (Joyee Cheung) [#62505](https://github.com/nodejs/node/pull/62505)
* \[[`824ac6b5bf`](https://github.com/nodejs/node/commit/824ac6b5bf)] - **module**: exclude `node:ffi` from `builtinModules` when not enabled (Jordan Harband) [#63158](https://github.com/nodejs/node/pull/63158)
* \[[`bb6293ab7c`](https://github.com/nodejs/node/commit/bb6293ab7c)] - **module**: remove duplicated checks from `_resolveFilename` (Antoine du Hamel) [#62729](https://github.com/nodejs/node/pull/62729)
* \[[`34ec8c9f5c`](https://github.com/nodejs/node/commit/34ec8c9f5c)] - **module,win**: fix long subpath import (Stefan Stojanovic) [#62101](https://github.com/nodejs/node/pull/62101)
* \[[`de46e68918`](https://github.com/nodejs/node/commit/de46e68918)] - **node-api**: update libuv ABI stability note (Chengzhong Wu) [#62789](https://github.com/nodejs/node/pull/62789)
* \[[`78c7d77bbf`](https://github.com/nodejs/node/commit/78c7d77bbf)] - **node-api**: add napi\_create\_external\_sharedarraybuffer (Ben Noordhuis) [#62623](https://github.com/nodejs/node/pull/62623)
* \[[`a0ccf94f61`](https://github.com/nodejs/node/commit/a0ccf94f61)] - **node-api**: execute tsfn finalizer after queue drains when aborted (Kevin Eady) [#61956](https://github.com/nodejs/node/pull/61956)
* \[[`ab66de8eaa`](https://github.com/nodejs/node/commit/ab66de8eaa)] - **(SEMVER-MINOR)** **process**: throw on execve(2) failure instead of aborting (Bryan English) [#62878](https://github.com/nodejs/node/pull/62878)
* \[[`20151be8cb`](https://github.com/nodejs/node/commit/20151be8cb)] - **process**: handle rejections only when needed (Gürgün Dayıoğlu) [#62919](https://github.com/nodejs/node/pull/62919)
* \[[`9b24a815a2`](https://github.com/nodejs/node/commit/9b24a815a2)] - **quic**: add QuicEndpoint.listening & QuicStream.destroy() and tests (Tim Perry) [#62648](https://github.com/nodejs/node/pull/62648)
* \[[`761a96740c`](https://github.com/nodejs/node/commit/761a96740c)] - **quic**: fixup token verification to handle zero expiration (James M Snell) [#62620](https://github.com/nodejs/node/pull/62620)
* \[[`4ade02ac85`](https://github.com/nodejs/node/commit/4ade02ac85)] - **quic**: support multiple ALPN negotiation (James M Snell) [#62620](https://github.com/nodejs/node/pull/62620)
* \[[`b2e2e648e4`](https://github.com/nodejs/node/commit/b2e2e648e4)] - **quic**: apply multiple TLS context improvements and SNI support (James M Snell) [#62620](https://github.com/nodejs/node/pull/62620)
* \[[`56b941af4a`](https://github.com/nodejs/node/commit/56b941af4a)] - **quic**: implement rapidhash for hashing improvements (James M Snell) [#62620](https://github.com/nodejs/node/pull/62620)
* \[[`7cda4300b8`](https://github.com/nodejs/node/commit/7cda4300b8)] - **quic**: use arena allocation for packets (James M Snell) [#62589](https://github.com/nodejs/node/pull/62589)
* \[[`1e8fa2f1bd`](https://github.com/nodejs/node/commit/1e8fa2f1bd)] - **sqlite**: use OneByte for ASCII text and internalize col names (Ali Hassan) [#61954](https://github.com/nodejs/node/pull/61954)
* \[[`3af44ee508`](https://github.com/nodejs/node/commit/3af44ee508)] - **sqlite**: add serialize() and deserialize() (Ali Hassan) [#62579](https://github.com/nodejs/node/pull/62579)
* \[[`6386914b4b`](https://github.com/nodejs/node/commit/6386914b4b)] - **src**: decouple KeyObject and CryptoKey and move CryptoKey to src (Filip Skokan) [#62924](https://github.com/nodejs/node/pull/62924)
* \[[`2dc1d205ee`](https://github.com/nodejs/node/commit/2dc1d205ee)] - **src**: replace uses of deprecated v8::External APIs (gahaas) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`cb33a794a5`](https://github.com/nodejs/node/commit/cb33a794a5)] - **src**: remove license headers for new node\_profiling files (Chengzhong Wu) [#63066](https://github.com/nodejs/node/pull/63066)
* \[[`59860eb798`](https://github.com/nodejs/node/commit/59860eb798)] - **src**: swap dotenv and config file parsing order (Marco Ippolito) [#63035](https://github.com/nodejs/node/pull/63035)
* \[[`fda439cb58`](https://github.com/nodejs/node/commit/fda439cb58)] - **src**: use `unique_ptr` for ffi memory management (Anna Henningsen) [#63071](https://github.com/nodejs/node/pull/63071)
* \[[`56917afc57`](https://github.com/nodejs/node/commit/56917afc57)] - **src**: split profiling helpers from util (Ilyas Shabi) [#63008](https://github.com/nodejs/node/pull/63008)
* \[[`fca56a409d`](https://github.com/nodejs/node/commit/fca56a409d)] - **src**: add missing \<cstdlib> for abort() declaration (Charles Kerr) [#63001](https://github.com/nodejs/node/pull/63001)
* \[[`d49c89e915`](https://github.com/nodejs/node/commit/d49c89e915)] - **src**: make node.config.json throw at unknown fields (Marco Ippolito) [#62992](https://github.com/nodejs/node/pull/62992)
* \[[`e89c8e9b68`](https://github.com/nodejs/node/commit/e89c8e9b68)] - **src**: fix crash in GetErrorSource() for invalid using syntax (semimikoh) [#62770](https://github.com/nodejs/node/pull/62770)
* \[[`d89f719ce0`](https://github.com/nodejs/node/commit/d89f719ce0)] - **src**: remove outdated comments in contextify (Chengzhong Wu) [#62932](https://github.com/nodejs/node/pull/62932)
* \[[`5117a3e52b`](https://github.com/nodejs/node/commit/5117a3e52b)] - **src**: simplify `TCPWrap::Connect` signature (Anna Henningsen) [#62929](https://github.com/nodejs/node/pull/62929)
* \[[`41bd288ec7`](https://github.com/nodejs/node/commit/41bd288ec7)] - **src**: align FFI error handling with Node.js source (Anna Henningsen) [#62858](https://github.com/nodejs/node/pull/62858)
* \[[`faaccfb9df`](https://github.com/nodejs/node/commit/faaccfb9df)] - **src**: simplify and fix FFI ArrayBuffer accesses (Anna Henningsen) [#62857](https://github.com/nodejs/node/pull/62857)
* \[[`43bf39c350`](https://github.com/nodejs/node/commit/43bf39c350)] - **src**: use DCHECK in AsyncWrap::MakeCallback instead emiting a warning (Gerhard Stöbich) [#62795](https://github.com/nodejs/node/pull/62795)
* \[[`da52b09859`](https://github.com/nodejs/node/commit/da52b09859)] - **src**: fix MaybeStackBuffer char\_traits deprecation warning (om-ghante) [#62507](https://github.com/nodejs/node/pull/62507)
* \[[`2b12bca317`](https://github.com/nodejs/node/commit/2b12bca317)] - **src**: use context-free V8 message column getters (René) [#62778](https://github.com/nodejs/node/pull/62778)
* \[[`7efc2ce7b3`](https://github.com/nodejs/node/commit/7efc2ce7b3)] - **src**: clean up experimental flag variables (Antoine du Hamel) [#62759](https://github.com/nodejs/node/pull/62759)
* \[[`8273682c87`](https://github.com/nodejs/node/commit/8273682c87)] - **(SEMVER-MINOR)** **src**: allow empty --experimental-config-file (Marco Ippolito) [#61610](https://github.com/nodejs/node/pull/61610)
* \[[`b844c24395`](https://github.com/nodejs/node/commit/b844c24395)] - **src**: coerce `spawnSync` args to string once (Antoine du Hamel) [#62633](https://github.com/nodejs/node/pull/62633)
* \[[`28679d76c4`](https://github.com/nodejs/node/commit/28679d76c4)] - **src**: use stack allocation for small string encoding (Ali Hassan) [#62431](https://github.com/nodejs/node/pull/62431)
* \[[`144ef93735`](https://github.com/nodejs/node/commit/144ef93735)] - **src**: add contextify interceptor debug logs (Chengzhong Wu) [#62460](https://github.com/nodejs/node/pull/62460)
* \[[`d34cfb512e`](https://github.com/nodejs/node/commit/d34cfb512e)] - **stream**: remove redundant method check from iter.pipeToSync (René) [#63099](https://github.com/nodejs/node/pull/63099)
* \[[`a95830b72a`](https://github.com/nodejs/node/commit/a95830b72a)] - **stream**: copyedit `webstreams/adapter.js` (Antoine du Hamel) [#63034](https://github.com/nodejs/node/pull/63034)
* \[[`4bf3e1e084`](https://github.com/nodejs/node/commit/4bf3e1e084)] - **stream**: remove duplicated utility (Antoine du Hamel) [#63031](https://github.com/nodejs/node/pull/63031)
* \[[`214a8c197b`](https://github.com/nodejs/node/commit/214a8c197b)] - **stream**: simplify `setPromiseHandled` utility (Antoine du Hamel) [#63032](https://github.com/nodejs/node/pull/63032)
* \[[`c12a767ff2`](https://github.com/nodejs/node/commit/c12a767ff2)] - **stream**: validate ReadableStream.from iterator objects (Daeyeon Jeong) [#62911](https://github.com/nodejs/node/pull/62911)
* \[[`b09953d2d4`](https://github.com/nodejs/node/commit/b09953d2d4)] - **stream**: reject duplicate nested transferables (Daeyeon Jeong) [#62831](https://github.com/nodejs/node/pull/62831)
* \[[`b9929622f3`](https://github.com/nodejs/node/commit/b9929622f3)] - **stream**: ensuring cross-destruction in \_duplexify to prevent leaks (Daijiro Wachi) [#62824](https://github.com/nodejs/node/pull/62824)
* \[[`c51a39b3ec`](https://github.com/nodejs/node/commit/c51a39b3ec)] - **stream**: simplify `readableStreamFromIterable` (Antoine du Hamel) [#62651](https://github.com/nodejs/node/pull/62651)
* \[[`36078574b9`](https://github.com/nodejs/node/commit/36078574b9)] - **stream**: fix nested compose error propagation (Matteo Collina) [#62556](https://github.com/nodejs/node/pull/62556)
* \[[`e1928cd481`](https://github.com/nodejs/node/commit/e1928cd481)] - **stream**: allow shared array buffer sources in writable webstream adapter (René) [#62163](https://github.com/nodejs/node/pull/62163)
* \[[`450e0519d9`](https://github.com/nodejs/node/commit/450e0519d9)] - **stream**: simplify `createPromiseCallback` (Antoine du Hamel) [#62650](https://github.com/nodejs/node/pull/62650)
* \[[`57e59ea070`](https://github.com/nodejs/node/commit/57e59ea070)] - **stream**: fix writev unhandled rejection in fromWeb (sangwook) [#62297](https://github.com/nodejs/node/pull/62297)
* \[[`958373413c`](https://github.com/nodejs/node/commit/958373413c)] - **stream**: noop pause/resume on destroyed streams (Robert Nagy) [#62557](https://github.com/nodejs/node/pull/62557)
* \[[`ee38d2c43d`](https://github.com/nodejs/node/commit/ee38d2c43d)] - **stream**: refactor duplexify to be less suceptible to prototype pollution (Antoine du Hamel) [#62559](https://github.com/nodejs/node/pull/62559)
* \[[`fbff28f7e6`](https://github.com/nodejs/node/commit/fbff28f7e6)] - **(SEMVER-MINOR)** **stream**: propagate destruction in duplexPair (Ahmed Elhor) [#61098](https://github.com/nodejs/node/pull/61098)
* \[[`d7317f4f90`](https://github.com/nodejs/node/commit/d7317f4f90)] - **stream**: add stream/iter to classic stream adapters (James M Snell) [#62469](https://github.com/nodejs/node/pull/62469)
* \[[`55298c443f`](https://github.com/nodejs/node/commit/55298c443f)] - **test**: accept OpenSSL 4 generic internal error for DH key-type mismatches (Filip Skokan) [#62805](https://github.com/nodejs/node/pull/62805)
* \[[`96581bccc7`](https://github.com/nodejs/node/commit/96581bccc7)] - **test**: update WPT for url to 258f285de0 (Node.js GitHub Bot) [#63087](https://github.com/nodejs/node/pull/63087)
* \[[`c73aba07fb`](https://github.com/nodejs/node/commit/c73aba07fb)] - **test**: run Temporal presence checks without V8 flag (René) [#63028](https://github.com/nodejs/node/pull/63028)
* \[[`9c94dce55b`](https://github.com/nodejs/node/commit/9c94dce55b)] - **test**: export isRiscv64 from common module (Jamie Magee) [#62609](https://github.com/nodejs/node/pull/62609)
* \[[`33c5f7fdbf`](https://github.com/nodejs/node/commit/33c5f7fdbf)] - **test**: normalize known inspector crash as completion (Joyee Cheung) [#62851](https://github.com/nodejs/node/pull/62851)
* \[[`8146a97bc3`](https://github.com/nodejs/node/commit/8146a97bc3)] - **test**: update WPT for streams to f8f26a372f (Node.js GitHub Bot) [#62864](https://github.com/nodejs/node/pull/62864)
* \[[`7c77c301c9`](https://github.com/nodejs/node/commit/7c77c301c9)] - **test**: account for RFC 7919 FFDHE negotiation in OpenSSL 4.0 (Filip Skokan) [#62805](https://github.com/nodejs/node/pull/62805)
* \[[`9bf7604eb6`](https://github.com/nodejs/node/commit/9bf7604eb6)] - **test**: skip tls-deprecated secp256k1 on OpenSSL 4.0 (Filip Skokan) [#62805](https://github.com/nodejs/node/pull/62805)
* \[[`d173604b53`](https://github.com/nodejs/node/commit/d173604b53)] - **test**: use an always invalid cipher and cover OpenSSL 4.0 behaviours (Filip Skokan) [#62805](https://github.com/nodejs/node/pull/62805)
* \[[`72f52163b4`](https://github.com/nodejs/node/commit/72f52163b4)] - **test**: use valid DER OCSP responses (Filip Skokan) [#62805](https://github.com/nodejs/node/pull/62805)
* \[[`e242394ad9`](https://github.com/nodejs/node/commit/e242394ad9)] - **test**: skip test-tls-error-stack when engines are unsupported (Filip Skokan) [#62805](https://github.com/nodejs/node/pull/62805)
* \[[`9bff52ebf8`](https://github.com/nodejs/node/commit/9bff52ebf8)] - **test**: accept renamed OpenSSL 4.0 error code and reason (Filip Skokan) [#62805](https://github.com/nodejs/node/pull/62805)
* \[[`d9b8cc1b68`](https://github.com/nodejs/node/commit/d9b8cc1b68)] - **test**: update test/addons/openssl-binding for OpenSSL 4.0 (Filip Skokan) [#62805](https://github.com/nodejs/node/pull/62805)
* \[[`960fb16287`](https://github.com/nodejs/node/commit/960fb16287)] - **test**: mark test-snapshot-reproducible flaky (Filip Skokan) [#62808](https://github.com/nodejs/node/pull/62808)
* \[[`7a12dd58cf`](https://github.com/nodejs/node/commit/7a12dd58cf)] - **test**: check contextify contextual store behavior in strict mode (René) [#62571](https://github.com/nodejs/node/pull/62571)
* \[[`c73c8e603f`](https://github.com/nodejs/node/commit/c73c8e603f)] - **test**: skip `test-temporal-with-zoneinfo` on system-icu builds (Antoine du Hamel) [#62754](https://github.com/nodejs/node/pull/62754)
* \[[`48a3ca303e`](https://github.com/nodejs/node/commit/48a3ca303e)] - **test**: generate `localstorage.db` in a temp dir (Chengzhong Wu) [#62660](https://github.com/nodejs/node/pull/62660)
* \[[`1a41c2c5db`](https://github.com/nodejs/node/commit/1a41c2c5db)] - **test**: update tls junk data error expectations (Filip Skokan) [#62629](https://github.com/nodejs/node/pull/62629)
* \[[`115e8c2052`](https://github.com/nodejs/node/commit/115e8c2052)] - **test**: ensure WPT report is in out/wpt (Filip Skokan) [#62637](https://github.com/nodejs/node/pull/62637)
* \[[`cb07b918bd`](https://github.com/nodejs/node/commit/cb07b918bd)] - **test**: improve WPT runner summary (Filip Skokan) [#62636](https://github.com/nodejs/node/pull/62636)
* \[[`7f48438380`](https://github.com/nodejs/node/commit/7f48438380)] - **test**: skip url WPT subtests instead of modifying test script (Filip Skokan) [#62635](https://github.com/nodejs/node/pull/62635)
* \[[`4097fb95d7`](https://github.com/nodejs/node/commit/4097fb95d7)] - **test**: capture negative utimes mtime at call time (Yuya Inoue) [#62490](https://github.com/nodejs/node/pull/62490)
* \[[`e29f46df81`](https://github.com/nodejs/node/commit/e29f46df81)] - **test**: allow skipping individual WPT subtests (Filip Skokan) [#62517](https://github.com/nodejs/node/pull/62517)
* \[[`4d546886c3`](https://github.com/nodejs/node/commit/4d546886c3)] - **test**: use on-disk fixture for test-npm-install (Joyee Cheung) [#62584](https://github.com/nodejs/node/pull/62584)
* \[[`5b35eb02ec`](https://github.com/nodejs/node/commit/5b35eb02ec)] - **test**: update WPT for url to 7a3645b79a (Node.js GitHub Bot) [#62591](https://github.com/nodejs/node/pull/62591)
* \[[`7a8610835d`](https://github.com/nodejs/node/commit/7a8610835d)] - **test\_runner**: fix failing suite hooks when marked with `todo` (Moshe Atlow) [#63097](https://github.com/nodejs/node/pull/63097)
* \[[`a8c773a0c7`](https://github.com/nodejs/node/commit/a8c773a0c7)] - **(SEMVER-MINOR)** **test\_runner**: align mock timeout api (sangwook) [#62820](https://github.com/nodejs/node/pull/62820)
* \[[`dc0d757c8a`](https://github.com/nodejs/node/commit/dc0d757c8a)] - **test\_runner**: fix suite rerun edge case (Moshe Atlow) [#62860](https://github.com/nodejs/node/pull/62860)
* \[[`b883a5eaea`](https://github.com/nodejs/node/commit/b883a5eaea)] - **(SEMVER-MINOR)** **test\_runner**: add mock-timers support for AbortSignal.timeout (DeveloperViraj) [#60751](https://github.com/nodejs/node/pull/60751)
* \[[`6fa62b7d58`](https://github.com/nodejs/node/commit/6fa62b7d58)] - **test\_runner**: add `testId` to test events (Moshe Atlow) [#62772](https://github.com/nodejs/node/pull/62772)
* \[[`39e08340ff`](https://github.com/nodejs/node/commit/39e08340ff)] - **test\_runner**: publish to TracingChannel for OTel instrumentation (Moshe Atlow) [#62502](https://github.com/nodejs/node/pull/62502)
* \[[`a21ae1771e`](https://github.com/nodejs/node/commit/a21ae1771e)] - **(SEMVER-MINOR)** **test\_runner**: support test order randomization (Pietro Marchini) [#61747](https://github.com/nodejs/node/pull/61747)
* \[[`cf0edeb65d`](https://github.com/nodejs/node/commit/cf0edeb65d)] - **test\_runner**: add passed, attempt, and diagnostic to SuiteContext (Moshe Atlow) [#62504](https://github.com/nodejs/node/pull/62504)
* \[[`644e2399d6`](https://github.com/nodejs/node/commit/644e2399d6)] - **test\_runner**: add `getTestContext()` (Moshe Atlow) [#62501](https://github.com/nodejs/node/pull/62501)
* \[[`480d538830`](https://github.com/nodejs/node/commit/480d538830)] - **tools**: use `npm ci` in Undici update script (Antoine du Hamel) [#63098](https://github.com/nodejs/node/pull/63098)
* \[[`9afb013edd`](https://github.com/nodejs/node/commit/9afb013edd)] - **tools**: update nixpkgs-unstable to c6d65881c5624c9cae5ea6cedef24699b0c (Node.js GitHub Bot) [#63091](https://github.com/nodejs/node/pull/63091)
* \[[`b9f2f5a90a`](https://github.com/nodejs/node/commit/b9f2f5a90a)] - **tools**: bump postcss from 8.5.8 to 8.5.10 in /tools/doc (dependabot\[bot]) [#62966](https://github.com/nodejs/node/pull/62966)
* \[[`09e4f4caca`](https://github.com/nodejs/node/commit/09e4f4caca)] - **tools**: use LTS Node.js in notify-on-push workflow (Nenad Spasenic) [#63084](https://github.com/nodejs/node/pull/63084)
* \[[`2af4c89774`](https://github.com/nodejs/node/commit/2af4c89774)] - **tools**: implements a few nits on `build-aarch64-linux-v8` (Antoine du Hamel) [#63048](https://github.com/nodejs/node/pull/63048)
* \[[`cf9c1849ca`](https://github.com/nodejs/node/commit/cf9c1849ca)] - **tools**: update gr2m/create-or-update-pull-request-action to v1.10.1 (Mike McCready) [#63065](https://github.com/nodejs/node/pull/63065)
* \[[`96370a57ed`](https://github.com/nodejs/node/commit/96370a57ed)] - **tools**: simplify `update-undici.sh` (Antoine du Hamel) [#63044](https://github.com/nodejs/node/pull/63044)
* \[[`b90486edd8`](https://github.com/nodejs/node/commit/b90486edd8)] - **tools**: do not run `test-linux` on unrelated tools changes (Antoine du Hamel) [#63037](https://github.com/nodejs/node/pull/63037)
* \[[`ac49e7c9fc`](https://github.com/nodejs/node/commit/ac49e7c9fc)] - **tools**: migrate from `openssl-matrix.json` to `openssl-matrix.nix` (Antoine du Hamel) [#63036](https://github.com/nodejs/node/pull/63036)
* \[[`a9df3e37fd`](https://github.com/nodejs/node/commit/a9df3e37fd)] - **tools**: update labels for nixpkgs pin bumps (Antoine du Hamel) [#62994](https://github.com/nodejs/node/pull/62994)
* \[[`cee0154af8`](https://github.com/nodejs/node/commit/cee0154af8)] - **tools**: reuse V8 builds even without Cachix on test-shared (Antoine du Hamel) [#62980](https://github.com/nodejs/node/pull/62980)
* \[[`78c183da6b`](https://github.com/nodejs/node/commit/78c183da6b)] - **tools**: do not include HTML docs in slim tarball (Antoine du Hamel) [#62989](https://github.com/nodejs/node/pull/62989)
* \[[`04ce9df084`](https://github.com/nodejs/node/commit/04ce9df084)] - **tools**: bump the eslint group in /tools/eslint with 4 updates (dependabot\[bot]) [#62848](https://github.com/nodejs/node/pull/62848)
* \[[`4d2952c00a`](https://github.com/nodejs/node/commit/4d2952c00a)] - **tools**: update nixpkgs-unstable to 01fbdeef22b76df85ea168fbfe1bfd9e636 (Node.js GitHub Bot) [#62963](https://github.com/nodejs/node/pull/62963)
* \[[`555ad12f27`](https://github.com/nodejs/node/commit/555ad12f27)] - **tools**: update gyp-next to 0.22.1 (Node.js GitHub Bot) [#62961](https://github.com/nodejs/node/pull/62961)
* \[[`f92cbc2c81`](https://github.com/nodejs/node/commit/f92cbc2c81)] - **tools**: fix commit linter for semver-major release proposals (Antoine du Hamel) [#62993](https://github.com/nodejs/node/pull/62993)
* \[[`3b5bb4d758`](https://github.com/nodejs/node/commit/3b5bb4d758)] - **tools**: consolidate and simplify .editorconfig deps section (Daijiro Wachi) [#62887](https://github.com/nodejs/node/pull/62887)
* \[[`027bef4f3e`](https://github.com/nodejs/node/commit/027bef4f3e)] - **tools**: add non-default OpenSSL versions to the test-shared workflow (Filip Skokan) [#62862](https://github.com/nodejs/node/pull/62862)
* \[[`fdcd7752de`](https://github.com/nodejs/node/commit/fdcd7752de)] - **tools**: set bot as author of tools-deps-update PRs (Antoine du Hamel) [#62856](https://github.com/nodejs/node/pull/62856)
* \[[`ab7be6d987`](https://github.com/nodejs/node/commit/ab7be6d987)] - **tools**: bump brace-expansion from 5.0.4 to 5.0.5 in /tools/eslint (dependabot\[bot]) [#62458](https://github.com/nodejs/node/pull/62458)
* \[[`82281ffd59`](https://github.com/nodejs/node/commit/82281ffd59)] - **tools**: bump brace-expansion in /tools/clang-format (dependabot\[bot]) [#62467](https://github.com/nodejs/node/pull/62467)
* \[[`48bb51b3d7`](https://github.com/nodejs/node/commit/48bb51b3d7)] - **tools**: update nixpkgs-unstable to ab72be9733b41190ea34f1422a3e4e243ed (Node.js GitHub Bot) [#62821](https://github.com/nodejs/node/pull/62821)
* \[[`67baa3254b`](https://github.com/nodejs/node/commit/67baa3254b)] - **tools**: bump @node-core/doc-kit in /tools/doc in the doc group (dependabot\[bot]) [#62512](https://github.com/nodejs/node/pull/62512)
* \[[`bdee0a859d`](https://github.com/nodejs/node/commit/bdee0a859d)] - **tools**: exclude @node-core/doc-kit from dependabot cooldown (Levi Zim) [#62775](https://github.com/nodejs/node/pull/62775)
* \[[`9e19f55214`](https://github.com/nodejs/node/commit/9e19f55214)] - **tools**: re-enable undici WPTs in daily wpt.fyi job (Filip Skokan) [#62677](https://github.com/nodejs/node/pull/62677)
* \[[`1eedbdded9`](https://github.com/nodejs/node/commit/1eedbdded9)] - **tools**: use upstream version of OpenSSL in `test-shared` (Antoine du Hamel) [#62679](https://github.com/nodejs/node/pull/62679)
* \[[`3490c1fba1`](https://github.com/nodejs/node/commit/3490c1fba1)] - **tools**: pass the Temporal disable flag when disabled in `shell.nix` (Antoine du Hamel) [#62733](https://github.com/nodejs/node/pull/62733)
* \[[`3a29dafd2d`](https://github.com/nodejs/node/commit/3a29dafd2d)] - **tools**: fix `--shared-ffi` compilation on macOS (Antoine du Hamel) [#62737](https://github.com/nodejs/node/pull/62737)
* \[[`5cb9108b9c`](https://github.com/nodejs/node/commit/5cb9108b9c)] - **tools**: update nixpkgs-unstable to 13043924aaa7375ce482ebe2494338e0582 (Node.js GitHub Bot) [#62700](https://github.com/nodejs/node/pull/62700)
* \[[`757cd21ea0`](https://github.com/nodejs/node/commit/757cd21ea0)] - **tools**: update gyp-next to 0.22.0 (Node.js GitHub Bot) [#62697](https://github.com/nodejs/node/pull/62697)
* \[[`fad51c2f03`](https://github.com/nodejs/node/commit/fad51c2f03)] - **tools**: add a check for clean git tree after tests (Antoine du Hamel) [#62661](https://github.com/nodejs/node/pull/62661)
* \[[`d1c517fd61`](https://github.com/nodejs/node/commit/d1c517fd61)] - **tools**: improve backport review script (Antoine du Hamel) [#62573](https://github.com/nodejs/node/pull/62573)
* \[[`6d169c75f7`](https://github.com/nodejs/node/commit/6d169c75f7)] - **tools**: make `v8.nix` more stable (Antoine du Hamel) [#62508](https://github.com/nodejs/node/pull/62508)
* \[[`1587a60bf8`](https://github.com/nodejs/node/commit/1587a60bf8)] - **tools**: add perfetto updater (Chengzhong Wu) [#62397](https://github.com/nodejs/node/pull/62397)
* \[[`f54d74a5e7`](https://github.com/nodejs/node/commit/f54d74a5e7)] - **tools**: improve output for unexpected passes in WTP tests (Antoine du Hamel) [#62587](https://github.com/nodejs/node/pull/62587)
* \[[`a86c96333c`](https://github.com/nodejs/node/commit/a86c96333c)] - **tools**: revert OpenSSL update workflow to ubuntu-latest (Richard Lau) [#62627](https://github.com/nodejs/node/pull/62627)
* \[[`c9860f5800`](https://github.com/nodejs/node/commit/c9860f5800)] - **tools**: update nixpkgs-unstable to a6522db5b947cd7026a40d02acc3ca26136 (Node.js GitHub Bot) [#62596](https://github.com/nodejs/node/pull/62596)
* \[[`ae41e2a141`](https://github.com/nodejs/node/commit/ae41e2a141)] - **tools**: bump the eslint group in /tools/eslint with 2 updates (dependabot\[bot]) [#62552](https://github.com/nodejs/node/pull/62552)
* \[[`e2ba824407`](https://github.com/nodejs/node/commit/e2ba824407)] - **tools**: allow triagers to queue a PR for CI until it's reviewed (Antoine du Hamel) [#62524](https://github.com/nodejs/node/pull/62524)
* \[[`899d780f15`](https://github.com/nodejs/node/commit/899d780f15)] - **tools**: do not run `commit-lint` on release proposals (Antoine du Hamel) [#62523](https://github.com/nodejs/node/pull/62523)
* \[[`102da27b4e`](https://github.com/nodejs/node/commit/102da27b4e)] - **url**: process crash via malformed UNC hostname in pathToFileURL() (Nicola Del Gobbo) [#62574](https://github.com/nodejs/node/pull/62574)
* \[[`3abd78c3e5`](https://github.com/nodejs/node/commit/3abd78c3e5)] - **url**: optimize URLSearchParams set/delete duplicate handling (Gürgün Dayıoğlu) [#62266](https://github.com/nodejs/node/pull/62266)
* \[[`fd3bf3830b`](https://github.com/nodejs/node/commit/fd3bf3830b)] - **url**: align default argument handling for URLPattern with webidl (Filip Skokan) [#62719](https://github.com/nodejs/node/pull/62719)
* \[[`b85c73ff10`](https://github.com/nodejs/node/commit/b85c73ff10)] - **(SEMVER-MINOR)** **util**: colorize text with hex colors (Guilherme Araújo) [#61556](https://github.com/nodejs/node/pull/61556)
* \[[`c1d6b3db73`](https://github.com/nodejs/node/commit/c1d6b3db73)] - **v8**: add cpu profile options (Ilyas Shabi) [#62684](https://github.com/nodejs/node/pull/62684)
* \[[`717d9a7fda`](https://github.com/nodejs/node/commit/717d9a7fda)] - **v8**: add heap profile API (Ilyas Shabi) [#62273](https://github.com/nodejs/node/pull/62273)
* \[[`2b885667a9`](https://github.com/nodejs/node/commit/2b885667a9)] - **watch**: track worker entry files in watch mode (SudhansuBandha) [#62368](https://github.com/nodejs/node/pull/62368)
* \[[`457fb55193`](https://github.com/nodejs/node/commit/457fb55193)] - **watch**: fix --env-file-if-exists crashing on linux if the file is missing (Efe) [#61870](https://github.com/nodejs/node/pull/61870)

<a id="26.0.0"></a>

## 2026-05-05, Version 26.0.0 (Current), @RafaelGSS

We're excited to announce the release of Node.js 26! Highlights include the Temporal API enabled by default,
updates to the V8 JavaScript engine to 14.6, Undici to 8.0, and several important deprecations and removals
as we continue to modernize the platform.

As a reminder, Node.js 26 will enter long-term support (LTS) in October, but until then, it will be the "Current" release for the next six months.
We encourage you to explore the new features and benefits offered by this latest release and evaluate their potential impact on your applications.

### Notable Changes

#### Temporal API

The Temporal API is now enabled by default in Node.js 26. Temporal is a modern date/time API for JavaScript
that provides a more robust and feature-rich alternative to the legacy `Date` object.

Contributed by Richard Lau in [#61806](https://github.com/nodejs/node/pull/61806).

#### V8 14.6

The V8 engine is updated to version 14.6.202.33, which is part of Chromium 146.

This version also includes:

* Upsert (<https://github.com/tc39/proposal-upsert>): `[Weak]Map.prototype.getOrInsert()`, `[Weak]Map.prototype.getOrInsertComputed()`
* Iterator sequencing (<https://github.com/tc39/proposal-iterator-sequencing>): `Iterator.concat()`

Contributed by Michaël Zasso in [#61898](https://github.com/nodejs/node/pull/61898).

#### Undici 8

Undici has been updated to version 8.0.2, bringing new features and improvements to Node.js's HTTP client implementation.

#### Deprecations and Removals

* \[[`dff46c07c3`](https://github.com/nodejs/node/commit/dff46c07c3)] - **(SEMVER-MAJOR)** **crypto**: move DEP0182 to End-of-Life (Tobias Nießen) [#61084](https://github.com/nodejs/node/pull/61084)

* \[[`93c25815ee`](https://github.com/nodejs/node/commit/93c25815ee)] - **(SEMVER-MAJOR)** **http**: move writeHeader to end-of-life (Sebastian Beltran) [#60635](https://github.com/nodejs/node/pull/60635)

  `http.Server.prototype.writeHeader()` is now fully removed. Use `http.Server.prototype.writeHead()` instead.

* \[[`c755b0113c`](https://github.com/nodejs/node/commit/c755b0113c)] - **(SEMVER-MAJOR)** **stream**: move \_stream\_\* to end-of-life (Sebastian Beltran) [#60657](https://github.com/nodejs/node/pull/60657)

  The legacy `_stream_wrap`, `_stream_readable`, `_stream_writable`, `_stream_duplex`, `_stream_transform`, and `_stream_passthrough` modules are now fully removed.

* \[[`adac077484`](https://github.com/nodejs/node/commit/adac077484)] - **(SEMVER-MAJOR)** **crypto**: runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) [#62453](https://github.com/nodejs/node/pull/62453)

* \[[`ac6375417a`](https://github.com/nodejs/node/commit/ac6375417a)] - **(SEMVER-MAJOR)** **stream**: promote DEP0201 to runtime deprecation (René) [#62173](https://github.com/nodejs/node/pull/62173)

* \[[`98907f560f`](https://github.com/nodejs/node/commit/98907f560f)] - **(SEMVER-MAJOR)** **module**: runtime-deprecate module.register() (Geoffrey Booth) [#62401](https://github.com/nodejs/node/pull/62401)

* \[[`89f4b6cddb`](https://github.com/nodejs/node/commit/89f4b6cddb)] - **(SEMVER-MAJOR)** **module**: remove --experimental-transform-types (Marco Ippolito) [#61803](https://github.com/nodejs/node/pull/61803)

### Semver-Major Commits

* \[[`d3f79aa65d`](https://github.com/nodejs/node/commit/d3f79aa65d)] - **(SEMVER-MAJOR)** **assert**: allow printf-style messages as assertion error (Ruben Bridgewater) [#58849](https://github.com/nodejs/node/pull/58849)
* \[[`f6ce381fec`](https://github.com/nodejs/node/commit/f6ce381fec)] - **(SEMVER-MAJOR)** **build**: bump GCC requirement to 13.2 (Michaël Zasso) [#62555](https://github.com/nodejs/node/pull/62555)
* \[[`bff81fca46`](https://github.com/nodejs/node/commit/bff81fca46)] - **(SEMVER-MAJOR)** **build**: enable Temporal by default (Richard Lau) [#61806](https://github.com/nodejs/node/pull/61806)
* \[[`6ddb1643e1`](https://github.com/nodejs/node/commit/6ddb1643e1)] - **(SEMVER-MAJOR)** **build**: enable V8\_VERIFY\_WRITE\_BARRIERS in debug build (Joyee Cheung) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`a8ab08b373`](https://github.com/nodejs/node/commit/a8ab08b373)] - **(SEMVER-MAJOR)** **build**: reset embedder string to "-node.0" (Michaël Zasso) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`0998c37eb6`](https://github.com/nodejs/node/commit/0998c37eb6)] - **(SEMVER-MAJOR)** **build**: target Power 9 for AIX/IBM i (Richard Lau) [#62296](https://github.com/nodejs/node/pull/62296)
* \[[`d73c49e849`](https://github.com/nodejs/node/commit/d73c49e849)] - **(SEMVER-MAJOR)** **build**: drop support for Python 3.9 (Mike McCready) [#61177](https://github.com/nodejs/node/pull/61177)
* \[[`3c92ee1008`](https://github.com/nodejs/node/commit/3c92ee1008)] - **(SEMVER-MAJOR)** **build**: enable maglev for Linux on s390x (Richard Lau) [#60863](https://github.com/nodejs/node/pull/60863)
* \[[`908c468828`](https://github.com/nodejs/node/commit/908c468828)] - **(SEMVER-MAJOR)** **build**: reset embedder string to "-node.0" (Michaël Zasso) [#60488](https://github.com/nodejs/node/pull/60488)
* \[[`6380fbb5ee`](https://github.com/nodejs/node/commit/6380fbb5ee)] - **(SEMVER-MAJOR)** **build**: reset embedder string to "-node.0" (Michaël Zasso) [#60111](https://github.com/nodejs/node/pull/60111)
* \[[`089d6c77e7`](https://github.com/nodejs/node/commit/089d6c77e7)] - **(SEMVER-MAJOR)** **(CVE-2026-21717)** **build,test**: test array index hash collision (Joyee Cheung) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`f9bd0165c4`](https://github.com/nodejs/node/commit/f9bd0165c4)] - **(SEMVER-MAJOR)** **build,win**: fix Temporal build (StefanStojanovic) [#61806](https://github.com/nodejs/node/pull/61806)
* \[[`6cc4cf8fe8`](https://github.com/nodejs/node/commit/6cc4cf8fe8)] - **(SEMVER-MAJOR)** **crypto**: unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) [#62499](https://github.com/nodejs/node/pull/62499)
* \[[`adac077484`](https://github.com/nodejs/node/commit/adac077484)] - **(SEMVER-MAJOR)** **crypto**: runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) [#62453](https://github.com/nodejs/node/pull/62453)
* \[[`74509b166a`](https://github.com/nodejs/node/commit/74509b166a)] - **(SEMVER-MAJOR)** **crypto**: decorate async crypto job errors with OpenSSL error details (Filip Skokan) [#62348](https://github.com/nodejs/node/pull/62348)
* \[[`da5843b91d`](https://github.com/nodejs/node/commit/da5843b91d)] - **(SEMVER-MAJOR)** **crypto**: default ML-KEM and ML-DSA pkcs8 export to seed-only format (Filip Skokan) [#62178](https://github.com/nodejs/node/pull/62178)
* \[[`dff46c07c3`](https://github.com/nodejs/node/commit/dff46c07c3)] - **(SEMVER-MAJOR)** **crypto**: move DEP0182 to End-of-Life (Tobias Nießen) [#61084](https://github.com/nodejs/node/pull/61084)
* \[[`94cd600542`](https://github.com/nodejs/node/commit/94cd600542)] - **(SEMVER-MAJOR)** **crypto**: fix DOMException name for non-extractable key error (Filip Skokan) [#60830](https://github.com/nodejs/node/pull/60830)
* \[[`dae2219cca`](https://github.com/nodejs/node/commit/dae2219cca)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick 0f024d4e66e0 (ishabi) [#62408](https://github.com/nodejs/node/pull/62408)
* \[[`15d406c1b1`](https://github.com/nodejs/node/commit/15d406c1b1)] - **(SEMVER-MAJOR)** **deps**: fix V8 race condition for AIX (Abdirahim Musse) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`46852d2d7a`](https://github.com/nodejs/node/commit/46852d2d7a)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick cd2c216e7658 (LuYahan) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`784431d6fc`](https://github.com/nodejs/node/commit/784431d6fc)] - **(SEMVER-MAJOR)** **deps**: V8: backport 088b7112e7ab (Igor Sheludko) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`3839c4a756`](https://github.com/nodejs/node/commit/3839c4a756)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick 00f6e834029f (Joyee Cheung) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`44f64f1dd9`](https://github.com/nodejs/node/commit/44f64f1dd9)] - **(SEMVER-MAJOR)** **deps**: V8: backport bef0d9c1bc90 (Joyee Cheung) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`1f8f288e22`](https://github.com/nodejs/node/commit/1f8f288e22)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick cf1bce40a5ef (Richard Lau) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`d7eccac9ad`](https://github.com/nodejs/node/commit/d7eccac9ad)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick daf4656ba85e (Milad Fa) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`3ee1ea7d0b`](https://github.com/nodejs/node/commit/3ee1ea7d0b)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick d83f479604c8 (Joyee Cheung) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`80907c0239`](https://github.com/nodejs/node/commit/80907c0239)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick edeb0a4fa181 (Joyee Cheung) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`5e0dc169e9`](https://github.com/nodejs/node/commit/5e0dc169e9)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick aa0b288f87cc (Richard Lau) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`8c1f7adbcd`](https://github.com/nodejs/node/commit/8c1f7adbcd)] - **(SEMVER-MAJOR)** **deps**: patch V8 to fix Windows build (StefanStojanovic) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`3cbd3404d9`](https://github.com/nodejs/node/commit/3cbd3404d9)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick highway\@989a498fdf3 (Richard Lau) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`9f2b7d4031`](https://github.com/nodejs/node/commit/9f2b7d4031)] - **(SEMVER-MAJOR)** **deps**: support madvise(3C) across ALL illumos revisions (Dan McDonald) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`947ec32118`](https://github.com/nodejs/node/commit/947ec32118)] - **(SEMVER-MAJOR)** **deps**: patch V8 for illumos (Dan McDonald) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`0660b942b2`](https://github.com/nodejs/node/commit/0660b942b2)] - **(SEMVER-MAJOR)** **deps**: remove problematic comment from v8-internal (Michaël Zasso) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`bef7b31a3f`](https://github.com/nodejs/node/commit/bef7b31a3f)] - **(SEMVER-MAJOR)** **deps**: define V8\_PRESERVE\_MOST as no-op on Windows (Stefan Stojanovic) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`a10bf1e6ce`](https://github.com/nodejs/node/commit/a10bf1e6ce)] - **(SEMVER-MAJOR)** **deps**: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`cc547428e1`](https://github.com/nodejs/node/commit/cc547428e1)] - **(SEMVER-MAJOR)** **deps**: update V8 to 14.6.202.33 (Michaël Zasso) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`b81d2cbcae`](https://github.com/nodejs/node/commit/b81d2cbcae)] - **(SEMVER-MAJOR)** **deps**: update undici to 8.0.2 (Node.js GitHub Bot) [#62384](https://github.com/nodejs/node/pull/62384)
* \[[`bf5c6a8bd4`](https://github.com/nodejs/node/commit/bf5c6a8bd4)] - **(SEMVER-MAJOR)** **deps**: V8: backport 151d0a44a1b2 (Abdirahim Musse) [#60488](https://github.com/nodejs/node/pull/60488)
* \[[`b59af772dc`](https://github.com/nodejs/node/commit/b59af772dc)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick 47800791b35c (Jakob Kummerow) [#60488](https://github.com/nodejs/node/pull/60488)
* \[[`5e41e5228a`](https://github.com/nodejs/node/commit/5e41e5228a)] - **(SEMVER-MAJOR)** **deps**: patch V8 for illumos (Dan McDonald) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`2243e58e43`](https://github.com/nodejs/node/commit/2243e58e43)] - **(SEMVER-MAJOR)** **deps**: use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) [#58070](https://github.com/nodejs/node/pull/58070)
* \[[`4157964c42`](https://github.com/nodejs/node/commit/4157964c42)] - **(SEMVER-MAJOR)** **deps**: remove problematic comment from v8-internal (Michaël Zasso) [#58070](https://github.com/nodejs/node/pull/58070)
* \[[`7c8483a4e9`](https://github.com/nodejs/node/commit/7c8483a4e9)] - **(SEMVER-MAJOR)** **deps**: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) [#54077](https://github.com/nodejs/node/pull/54077)
* \[[`53379f3706`](https://github.com/nodejs/node/commit/53379f3706)] - **(SEMVER-MAJOR)** **deps**: update V8 to 14.3.127.12 (Michaël Zasso) [#60488](https://github.com/nodejs/node/pull/60488)
* \[[`f819aec288`](https://github.com/nodejs/node/commit/f819aec288)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick ff34ae20c8e3 (Chengzhong Wu) [#60111](https://github.com/nodejs/node/pull/60111)
* \[[`1acd8df36f`](https://github.com/nodejs/node/commit/1acd8df36f)] - **(SEMVER-MAJOR)** **deps**: V8: backport fed47445bbdd (Abdirahim Musse) [#60111](https://github.com/nodejs/node/pull/60111)
* \[[`46f72577a4`](https://github.com/nodejs/node/commit/46f72577a4)] - **(SEMVER-MAJOR)** **deps**: patch V8 for illumos (Dan McDonald) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`39eb88eaa8`](https://github.com/nodejs/node/commit/39eb88eaa8)] - **(SEMVER-MAJOR)** **deps**: use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) [#58070](https://github.com/nodejs/node/pull/58070)
* \[[`ea3d14eadb`](https://github.com/nodejs/node/commit/ea3d14eadb)] - **(SEMVER-MAJOR)** **deps**: remove problematic comment from v8-internal (Michaël Zasso) [#58070](https://github.com/nodejs/node/pull/58070)
* \[[`7bc0f245b4`](https://github.com/nodejs/node/commit/7bc0f245b4)] - **(SEMVER-MAJOR)** **deps**: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) [#54077](https://github.com/nodejs/node/pull/54077)
* \[[`c2843b722c`](https://github.com/nodejs/node/commit/c2843b722c)] - **(SEMVER-MAJOR)** **deps**: update V8 to 14.2.231.9 (Michaël Zasso) [#60111](https://github.com/nodejs/node/pull/60111)
* \[[`b4ea323833`](https://github.com/nodejs/node/commit/b4ea323833)] - **(SEMVER-MAJOR)** **diagnostics\_channel**: ensure tracePromise consistency with non-Promises (René) [#61766](https://github.com/nodejs/node/pull/61766)
* \[[`0c08835f71`](https://github.com/nodejs/node/commit/0c08835f71)] - **(SEMVER-MAJOR)** **doc**: remove extensionless CJS exception for type:module packages (Matteo Collina) [#62176](https://github.com/nodejs/node/pull/62176)
* \[[`ef0f0b0865`](https://github.com/nodejs/node/commit/ef0f0b0865)] - **(SEMVER-MAJOR)** **doc**: update supported Windows SDK version to 11 (Mike McCready) [#61973](https://github.com/nodejs/node/pull/61973)
* \[[`a00d95c73d`](https://github.com/nodejs/node/commit/a00d95c73d)] - **(SEMVER-MAJOR)** **doc**: drop p8 and z13 support (Milad Fa) [#61005](https://github.com/nodejs/node/pull/61005)
* \[[`93c25815ee`](https://github.com/nodejs/node/commit/93c25815ee)] - **(SEMVER-MAJOR)** **http**: move writeHeader to end-of-life (Sebastian Beltran) [#60635](https://github.com/nodejs/node/pull/60635)
* \[[`4346c0f7a7`](https://github.com/nodejs/node/commit/4346c0f7a7)] - **(SEMVER-MAJOR)** **http**: fix handling of HTTP upgrades with bodies (Tim Perry) [#60016](https://github.com/nodejs/node/pull/60016)
* \[[`fa70327610`](https://github.com/nodejs/node/commit/fa70327610)] - **(SEMVER-MAJOR)** **lib**: return undefined for localStorage without file (Matteo Collina) [#61333](https://github.com/nodejs/node/pull/61333)
* \[[`b328bf74bd`](https://github.com/nodejs/node/commit/b328bf74bd)] - **(SEMVER-MAJOR)** **lib,src**: implement QuotaExceededError as DOMException-derived interface (Filip Skokan) [#62293](https://github.com/nodejs/node/pull/62293)
* \[[`98907f560f`](https://github.com/nodejs/node/commit/98907f560f)] - **(SEMVER-MAJOR)** **module**: runtime-deprecate module.register() (Geoffrey Booth) [#62401](https://github.com/nodejs/node/pull/62401)
* \[[`89f4b6cddb`](https://github.com/nodejs/node/commit/89f4b6cddb)] - **(SEMVER-MAJOR)** **module**: remove --experimental-transform-types (Marco Ippolito) [#61803](https://github.com/nodejs/node/pull/61803)
* \[[`5334433437`](https://github.com/nodejs/node/commit/5334433437)] - **(SEMVER-MAJOR)** **src**: replace uses of deprecated v8::External APIs (gahaas) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`46e75f4874`](https://github.com/nodejs/node/commit/46e75f4874)] - **(SEMVER-MAJOR)** **src**: stop using `v8::PropertyCallbackInfo<T>::This()` (Igor Sheludko) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`54fefda0aa`](https://github.com/nodejs/node/commit/54fefda0aa)] - **(SEMVER-MAJOR)** **src**: avoid deprecated Wasm API (Clemens Backes) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`840f509bd1`](https://github.com/nodejs/node/commit/840f509bd1)] - **(SEMVER-MAJOR)** **src**: avoid deprecated `FixedArray::Get` (Clemens Backes) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`75c3bcc3ec`](https://github.com/nodejs/node/commit/75c3bcc3ec)] - **(SEMVER-MAJOR)** **src**: update NODE\_MODULE\_VERSION to 147 (Michaël Zasso) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`8480f87375`](https://github.com/nodejs/node/commit/8480f87375)] - **(SEMVER-MAJOR)** **src**: remove deprecated and unused isolate fields (Michaël Zasso) [#60488](https://github.com/nodejs/node/pull/60488)
* \[[`70b6bd8e19`](https://github.com/nodejs/node/commit/70b6bd8e19)] - **(SEMVER-MAJOR)** **src**: update NODE\_MODULE\_VERSION to 144 (Michaël Zasso) [#60488](https://github.com/nodejs/node/pull/60488)
* \[[`7d2bc5249b`](https://github.com/nodejs/node/commit/7d2bc5249b)] - **(SEMVER-MAJOR)** **src**: include `node_api_types.h` instead of `node_api.h` in `node.h` (Anna Henningsen) [#60496](https://github.com/nodejs/node/pull/60496)
* \[[`91ab1101bc`](https://github.com/nodejs/node/commit/91ab1101bc)] - **(SEMVER-MAJOR)** **src**: update NODE\_MODULE\_VERSION to 142 (Michaël Zasso) [#60111](https://github.com/nodejs/node/pull/60111)
* \[[`ac6375417a`](https://github.com/nodejs/node/commit/ac6375417a)] - **(SEMVER-MAJOR)** **stream**: promote DEP0201 to runtime deprecation (René) [#62173](https://github.com/nodejs/node/pull/62173)
* \[[`c755b0113c`](https://github.com/nodejs/node/commit/c755b0113c)] - **(SEMVER-MAJOR)** **stream**: move \_stream\_\* to end-of-life (Sebastian Beltran) [#60657](https://github.com/nodejs/node/pull/60657)
* \[[`fadb214d95`](https://github.com/nodejs/node/commit/fadb214d95)] - **(SEMVER-MAJOR)** **stream**: readable read one buffer at a time (Robert Nagy) [#60441](https://github.com/nodejs/node/pull/60441)
* \[[`4fe325d93d`](https://github.com/nodejs/node/commit/4fe325d93d)] - **(SEMVER-MAJOR)** **stream**: preserve AsyncLocalStorage on finished only when needed (avcribl) [#59873](https://github.com/nodejs/node/pull/59873)
* \[[`7682e7e9c5`](https://github.com/nodejs/node/commit/7682e7e9c5)] - **(SEMVER-MAJOR)** **test**: skip wasm allocation tests in workers (Michaël Zasso) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`ebfaf25870`](https://github.com/nodejs/node/commit/ebfaf25870)] - **(SEMVER-MAJOR)** **test**: update wpt Wasm jsapi expectations (Michaël Zasso) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`ece6a17574`](https://github.com/nodejs/node/commit/ece6a17574)] - **(SEMVER-MAJOR)** **test**: support presence of Temporal global (Michaël Zasso) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`75b8d7a912`](https://github.com/nodejs/node/commit/75b8d7a912)] - **(SEMVER-MAJOR)** **test**: add type tags to uses of v8::External (gahaas) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`092a448ad0`](https://github.com/nodejs/node/commit/092a448ad0)] - **(SEMVER-MAJOR)** **test**: fix test-linux-perf-logger for V8 14.3 (Michaël Zasso) [#60488](https://github.com/nodejs/node/pull/60488)
* \[[`8eb9c8f794`](https://github.com/nodejs/node/commit/8eb9c8f794)] - **(SEMVER-MAJOR)** **tools**: remove v8\_initializers\_slow workaround from v8.gyp (Michaël Zasso) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`a34fe77fe7`](https://github.com/nodejs/node/commit/a34fe77fe7)] - **(SEMVER-MAJOR)** **tools**: add Rust args to `tools/make-v8.sh` (Richard Lau) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`f4666bd6e3`](https://github.com/nodejs/node/commit/f4666bd6e3)] - **(SEMVER-MAJOR)** **tools**: update V8 gypfiles for 14.6 (Michaël Zasso) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`3c23d217a6`](https://github.com/nodejs/node/commit/3c23d217a6)] - **(SEMVER-MAJOR)** **tools**: update V8 gypfiles for 14.5 (Michaël Zasso) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`e508489e37`](https://github.com/nodejs/node/commit/e508489e37)] - **(SEMVER-MAJOR)** **tools**: update V8 gypfiles for 14.4 (Michaël Zasso) [#61898](https://github.com/nodejs/node/pull/61898)
* \[[`dc97b507d0`](https://github.com/nodejs/node/commit/dc97b507d0)] - **(SEMVER-MAJOR)** **util**: mark proxied objects as such when inspecting them (Ruben Bridgewater) [#61029](https://github.com/nodejs/node/pull/61029)
* \[[`ddbe1365ff`](https://github.com/nodejs/node/commit/ddbe1365ff)] - **(SEMVER-MAJOR)** **util**: reduce TextEncoder.encodeInto function size (Yagiz Nizipli) [#60339](https://github.com/nodejs/node/pull/60339)

### Semver-Minor Commits

* \[[`d4fa60cf9f`](https://github.com/nodejs/node/commit/d4fa60cf9f)] - **(SEMVER-MINOR)** **crypto**: add raw key formats support to the KeyObject APIs (Filip Skokan) [#62240](https://github.com/nodejs/node/pull/62240)

### Semver-Patch Commits

* \[[`4d8834fbef`](https://github.com/nodejs/node/commit/4d8834fbef)] - **build**: add rust target for macOS cross compiles (Richard Lau) [#63015](https://github.com/nodejs/node/pull/63015)
* \[[`a4edab8dfb`](https://github.com/nodejs/node/commit/a4edab8dfb)] - **build**: use `CARGO` environment variable if set (Richard Lau) [#62421](https://github.com/nodejs/node/pull/62421)
* \[[`ecf8721076`](https://github.com/nodejs/node/commit/ecf8721076)] - **build**: add weak symbol detection to export script (Abdirahim Musse) [#62656](https://github.com/nodejs/node/pull/62656)
* \[[`5b9f811662`](https://github.com/nodejs/node/commit/5b9f811662)] - **build**: filter hidden visibility symbols on AIX (Abdirahim Musse) [#62656](https://github.com/nodejs/node/pull/62656)
* \[[`2e724793e6`](https://github.com/nodejs/node/commit/2e724793e6)] - **build**: aix add conditonal flags for clang builds (Abdirahim Musse) [#62656](https://github.com/nodejs/node/pull/62656)
* \[[`f212aee483`](https://github.com/nodejs/node/commit/f212aee483)] - **build**: enable temporal on GHA macOS build (Chengzhong Wu) [#61691](https://github.com/nodejs/node/pull/61691)
* \[[`159ae48f8c`](https://github.com/nodejs/node/commit/159ae48f8c)] - **build**: add `cargo` and `rustc` checks for Temporal (Richard Lau) [#61467](https://github.com/nodejs/node/pull/61467)
* \[[`a004535617`](https://github.com/nodejs/node/commit/a004535617)] - **build**: add temporal to linux GHA build (Chengzhong Wu) [#60942](https://github.com/nodejs/node/pull/60942)
* \[[`9df9b66c18`](https://github.com/nodejs/node/commit/9df9b66c18)] - **crypto**: add support for Ed25519 context parameter (Filip Skokan) [#62474](https://github.com/nodejs/node/pull/62474)
* \[[`c3042c605b`](https://github.com/nodejs/node/commit/c3042c605b)] - **crypto**: recognize raw formats in keygen (Filip Skokan) [#62480](https://github.com/nodejs/node/pull/62480)
* \[[`ce0f498def`](https://github.com/nodejs/node/commit/ce0f498def)] - **deps**: V8: cherry-pick fcf8b990c73c (Abdirahim Musse) [#62894](https://github.com/nodejs/node/pull/62894)
* \[[`b7fab70d56`](https://github.com/nodejs/node/commit/b7fab70d56)] - _**Revert**_ "**deps**: V8: cherry-pick 7107287" (Richard Lau) [#62894](https://github.com/nodejs/node/pull/62894)
* \[[`d936c30fb4`](https://github.com/nodejs/node/commit/d936c30fb4)] - **deps**: V8: cherry-pick 7107287 (Abdirahim Musse) [#62656](https://github.com/nodejs/node/pull/62656)
* \[[`c91d00b6d4`](https://github.com/nodejs/node/commit/c91d00b6d4)] - **deps**: fix aix implicit declaration in OpenSSL (Abdirahim Musse) [#62656](https://github.com/nodejs/node/pull/62656)
* \[[`0474a27c06`](https://github.com/nodejs/node/commit/0474a27c06)] - **deps**: libuv: revert 3a9a6e3e6b (Antoine du Hamel) [#62511](https://github.com/nodejs/node/pull/62511)
* \[[`7547e795ef`](https://github.com/nodejs/node/commit/7547e795ef)] - **deps**: update icu to 78.3 (Node.js GitHub Bot) [#62324](https://github.com/nodejs/node/pull/62324)
* \[[`5bebd7eaea`](https://github.com/nodejs/node/commit/5bebd7eaea)] - **deps**: update libuv to 1.52.1 (Node.js GitHub Bot) [#61829](https://github.com/nodejs/node/pull/61829)
* \[[`87d7db1918`](https://github.com/nodejs/node/commit/87d7db1918)] - **deps**: patch V8 to 14.3.127.18 (Node.js GitHub Bot) [#61421](https://github.com/nodejs/node/pull/61421)
* \[[`9d27d9a393`](https://github.com/nodejs/node/commit/9d27d9a393)] - **deps**: patch V8 to 14.3.127.17 (Node.js GitHub Bot) [#61058](https://github.com/nodejs/node/pull/61058)
* \[[`bfc729cf19`](https://github.com/nodejs/node/commit/bfc729cf19)] - **deps**: patch V8 to 14.3.127.16 (Node.js GitHub Bot) [#60819](https://github.com/nodejs/node/pull/60819)
* \[[`8716146d5b`](https://github.com/nodejs/node/commit/8716146d5b)] - **deps**: patch V8 to 14.3.127.14 (Node.js GitHub Bot) [#60743](https://github.com/nodejs/node/pull/60743)
* \[[`da71ab6895`](https://github.com/nodejs/node/commit/da71ab6895)] - **deps**: V8: cherry-pick highway\@989a498fdf3 (Richard Lau) [#60682](https://github.com/nodejs/node/pull/60682)
* \[[`72d719dc00`](https://github.com/nodejs/node/commit/72d719dc00)] - **deps**: support madvise(3C) across ALL illumos revisions (Dan McDonald) [#58237](https://github.com/nodejs/node/pull/58237)
* \[[`ecca2b0d64`](https://github.com/nodejs/node/commit/ecca2b0d64)] - **deps**: define V8\_PRESERVE\_MOST as no-op on Windows (Stefan Stojanovic) [#56238](https://github.com/nodejs/node/pull/56238)
* \[[`baefd4d5e2`](https://github.com/nodejs/node/commit/baefd4d5e2)] - **deps**: patch V8 to 14.2.231.17 (Node.js GitHub Bot) [#60647](https://github.com/nodejs/node/pull/60647)
* \[[`76d6be5fc5`](https://github.com/nodejs/node/commit/76d6be5fc5)] - **deps**: patch V8 to 14.2.231.16 (Node.js GitHub Bot) [#60544](https://github.com/nodejs/node/pull/60544)
* \[[`e0ca993514`](https://github.com/nodejs/node/commit/e0ca993514)] - **deps**: patch V8 to 14.2.231.14 (Node.js GitHub Bot) [#60413](https://github.com/nodejs/node/pull/60413)
* \[[`de8386de4d`](https://github.com/nodejs/node/commit/de8386de4d)] - **deps**: V8: cherry-pick f93055fbd5aa (Olivier Flückiger) [#60105](https://github.com/nodejs/node/pull/60105)
* \[[`710105bab5`](https://github.com/nodejs/node/commit/710105bab5)] - **deps**: support madvise(3C) across ALL illumos revisions (Dan McDonald) [#58237](https://github.com/nodejs/node/pull/58237)
* \[[`6e5f3b9fe1`](https://github.com/nodejs/node/commit/6e5f3b9fe1)] - **deps**: define V8\_PRESERVE\_MOST as no-op on Windows (Stefan Stojanovic) [#56238](https://github.com/nodejs/node/pull/56238)
* \[[`b2c5235254`](https://github.com/nodejs/node/commit/b2c5235254)] - **doc**: fix stray carriage return in packages.md (Filip Skokan) [#62350](https://github.com/nodejs/node/pull/62350)
* \[[`f38a739623`](https://github.com/nodejs/node/commit/f38a739623)] - **doc**: reserve NMV 146 for Electron 42 (Niklas Wenzel) [#62124](https://github.com/nodejs/node/pull/62124)
* \[[`a57893b799`](https://github.com/nodejs/node/commit/a57893b799)] - **doc**: add Temporal section to Table of Contents (Richard Lau) [#61805](https://github.com/nodejs/node/pull/61805)
* \[[`d4cc54b8c8`](https://github.com/nodejs/node/commit/d4cc54b8c8)] - **doc**: fix v24 changelog after security release (Marco Ippolito) [#61371](https://github.com/nodejs/node/pull/61371)
* \[[`659fd01b3e`](https://github.com/nodejs/node/commit/659fd01b3e)] - **doc**: fix v22 changelog after security release (Marco Ippolito) [#61371](https://github.com/nodejs/node/pull/61371)
* \[[`6c96a63891`](https://github.com/nodejs/node/commit/6c96a63891)] - **doc**: fix v20 changelog after security release (Marco Ippolito) [#61371](https://github.com/nodejs/node/pull/61371)
* \[[`a18f8c1693`](https://github.com/nodejs/node/commit/a18f8c1693)] - **doc**: reserve NMV 145 for Electron 41 (Niklas Wenzel) [#61291](https://github.com/nodejs/node/pull/61291)
* \[[`253b16fe14`](https://github.com/nodejs/node/commit/253b16fe14)] - **doc**: add note about rust toolchain version requirement (Chengzhong Wu) [#60942](https://github.com/nodejs/node/pull/60942)
* \[[`0177491df2`](https://github.com/nodejs/node/commit/0177491df2)] - **doc**: restore REPLACEME on assert change (Michaël Zasso) [#60848](https://github.com/nodejs/node/pull/60848)
* \[[`dec0213c83`](https://github.com/nodejs/node/commit/dec0213c83)] - **doc**: add known issue to v24.11.0 release notes (Richard Lau) [#60467](https://github.com/nodejs/node/pull/60467)
* \[[`f7ca0ae765`](https://github.com/nodejs/node/commit/f7ca0ae765)] - **doc**: remove Corepack documentation page (Antoine du Hamel) [#57663](https://github.com/nodejs/node/pull/57663)
* \[[`a7d9c49490`](https://github.com/nodejs/node/commit/a7d9c49490)] - **doc**: reserve NMV 143 for Electron 40 (Shelley Vohr) [#60386](https://github.com/nodejs/node/pull/60386)
* \[[`04a086a1f4`](https://github.com/nodejs/node/commit/04a086a1f4)] - **esm**: use wasm version of cjs-module-lexer (Joyee Cheung) [#60663](https://github.com/nodejs/node/pull/60663)
* \[[`a27052f2e0`](https://github.com/nodejs/node/commit/a27052f2e0)] - _**Revert**_ "**inspector**: fix compressed responses" (Antoine du Hamel) [#61502](https://github.com/nodejs/node/pull/61502)
* \[[`186c7a9c74`](https://github.com/nodejs/node/commit/186c7a9c74)] - **inspector**: fix compressed responses (Ruben Nogueira) [#61226](https://github.com/nodejs/node/pull/61226)
* \[[`012bf70908`](https://github.com/nodejs/node/commit/012bf70908)] - **process**: optimize asyncHandledRejections by using FixedQueue (Gürgün Dayıoğlu) [#60854](https://github.com/nodejs/node/pull/60854)
* \[[`1a88acbfa2`](https://github.com/nodejs/node/commit/1a88acbfa2)] - **quic**: fixup linting/formatting issues (James M Snell) [#62387](https://github.com/nodejs/node/pull/62387)
* \[[`79b960a2bc`](https://github.com/nodejs/node/commit/79b960a2bc)] - **quic**: update http3 impl details (James M Snell) [#62387](https://github.com/nodejs/node/pull/62387)
* \[[`57186e5827`](https://github.com/nodejs/node/commit/57186e5827)] - **quic**: fix a handful of bugs and missing functionality (James M Snell) [#62387](https://github.com/nodejs/node/pull/62387)
* \[[`637bda0238`](https://github.com/nodejs/node/commit/637bda0238)] - **sqlite**: enable Percentile extension (Jurj Andrei George) [#61295](https://github.com/nodejs/node/pull/61295)
* \[[`e619adfb86`](https://github.com/nodejs/node/commit/e619adfb86)] - **src**: workaround AIX libc++ std::filesystem bug (Richard Lau) [#62788](https://github.com/nodejs/node/pull/62788)
* \[[`79262ff860`](https://github.com/nodejs/node/commit/79262ff860)] - **src**: do not enable wasm trap handler if there's not enough vmem (Joyee Cheung) [#62132](https://github.com/nodejs/node/pull/62132)
* \[[`2422ed8b5b`](https://github.com/nodejs/node/commit/2422ed8b5b)] - **src**: remove redundant `experimental_transform_types` from node\_options.h (沈鸿飞) [#62058](https://github.com/nodejs/node/pull/62058)
* \[[`a86db6be70`](https://github.com/nodejs/node/commit/a86db6be70)] - **src**: simplify handling of kNoAuthTagLength (Tobias Nießen) [#61192](https://github.com/nodejs/node/pull/61192)
* \[[`d546e7fd0b`](https://github.com/nodejs/node/commit/d546e7fd0b)] - **src**: tag more v8 aligned pointer slots (Chengzhong Wu) [#60666](https://github.com/nodejs/node/pull/60666)
* \[[`b8e264d3c3`](https://github.com/nodejs/node/commit/b8e264d3c3)] - **src**: tag v8 aligned pointer slots with embedder data type tags (Chengzhong Wu) [#60602](https://github.com/nodejs/node/pull/60602)
* \[[`cd391b5f11`](https://github.com/nodejs/node/commit/cd391b5f11)] - **test**: wpt for Wasm jsapi including new ESM Integration tests (Guy Bedford) [#59034](https://github.com/nodejs/node/pull/59034)
* \[[`1baafcc882`](https://github.com/nodejs/node/commit/1baafcc882)] - **test**: update WPT resources, interfaces and WebCryptoAPI (Node.js GitHub Bot) [#62389](https://github.com/nodejs/node/pull/62389)
* \[[`6a84d4a17c`](https://github.com/nodejs/node/commit/6a84d4a17c)] - **tools**: update nixpkgs-unstable to 832efc09b4caf6b4569fbf9dc01bec3082a (Node.js GitHub Bot) [#62486](https://github.com/nodejs/node/pull/62486)
* \[[`a98d9f6ad7`](https://github.com/nodejs/node/commit/a98d9f6ad7)] - **tools**: update nixpkgs-unstable to 9cf7092bdd603554bd8b63c216e8943cf9b (Node.js GitHub Bot) [#62383](https://github.com/nodejs/node/pull/62383)
* \[[`f6d02af01f`](https://github.com/nodejs/node/commit/f6d02af01f)] - **tools**: update nixpkgs-unstable to f82ce7af0b79ac154b12e27ed800aeb9741 (Node.js GitHub Bot) [#62258](https://github.com/nodejs/node/pull/62258)
* \[[`5b5f069a27`](https://github.com/nodejs/node/commit/5b5f069a27)] - **tools**: bump nixpkgs-unstable pin to e38213b91d3786389a446dfce4ff5a8aaf6 (Node.js GitHub Bot) [#62052](https://github.com/nodejs/node/pull/62052)
* \[[`13eb80f3b7`](https://github.com/nodejs/node/commit/13eb80f3b7)] - **tools**: update nixpkgs-unstable to d1c15b7d5806069da59e819999d70e1cec0 (Node.js GitHub Bot) [#61931](https://github.com/nodejs/node/pull/61931)
* \[[`4d1557a744`](https://github.com/nodejs/node/commit/4d1557a744)] - **tools**: update nixpkgs-unstable to 2343bbb58f99267223bc2aac4fc9ea301a1 (Node.js GitHub Bot) [#61831](https://github.com/nodejs/node/pull/61831)
* \[[`ecd979c95a`](https://github.com/nodejs/node/commit/ecd979c95a)] - **tools**: update nixpkgs-unstable to ae67888ff7ef9dff69b3cf0cc0fbfbcd3a7 (Node.js GitHub Bot) [#61733](https://github.com/nodejs/node/pull/61733)
* \[[`7de56bdee2`](https://github.com/nodejs/node/commit/7de56bdee2)] - **tools**: update nixpkgs-unstable to 6308c3b21396534d8aaeac46179c14c439a (Node.js GitHub Bot) [#61606](https://github.com/nodejs/node/pull/61606)
* \[[`e33ce7a6fe`](https://github.com/nodejs/node/commit/e33ce7a6fe)] - **tools**: update nixpkgs-unstable to ab9fbbcf4858bd6d40ba2bbec37ceb4ab6e (Node.js GitHub Bot) [#61513](https://github.com/nodejs/node/pull/61513)
* \[[`ba05a66774`](https://github.com/nodejs/node/commit/ba05a66774)] - **tools**: update nixpkgs-unstable to be5afa0fcb31f0a96bf9ecba05a516c66fc (Node.js GitHub Bot) [#61420](https://github.com/nodejs/node/pull/61420)
* \[[`bb5d066989`](https://github.com/nodejs/node/commit/bb5d066989)] - **tools**: update nixpkgs-unstable to 3146c6aa9995e7351a398e17470e15305e6 (Node.js GitHub Bot) [#61340](https://github.com/nodejs/node/pull/61340)
* \[[`d050aa87e8`](https://github.com/nodejs/node/commit/d050aa87e8)] - **tools**: update nixpkgs-unstable to 16c7794d0a28b5a37904d55bcca36003b91 (Node.js GitHub Bot) [#61272](https://github.com/nodejs/node/pull/61272)
* \[[`2696391b18`](https://github.com/nodejs/node/commit/2696391b18)] - **tools**: update nixpkgs-unstable to 3edc4a30ed3903fdf6f90c837f961fa6b49 (Node.js GitHub Bot) [#61188](https://github.com/nodejs/node/pull/61188)
* \[[`c5d3f5f9c8`](https://github.com/nodejs/node/commit/c5d3f5f9c8)] - **tools**: update nixpkgs-unstable to 7d853e518814cca2a657b72eeba67ae20eb (Node.js GitHub Bot) [#61137](https://github.com/nodejs/node/pull/61137)
* \[[`dcb9573d0f`](https://github.com/nodejs/node/commit/dcb9573d0f)] - **tools**: update nixpkgs-unstable to f997fa0f94fb1ce55bccb97f60d41412ae8 (Node.js GitHub Bot) [#61057](https://github.com/nodejs/node/pull/61057)
* \[[`bd426739dc`](https://github.com/nodejs/node/commit/bd426739dc)] - **tools**: update nixpkgs-unstable to a672be65651c80d3f592a89b3945466584a (Node.js GitHub Bot) [#60980](https://github.com/nodejs/node/pull/60980)
* \[[`85852a3221`](https://github.com/nodejs/node/commit/85852a3221)] - **tools**: update nixpkgs-unstable to 59b6c96beacc898566c9be1052ae806f383 (Node.js GitHub Bot) [#60900](https://github.com/nodejs/node/pull/60900)
* \[[`1e7eb90b39`](https://github.com/nodejs/node/commit/1e7eb90b39)] - **tools**: update nixpkgs-unstable to a8d610af3f1a5fb71e23e08434d8d61a466 (Node.js GitHub Bot) [#60818](https://github.com/nodejs/node/pull/60818)
* \[[`fb6b83c9ef`](https://github.com/nodejs/node/commit/fb6b83c9ef)] - **tools**: lint Temporal global (René) [#60793](https://github.com/nodejs/node/pull/60793)
* \[[`adb40439ca`](https://github.com/nodejs/node/commit/adb40439ca)] - **tools**: update nixpkgs-unstable to 71cf367cc2c168b0c2959835659c38f0a34 (Node.js GitHub Bot) [#60742](https://github.com/nodejs/node/pull/60742)
* \[[`8a76958005`](https://github.com/nodejs/node/commit/8a76958005)] - **tools**: update nixpkgs-unstable to ffcdcf99d65c61956d882df249a9be53e59 (Node.js GitHub Bot) [#60315](https://github.com/nodejs/node/pull/60315)
* \[[`9120924de1`](https://github.com/nodejs/node/commit/9120924de1)] - **util**: fix nested proxy inspection (Ruben Bridgewater) [#61077](https://github.com/nodejs/node/pull/61077)
