# Node.js 25 ChangeLog

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

<table>
<tr>
<th>Current</th>
</tr>
<tr>
<td>
<a href="#25.9.0">25.9.0</a><br/>
<a href="#25.8.2">25.8.2</a><br/>
<a href="#25.8.1">25.8.1</a><br/>
<a href="#25.8.0">25.8.0</a><br/>
<a href="#25.7.0">25.7.0</a><br/>
<a href="#25.6.1">25.6.1</a><br/>
<a href="#25.6.0">25.6.0</a><br/>
<a href="#25.5.0">25.5.0</a><br/>
<a href="#25.4.0">25.4.0</a><br/>
<a href="#25.3.0">25.3.0</a><br/>
<a href="#25.2.1">25.2.1</a><br/>
<a href="#25.2.0">25.2.0</a><br/>
<a href="#25.1.0">25.1.0</a><br/>
<a href="#25.0.0">25.0.0</a><br/>
</td>
</tr>
</table>

* Other Versions
  * [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="25.9.0"></a>

## 2026-04-01, Version 25.9.0 (Current), @aduh95

### Notable Changes

#### Test runner module mocking improvements

`MockModuleOptions.defaultExport` and `MockModuleOptions.namedExports` have been
consolidated into a single option `MockModuleOptions.exports` to align with user
expectations and other test runners.

A `default` property on `MockModuleOptions.exports`  represents the default
export, and own enumerable properties are treated as named exports.

An automated migration is available to update user code:
<https://github.com/nodejs/userland-migrations/tree/main/recipes/mock-module-exports>

```bash
npx codemod @nodejs/mock-module-exports
```

Contributed by sangwook in [#61727](https://github.com/nodejs/node/pull/61727).

#### Other notable changes

* \[[`312476cb84`](https://github.com/nodejs/node/commit/312476cb84)] - **(SEMVER-MINOR)** **async\_hooks**: add using scopes to `AsyncLocalStorage` (Stephen Belanger) [#61674](https://github.com/nodejs/node/pull/61674)
* \[[`62d2cd473b`](https://github.com/nodejs/node/commit/62d2cd473b)] - **(SEMVER-MINOR)** **cli**: add `--max-heap-size` option (tannal) [#58708](https://github.com/nodejs/node/pull/58708)
* \[[`d0ebf0e44b`](https://github.com/nodejs/node/commit/d0ebf0e44b)] - **(SEMVER-MINOR)** **crypto**: add `TurboSHAKE` and `KangarooTwelve` Web Cryptography algorithms (Filip Skokan) [#62183](https://github.com/nodejs/node/pull/62183)
* \[[`f85b9d9fa8`](https://github.com/nodejs/node/commit/f85b9d9fa8)] - **(SEMVER-MINOR)** **repl**: add customizable error handling (Anna Henningsen) [#62188](https://github.com/nodejs/node/pull/62188)
* \[[`67b854d407`](https://github.com/nodejs/node/commit/67b854d407)] - **(SEMVER-MINOR)** **repl**: remove dependency on `node:domain` (Matteo Collina) [#61227](https://github.com/nodejs/node/pull/61227)
* \[[`966b700623`](https://github.com/nodejs/node/commit/966b700623)] - **(SEMVER-MINOR)** **sea**: support code cache for ESM entrypoint in SEA (Joyee Cheung) [#62158](https://github.com/nodejs/node/pull/62158)
* \[[`e1f0d2a014`](https://github.com/nodejs/node/commit/e1f0d2a014)] - **(SEMVER-MINOR)** **stream**: add stream/iter Implementation (James M Snell) [#62066](https://github.com/nodejs/node/pull/62066)

### Commits

* \[[`312476cb84`](https://github.com/nodejs/node/commit/312476cb84)] - **(SEMVER-MINOR)** **async\_hooks**: add using scopes to AsyncLocalStorage (Stephen Belanger) [#61674](https://github.com/nodejs/node/pull/61674)
* \[[`bfff8cb2ab`](https://github.com/nodejs/node/commit/bfff8cb2ab)] - **(SEMVER-MINOR)** **benchmark**: add benchmarks for experimental stream/iter (James M Snell) [#62066](https://github.com/nodejs/node/pull/62066)
* \[[`c721d68502`](https://github.com/nodejs/node/commit/c721d68502)] - **benchmark**: fix destructuring in dgram/single-buffer (Ali Hassan) [#62084](https://github.com/nodejs/node/pull/62084)
* \[[`e2f03c8e92`](https://github.com/nodejs/node/commit/e2f03c8e92)] - **buffer**: improve performance of multiple Buffer operations (Ali Hassan) [#61871](https://github.com/nodejs/node/pull/61871)
* \[[`2fcd07f1ba`](https://github.com/nodejs/node/commit/2fcd07f1ba)] - **build**: support empty libname flags in `configure.py` (Antoine du Hamel) [#62477](https://github.com/nodejs/node/pull/62477)
* \[[`b800c57fce`](https://github.com/nodejs/node/commit/b800c57fce)] - **build**: fix timezone-update path references (Chengzhong Wu) [#62280](https://github.com/nodejs/node/pull/62280)
* \[[`7dc5a1e9b4`](https://github.com/nodejs/node/commit/7dc5a1e9b4)] - **build**: skip dockit on IBMi (SRAVANI GUNDEPALLI) [#62189](https://github.com/nodejs/node/pull/62189)
* \[[`f0eea0f905`](https://github.com/nodejs/node/commit/f0eea0f905)] - **build**: fix --node-builtin-modules-path (Filip Skokan) [#62115](https://github.com/nodejs/node/pull/62115)
* \[[`62d2cd473b`](https://github.com/nodejs/node/commit/62d2cd473b)] - **(SEMVER-MINOR)** **cli**: add --max-heap-size option (tannal) [#58708](https://github.com/nodejs/node/pull/58708)
* \[[`ac4b485698`](https://github.com/nodejs/node/commit/ac4b485698)] - **crypto**: update root certificates to NSS 3.121 (Node.js GitHub Bot) [#62485](https://github.com/nodejs/node/pull/62485)
* \[[`d0ebf0e44b`](https://github.com/nodejs/node/commit/d0ebf0e44b)] - **(SEMVER-MINOR)** **crypto**: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) [#62183](https://github.com/nodejs/node/pull/62183)
* \[[`3009980d9d`](https://github.com/nodejs/node/commit/3009980d9d)] - **crypto**: add crypto::GetSSLCtx API for addon access to OpenSSL contexts (Tim Perry) [#62254](https://github.com/nodejs/node/pull/62254)
* \[[`f5725ca81d`](https://github.com/nodejs/node/commit/f5725ca81d)] - **crypto**: reject ML-KEM/ML-DSA PKCS#8 import without seed in SubtleCrypto (Filip Skokan) [#62218](https://github.com/nodejs/node/pull/62218)
* \[[`f69ed4bc3f`](https://github.com/nodejs/node/commit/f69ed4bc3f)] - **crypto**: rename CShakeParams and KmacParams length to outputLength (Filip Skokan) [#61875](https://github.com/nodejs/node/pull/61875)
* \[[`4d96e53570`](https://github.com/nodejs/node/commit/4d96e53570)] - **crypto**: refactor WebCrypto AEAD algorithms auth tag handling (Filip Skokan) [#62169](https://github.com/nodejs/node/pull/62169)
* \[[`93d77719e8`](https://github.com/nodejs/node/commit/93d77719e8)] - **crypto**: read algorithm name property only once in normalizeAlgorithm (Filip Skokan) [#62170](https://github.com/nodejs/node/pull/62170)
* \[[`3d2e23a981`](https://github.com/nodejs/node/commit/3d2e23a981)] - **deps**: update ada to 3.4.4 (Node.js GitHub Bot) [#62414](https://github.com/nodejs/node/pull/62414)
* \[[`176d6d2205`](https://github.com/nodejs/node/commit/176d6d2205)] - **deps**: update timezone to 2026a (Node.js GitHub Bot) [#62164](https://github.com/nodejs/node/pull/62164)
* \[[`95c7fc67ba`](https://github.com/nodejs/node/commit/95c7fc67ba)] - **deps**: update googletest to 2461743991f9aa53e9a3625eafcbacd81a3c74cd (Node.js GitHub Bot) [#62484](https://github.com/nodejs/node/pull/62484)
* \[[`e5e9f2044a`](https://github.com/nodejs/node/commit/e5e9f2044a)] - **deps**: update simdjson to 4.5.0 (Node.js GitHub Bot) [#62382](https://github.com/nodejs/node/pull/62382)
* \[[`905b94266a`](https://github.com/nodejs/node/commit/905b94266a)] - **deps**: update ngtcp2 to 1.21.0 (Node.js GitHub Bot) [#62051](https://github.com/nodejs/node/pull/62051)
* \[[`180c150122`](https://github.com/nodejs/node/commit/180c150122)] - **deps**: V8: cherry-pick cf1bce40a5ef (Richard Lau) [#62449](https://github.com/nodejs/node/pull/62449)
* \[[`bc265aa003`](https://github.com/nodejs/node/commit/bc265aa003)] - **deps**: upgrade npm to 11.12.1 (npm team) [#62448](https://github.com/nodejs/node/pull/62448)
* \[[`f1b28612c4`](https://github.com/nodejs/node/commit/f1b28612c4)] - **deps**: V8: cherry-pick b25cd62c7ba2 (Yagiz Nizipli) [#62354](https://github.com/nodejs/node/pull/62354)
* \[[`757719d2af`](https://github.com/nodejs/node/commit/757719d2af)] - **deps**: disable rust icu compiled\_data features (Chengzhong Wu) [#62284](https://github.com/nodejs/node/pull/62284)
* \[[`3bdc955b63`](https://github.com/nodejs/node/commit/3bdc955b63)] - **deps**: update sqlite to 3.51.3 (Node.js GitHub Bot) [#62256](https://github.com/nodejs/node/pull/62256)
* \[[`a9703d194a`](https://github.com/nodejs/node/commit/a9703d194a)] - **deps**: update googletest to 73a63ea05dc8ca29ec1d2c1d66481dd0de1950f1 (Node.js GitHub Bot) [#61927](https://github.com/nodejs/node/pull/61927)
* \[[`85138935cb`](https://github.com/nodejs/node/commit/85138935cb)] - **deps**: update merve to 1.2.2 (Node.js GitHub Bot) [#62213](https://github.com/nodejs/node/pull/62213)
* \[[`231521e75e`](https://github.com/nodejs/node/commit/231521e75e)] - **diagnostics\_channel**: add diagnostics channels for web locks (Ilyas Shabi) [#62123](https://github.com/nodejs/node/pull/62123)
* \[[`0093863664`](https://github.com/nodejs/node/commit/0093863664)] - **doc**: deprecate `module.register()` (DEP0205) (Geoffrey Booth) [#62395](https://github.com/nodejs/node/pull/62395)
* \[[`0b96ece6be`](https://github.com/nodejs/node/commit/0b96ece6be)] - **doc**: clarify that features cannot be both experimental and deprecated (Antoine du Hamel) [#62456](https://github.com/nodejs/node/pull/62456)
* \[[`8d3ea975f5`](https://github.com/nodejs/node/commit/8d3ea975f5)] - **doc**: fix 'transfered' typo in quic.md (lilianakatrina684-a11y) [#62492](https://github.com/nodejs/node/pull/62492)
* \[[`08ff16e0ba`](https://github.com/nodejs/node/commit/08ff16e0ba)] - **doc**: move sqlite type conversion section to correct level (René) [#62482](https://github.com/nodejs/node/pull/62482)
* \[[`61cc747dd8`](https://github.com/nodejs/node/commit/61cc747dd8)] - **doc**: add Rafael to last security release steward (Rafael Gonzaga) [#62423](https://github.com/nodejs/node/pull/62423)
* \[[`64cfa5a6fa`](https://github.com/nodejs/node/commit/64cfa5a6fa)] - **doc**: use npm-published version of doc-kit (Aviv Keller) [#62139](https://github.com/nodejs/node/pull/62139)
* \[[`1020321fb0`](https://github.com/nodejs/node/commit/1020321fb0)] - **doc**: fix overstated Date header requirement in response.sendDate (Kit Dallege) [#62206](https://github.com/nodejs/node/pull/62206)
* \[[`9caa7855b2`](https://github.com/nodejs/node/commit/9caa7855b2)] - **doc**: fix guaranteed typo (lilianakatrina684-a11y) [#62374](https://github.com/nodejs/node/pull/62374)
* \[[`e254f65306`](https://github.com/nodejs/node/commit/e254f65306)] - **doc**: enhance clarification about the main field (Mowafak Almahaini) [#62302](https://github.com/nodejs/node/pull/62302)
* \[[`9e724b53f8`](https://github.com/nodejs/node/commit/9e724b53f8)] - **doc**: remove spawn with shell example from bat/cmd section (Kit Dallege) [#62243](https://github.com/nodejs/node/pull/62243)
* \[[`7f37c17516`](https://github.com/nodejs/node/commit/7f37c17516)] - **doc**: minor typo fix (Jeff Matson) [#62358](https://github.com/nodejs/node/pull/62358)
* \[[`eb0ca98f01`](https://github.com/nodejs/node/commit/eb0ca98f01)] - **doc**: add path to vulnerabilities.json mention (Rafael Gonzaga) [#62355](https://github.com/nodejs/node/pull/62355)
* \[[`198b6e0932`](https://github.com/nodejs/node/commit/198b6e0932)] - **doc**: deprecate CryptoKey use in node:crypto (Filip Skokan) [#62321](https://github.com/nodejs/node/pull/62321)
* \[[`17e5aee6c5`](https://github.com/nodejs/node/commit/17e5aee6c5)] - **doc**: fix small environment\_variables typo (chris) [#62279](https://github.com/nodejs/node/pull/62279)
* \[[`193d629895`](https://github.com/nodejs/node/commit/193d629895)] - **doc**: test and test-only targets do not run linter (Xavier Stouder) [#62120](https://github.com/nodejs/node/pull/62120)
* \[[`4a1f20ec4a`](https://github.com/nodejs/node/commit/4a1f20ec4a)] - **doc**: clarify fs.ReadStream and fs.WriteStream are not constructable (Kit Dallege) [#62208](https://github.com/nodejs/node/pull/62208)
* \[[`f976c9214d`](https://github.com/nodejs/node/commit/f976c9214d)] - **doc**: clarify that any truthy value of `shell` is part of DEP0190 (Antoine du Hamel) [#62249](https://github.com/nodejs/node/pull/62249)
* \[[`4d83972681`](https://github.com/nodejs/node/commit/4d83972681)] - **doc**: remove outdated Chrome 66 and ndb references from debugger (Kit Dallege) [#62202](https://github.com/nodejs/node/pull/62202)
* \[[`71f2eada5b`](https://github.com/nodejs/node/commit/71f2eada5b)] - **doc**: add throwIfNoEntry version history to fs.stat (kovan) [#62204](https://github.com/nodejs/node/pull/62204)
* \[[`670c80893b`](https://github.com/nodejs/node/commit/670c80893b)] - **doc**: add note (and caveat) for `mock.module` about customization hooks (Jacob Smith) [#62075](https://github.com/nodejs/node/pull/62075)
* \[[`2ff5cb13f5`](https://github.com/nodejs/node/commit/2ff5cb13f5)] - **doc,test**: clarify --eval syntax for leading '-' scripts (kovan) [#62244](https://github.com/nodejs/node/pull/62244)
* \[[`6c6c9004c4`](https://github.com/nodejs/node/commit/6c6c9004c4)] - **esm**: fix typo in worker loader hook comment (jakecastelli) [#62475](https://github.com/nodejs/node/pull/62475)
* \[[`1cdd23c9f3`](https://github.com/nodejs/node/commit/1cdd23c9f3)] - **esm**: fix source phase identity bug in loadCache eviction (Guy Bedford) [#62415](https://github.com/nodejs/node/pull/62415)
* \[[`4f4ff15794`](https://github.com/nodejs/node/commit/4f4ff15794)] - **esm**: fix path normalization in `finalizeResolution` (Antoine du Hamel) [#62080](https://github.com/nodejs/node/pull/62080)
* \[[`088167d102`](https://github.com/nodejs/node/commit/088167d102)] - **events**: avoid cloning listeners array on every emit (Gürgün Dayıoğlu) [#62261](https://github.com/nodejs/node/pull/62261)
* \[[`0250b436ee`](https://github.com/nodejs/node/commit/0250b436ee)] - **fs**: fix cpSync to handle non-ASCII characters (Stefan Stojanovic) [#61950](https://github.com/nodejs/node/pull/61950)
* \[[`b67a8fb171`](https://github.com/nodejs/node/commit/b67a8fb171)] - **inspector**: add Target.getTargets and extract TargetManager (Kohei) [#62487](https://github.com/nodejs/node/pull/62487)
* \[[`ffcc5a5722`](https://github.com/nodejs/node/commit/ffcc5a5722)] - **lib**: make SubtleCrypto.supports enumerable (Filip Skokan) [#62307](https://github.com/nodejs/node/pull/62307)
* \[[`92ef2ad8fa`](https://github.com/nodejs/node/commit/92ef2ad8fa)] - **lib**: prefer primordials in SubtleCrypto (Filip Skokan) [#62226](https://github.com/nodejs/node/pull/62226)
* \[[`40a43ac4d0`](https://github.com/nodejs/node/commit/40a43ac4d0)] - **module**: fix coverage of mocked CJS modules imported from ESM (Marco) [#62133](https://github.com/nodejs/node/pull/62133)
* \[[`3ef0a5b90e`](https://github.com/nodejs/node/commit/3ef0a5b90e)] - **quic**: remove CryptoKey support from session keys option (Filip Skokan) [#62335](https://github.com/nodejs/node/pull/62335)
* \[[`3c8dd8eb8e`](https://github.com/nodejs/node/commit/3c8dd8eb8e)] - **repl**: use vm DONT\_CONTEXTIFY context (Chengzhong Wu) [#62371](https://github.com/nodejs/node/pull/62371)
* \[[`f85b9d9fa8`](https://github.com/nodejs/node/commit/f85b9d9fa8)] - **(SEMVER-MINOR)** **repl**: add customizable error handling (Anna Henningsen) [#62188](https://github.com/nodejs/node/pull/62188)
* \[[`e4c164e045`](https://github.com/nodejs/node/commit/e4c164e045)] - **repl**: handle exceptions from async context after close (Anna Henningsen) [#62165](https://github.com/nodejs/node/pull/62165)
* \[[`67b854d407`](https://github.com/nodejs/node/commit/67b854d407)] - **(SEMVER-MINOR)** **repl**: remove dependency on domain module (Matteo Collina) [#61227](https://github.com/nodejs/node/pull/61227)
* \[[`966b700623`](https://github.com/nodejs/node/commit/966b700623)] - **(SEMVER-MINOR)** **sea**: support code cache for ESM entrypoint in SEA (Joyee Cheung) [#62158](https://github.com/nodejs/node/pull/62158)
* \[[`fe82baf970`](https://github.com/nodejs/node/commit/fe82baf970)] - **src**: improve EC JWK import performance (Filip Skokan) [#62396](https://github.com/nodejs/node/pull/62396)
* \[[`d490b171e0`](https://github.com/nodejs/node/commit/d490b171e0)] - **src**: handle null backing store in ArrayBufferViewContents::Read (Mert Can Altin) [#62343](https://github.com/nodejs/node/pull/62343)
* \[[`0e4af848bc`](https://github.com/nodejs/node/commit/0e4af848bc)] - **src**: convert context\_frame field in AsyncWrap to internal field (Anna Henningsen) [#62103](https://github.com/nodejs/node/pull/62103)
* \[[`02980b8c8f`](https://github.com/nodejs/node/commit/02980b8c8f)] - **src**: enable compilation/linking with OpenSSL 4.0 (Filip Skokan) [#62410](https://github.com/nodejs/node/pull/62410)
* \[[`064f7c2fa6`](https://github.com/nodejs/node/commit/064f7c2fa6)] - **src**: use stack allocation in indexOf latin1 path (Mert Can Altin) [#62268](https://github.com/nodejs/node/pull/62268)
* \[[`ede52bc2dc`](https://github.com/nodejs/node/commit/ede52bc2dc)] - **src,sqlite**: fix filterFunc dangling reference (Edy Silva) [#62281](https://github.com/nodejs/node/pull/62281)
* \[[`e1f0d2a014`](https://github.com/nodejs/node/commit/e1f0d2a014)] - **(SEMVER-MINOR)** **stream**: add stream/iter Implementation (James M Snell) [#62066](https://github.com/nodejs/node/pull/62066)
* \[[`03839fb087`](https://github.com/nodejs/node/commit/03839fb087)] - **stream**: preserve error over AbortError in pipeline (Marco) [#62113](https://github.com/nodejs/node/pull/62113)
* \[[`0000d2f011`](https://github.com/nodejs/node/commit/0000d2f011)] - **stream**: replace bind with arrow function for onwrite callback (Ali Hassan) [#62087](https://github.com/nodejs/node/pull/62087)
* \[[`3796a73719`](https://github.com/nodejs/node/commit/3796a73719)] - **test**: update WPT for WebCryptoAPI to 2cb332d710 (Node.js GitHub Bot) [#62483](https://github.com/nodejs/node/pull/62483)
* \[[`ad8309415b`](https://github.com/nodejs/node/commit/ad8309415b)] - **test**: update WPT for url to fc3e651593 (Node.js GitHub Bot) [#62379](https://github.com/nodejs/node/pull/62379)
* \[[`bed89b037e`](https://github.com/nodejs/node/commit/bed89b037e)] - **test**: wait for reattach before initial break on restart (Yuya Inoue) [#62471](https://github.com/nodejs/node/pull/62471)
* \[[`c9ffffcc55`](https://github.com/nodejs/node/commit/c9ffffcc55)] - **test**: disable flaky WPT Blob test on AIX (James M Snell) [#62470](https://github.com/nodejs/node/pull/62470)
* \[[`fd41ef31f6`](https://github.com/nodejs/node/commit/fd41ef31f6)] - **(SEMVER-MINOR)** **test**: add tests for experimental stream/iter implementation (James M Snell) [#62066](https://github.com/nodejs/node/pull/62066)
* \[[`1b9d8d3eec`](https://github.com/nodejs/node/commit/1b9d8d3eec)] - **test**: avoid flaky run wait in debugger restart test (Yuya Inoue) [#62112](https://github.com/nodejs/node/pull/62112)
* \[[`cb08a29d51`](https://github.com/nodejs/node/commit/cb08a29d51)] - **test**: skip test-cluster-dgram-reuse on AIX 7.3 (Stewart X Addison) [#62238](https://github.com/nodejs/node/pull/62238)
* \[[`abea0af8a9`](https://github.com/nodejs/node/commit/abea0af8a9)] - **test**: add WebCrypto Promise.prototype.then pollution regression tests (Filip Skokan) [#62226](https://github.com/nodejs/node/pull/62226)
* \[[`47a2132269`](https://github.com/nodejs/node/commit/47a2132269)] - **test**: update WPT for WebCryptoAPI to 6a1c545d77 (Node.js GitHub Bot) [#62187](https://github.com/nodejs/node/pull/62187)
* \[[`2c63d3006c`](https://github.com/nodejs/node/commit/2c63d3006c)] - **test\_runner**: add exports option for module mocks (sangwook) [#61727](https://github.com/nodejs/node/pull/61727)
* \[[`44ac0e1302`](https://github.com/nodejs/node/commit/44ac0e1302)] - **test\_runner**: make it compatible with fake timers (Matteo Collina) [#59272](https://github.com/nodejs/node/pull/59272)
* \[[`1865691275`](https://github.com/nodejs/node/commit/1865691275)] - **test\_runner**: set non-zero exit code when suite errors occur (Edy Silva) [#62282](https://github.com/nodejs/node/pull/62282)
* \[[`0252b2bab8`](https://github.com/nodejs/node/commit/0252b2bab8)] - **tools**: bump picomatch from 4.0.3 to 4.0.4 in /tools/eslint (dependabot\[bot]) [#62439](https://github.com/nodejs/node/pull/62439)
* \[[`3368155267`](https://github.com/nodejs/node/commit/3368155267)] - **tools**: bump yaml from 2.8.2 to 2.8.3 in /tools/doc (dependabot\[bot]) [#62437](https://github.com/nodejs/node/pull/62437)
* \[[`5e47c359f5`](https://github.com/nodejs/node/commit/5e47c359f5)] - **tools**: adopt the `--check-for-duplicates` NCU flag (Antoine du Hamel) [#62478](https://github.com/nodejs/node/pull/62478)
* \[[`4a604e82d0`](https://github.com/nodejs/node/commit/4a604e82d0)] - **tools**: bump picomatch in /tools/doc (dependabot\[bot]) [#62438](https://github.com/nodejs/node/pull/62438)
* \[[`d1a98b4ddb`](https://github.com/nodejs/node/commit/d1a98b4ddb)] - **tools**: bump flatted from 3.4.1 to 3.4.2 in /tools/eslint (dependabot\[bot]) [#62375](https://github.com/nodejs/node/pull/62375)
* \[[`c32daa1ab4`](https://github.com/nodejs/node/commit/c32daa1ab4)] - **tools**: bump eslint deps (Huáng Jùnliàng) [#62356](https://github.com/nodejs/node/pull/62356)
* \[[`7a2fcc6d41`](https://github.com/nodejs/node/commit/7a2fcc6d41)] - **tools**: do not swallow error in `lint-nix` workflow (Antoine du Hamel) [#62292](https://github.com/nodejs/node/pull/62292)
* \[[`c41a2871b5`](https://github.com/nodejs/node/commit/c41a2871b5)] - **tools**: add eslint-plugin-regexp (Huáng Jùnliàng) [#62093](https://github.com/nodejs/node/pull/62093)
* \[[`56dfeb06df`](https://github.com/nodejs/node/commit/56dfeb06df)] - **tools**: fix timeout errors in `lint-nix` job (Antoine du Hamel) [#62265](https://github.com/nodejs/node/pull/62265)
* \[[`22fc8078e8`](https://github.com/nodejs/node/commit/22fc8078e8)] - **tools**: bump flatted from 3.3.3 to 3.4.1 in /tools/eslint (dependabot\[bot]) [#62255](https://github.com/nodejs/node/pull/62255)
* \[[`409b0663bd`](https://github.com/nodejs/node/commit/409b0663bd)] - **tools**: bump undici from 6.23.0 to 6.24.1 in /tools/doc (dependabot\[bot]) [#62250](https://github.com/nodejs/node/pull/62250)
* \[[`67c69750f4`](https://github.com/nodejs/node/commit/67c69750f4)] - **tools**: validate all commits that are pushed to `main` (Antoine du Hamel) [#62246](https://github.com/nodejs/node/pull/62246)
* \[[`7d9db8cd21`](https://github.com/nodejs/node/commit/7d9db8cd21)] - **tools**: keep GN files when updating Merve (Antoine du Hamel) [#62167](https://github.com/nodejs/node/pull/62167)
* \[[`6c8fa42ba2`](https://github.com/nodejs/node/commit/6c8fa42ba2)] - **typings**: rationalise TypedArray types (René) [#62174](https://github.com/nodejs/node/pull/62174)
* \[[`531c64d04e`](https://github.com/nodejs/node/commit/531c64d04e)] - **url**: enable simdutf for ada (Yagiz Nizipli) [#61477](https://github.com/nodejs/node/pull/61477)
* \[[`2000caccde`](https://github.com/nodejs/node/commit/2000caccde)] - **util**: allow color aliases in styleText (sangwook) [#62180](https://github.com/nodejs/node/pull/62180)
* \[[`0aed332ab4`](https://github.com/nodejs/node/commit/0aed332ab4)] - **wasm**: support js string constant esm import (Guy Bedford) [#62198](https://github.com/nodejs/node/pull/62198)
* \[[`d3fd4a978b`](https://github.com/nodejs/node/commit/d3fd4a978b)] - **worker**: heap profile optimizations (Ilyas Shabi) [#62201](https://github.com/nodejs/node/pull/62201)
* \[[`e992a34a18`](https://github.com/nodejs/node/commit/e992a34a18)] - **zlib**: fix use-after-free when reset() is called during write (Matteo Collina) [#62325](https://github.com/nodejs/node/pull/62325)

<a id="25.8.2"></a>

## 2026-03-24, Version 25.8.2 (Current), @RafaelGSS

This is a security release.

### Notable Changes

* (CVE-2026-21637) wrap `SNICallback` invocation in `try`/`catch` (Matteo Collina) - High
* (CVE-2026-21710) use null prototype for `headersDistinct`/`trailersDistinct` (Matteo Collina) - High
* (CVE-2026-21711) include permission check to `pipe_wrap.cc` (RafaelGSS) - Medium
* (CVE-2026-21712) handle url crash on different url formats (RafaelGSS) - Medium
* (CVE-2026-21713) use timing-safe comparison in Web Cryptography HMAC and KMAC (Filip Skokan) - Medium
* (CVE-2026-21714) handle `NGHTTP2_ERR_FLOW_CONTROL` error code (RafaelGSS) - Medium
* (CVE-2026-21717) test array index hash collision (Joyee Cheung) - Medium
* (CVE-2026-21715) add permission check to `realpath.native` (RafaelGSS) - Low
* (CVE-2026-21716) include permission check on `lib/fs/promises` (RafaelGSS) - Low

### Commits

* \[[`2086b7477b`](https://github.com/nodejs/node/commit/2086b7477b)] - **(CVE-2026-21717)** **build,test**: test array index hash collision (Joyee Cheung) [nodejs-private/node-private#834](https://github.com/nodejs-private/node-private/pull/834)
* \[[`0f9332a40a`](https://github.com/nodejs/node/commit/0f9332a40a)] - **(CVE-2026-21713)** **crypto**: use timing-safe comparison in Web Cryptography HMAC and KMAC (Filip Skokan) [nodejs-private/node-private#822](https://github.com/nodejs-private/node-private/pull/822)
* \[[`2b6937ddb2`](https://github.com/nodejs/node/commit/2b6937ddb2)] - **deps**: update undici to 7.24.4 (Node.js GitHub Bot) [#62271](https://github.com/nodejs/node/pull/62271)
* \[[`bfb8ad5787`](https://github.com/nodejs/node/commit/bfb8ad5787)] - **deps**: update undici to 7.24.3 (Node.js GitHub Bot) [#62233](https://github.com/nodejs/node/pull/62233)
* \[[`be6384727f`](https://github.com/nodejs/node/commit/be6384727f)] - **deps**: upgrade npm to 11.11.1 (npm team) [#62216](https://github.com/nodejs/node/pull/62216)
* \[[`2feea5bb97`](https://github.com/nodejs/node/commit/2feea5bb97)] - **deps**: V8: override `depot_tools` version (Richard Lau) [#62344](https://github.com/nodejs/node/pull/62344)
* \[[`86c04784dd`](https://github.com/nodejs/node/commit/86c04784dd)] - **(CVE-2026-21710)** **http**: use null prototype for headersDistinct/trailersDistinct (Matteo Collina) [nodejs-private/node-private#821](https://github.com/nodejs-private/node-private/pull/821)
* \[[`5197a56a34`](https://github.com/nodejs/node/commit/5197a56a34)] - **(CVE-2026-21711)** **permission**: include permission check to pipe\_wrap.cc (RafaelGSS) [nodejs-private/node-private#820](https://github.com/nodejs-private/node-private/pull/820)
* \[[`04a886c735`](https://github.com/nodejs/node/commit/04a886c735)] - **(CVE-2026-21716)** **permission**: include permission check on lib/fs/promises (RafaelGSS) [nodejs-private/node-private#795](https://github.com/nodejs-private/node-private/pull/795)
* \[[`9a7f80f2b0`](https://github.com/nodejs/node/commit/9a7f80f2b0)] - **(CVE-2026-21715)** **permission**: add permission check to realpath.native (RafaelGSS) [nodejs-private/node-private#794](https://github.com/nodejs-private/node-private/pull/794)
* \[[`d9c9b628cf`](https://github.com/nodejs/node/commit/d9c9b628cf)] - **(CVE-2026-21714)** **src**: handle NGHTTP2\_ERR\_FLOW\_CONTROL error code (RafaelGSS) [nodejs-private/node-private#832](https://github.com/nodejs-private/node-private/pull/832)
* \[[`45b55dc786`](https://github.com/nodejs/node/commit/45b55dc786)] - **(CVE-2026-21712)** **src**: handle url crash on different url formats (RafaelGSS) [nodejs-private/node-private#816](https://github.com/nodejs-private/node-private/pull/816)
* \[[`4bfda307c0`](https://github.com/nodejs/node/commit/4bfda307c0)] - **(CVE-2026-21637)** **tls**: wrap SNICallback invocation in try/catch (Matteo Collina) [nodejs-private/node-private#819](https://github.com/nodejs-private/node-private/pull/819)

<a id="25.8.1"></a>

## 2026-03-11, Version 25.8.1 (Current), @aduh95

### Notable Changes

* \[[`ea87eea71a`](https://github.com/nodejs/node/commit/ea87eea71a)] - **module**: fix extensionless CJS files in `"type": "module"` packages (Matteo Collina) [#62083](https://github.com/nodejs/node/pull/62083)

### Commits

* \[[`bab750d1b3`](https://github.com/nodejs/node/commit/bab750d1b3)] - **build**: do not depend on V8 deps on `--without-bundled-v8` builds (Antoine du Hamel) [#62033](https://github.com/nodejs/node/pull/62033)
* \[[`b26d1c7fcb`](https://github.com/nodejs/node/commit/b26d1c7fcb)] - **crypto**: make --use-system-ca per-env rather than per-process (Aditi) [#60678](https://github.com/nodejs/node/pull/60678)
* \[[`e362635abf`](https://github.com/nodejs/node/commit/e362635abf)] - **crypto**: add missing AES dictionaries (Filip Skokan) [#62099](https://github.com/nodejs/node/pull/62099)
* \[[`6f975db8af`](https://github.com/nodejs/node/commit/6f975db8af)] - **crypto**: fix importKey required argument count check (Filip Skokan) [#62099](https://github.com/nodejs/node/pull/62099)
* \[[`3beaf9c5fc`](https://github.com/nodejs/node/commit/3beaf9c5fc)] - **deps**: update amaro to 1.1.8 (Node.js GitHub Bot) [#62151](https://github.com/nodejs/node/pull/62151)
* \[[`53afb0edd8`](https://github.com/nodejs/node/commit/53afb0edd8)] - **deps**: update sqlite to 3.52.0 (Node.js GitHub Bot) [#62150](https://github.com/nodejs/node/pull/62150)
* \[[`a13ed052a1`](https://github.com/nodejs/node/commit/a13ed052a1)] - **deps**: update merve to 1.2.0 (Node.js GitHub Bot) [#62149](https://github.com/nodejs/node/pull/62149)
* \[[`2c850577b7`](https://github.com/nodejs/node/commit/2c850577b7)] - **deps**: patch resb crate (Richard Lau) [#62138](https://github.com/nodejs/node/pull/62138)
* \[[`37862a6728`](https://github.com/nodejs/node/commit/37862a6728)] - **deps**: V8: cherry-pick aa0b288f87cc (Richard Lau) [#62136](https://github.com/nodejs/node/pull/62136)
* \[[`09191ad8b4`](https://github.com/nodejs/node/commit/09191ad8b4)] - **deps**: update ada to 3.4.3 (Node.js GitHub Bot) [#62049](https://github.com/nodejs/node/pull/62049)
* \[[`8d63a178fd`](https://github.com/nodejs/node/commit/8d63a178fd)] - **doc**: copyedit `addons.md` (Antoine du Hamel) [#62071](https://github.com/nodejs/node/pull/62071)
* \[[`83719ffb64`](https://github.com/nodejs/node/commit/83719ffb64)] - **doc**: correct `util.convertProcessSignalToExitCode` validation behavior (René) [#62134](https://github.com/nodejs/node/pull/62134)
* \[[`eeee7c7fb1`](https://github.com/nodejs/node/commit/eeee7c7fb1)] - **doc**: add efekrskl as triager (Efe) [#61876](https://github.com/nodejs/node/pull/61876)
* \[[`db150b2e69`](https://github.com/nodejs/node/commit/db150b2e69)] - **doc**: fix markdown for `expectFailure` values (Jacob Smith) [#62100](https://github.com/nodejs/node/pull/62100)
* \[[`d55a441e60`](https://github.com/nodejs/node/commit/d55a441e60)] - **doc**: add title to index (Aviv Keller) [#62046](https://github.com/nodejs/node/pull/62046)
* \[[`cc46204b48`](https://github.com/nodejs/node/commit/cc46204b48)] - **doc**: include url.resolve() in DEP0169 application deprecation (Mike McCready) [#62002](https://github.com/nodejs/node/pull/62002)
* \[[`1d91a7261e`](https://github.com/nodejs/node/commit/1d91a7261e)] - **doc,module**: add missing doc for syncHooks.deregister() (Joyee Cheung) [#61959](https://github.com/nodejs/node/pull/61959)
* \[[`5198573bee`](https://github.com/nodejs/node/commit/5198573bee)] - **http**: fix use-after-free when freeParser is called during llhttp\_execute (Gerhard Stöbich) [#62095](https://github.com/nodejs/node/pull/62095)
* \[[`f8793f80df`](https://github.com/nodejs/node/commit/f8793f80df)] - **lib**: fix source map url parse in dynamic imports (Chengzhong Wu) [#61990](https://github.com/nodejs/node/pull/61990)
* \[[`5439d0e0cf`](https://github.com/nodejs/node/commit/5439d0e0cf)] - **meta**: bump actions/download-artifact from 7.0.0 to 8.0.0 (dependabot\[bot]) [#62063](https://github.com/nodejs/node/pull/62063)
* \[[`27fd21943a`](https://github.com/nodejs/node/commit/27fd21943a)] - **meta**: bump actions/upload-artifact from 6.0.0 to 7.0.0 (dependabot\[bot]) [#62062](https://github.com/nodejs/node/pull/62062)
* \[[`5b266f3295`](https://github.com/nodejs/node/commit/5b266f3295)] - **meta**: bump step-security/harden-runner from 2.14.2 to 2.15.0 (dependabot\[bot]) [#62064](https://github.com/nodejs/node/pull/62064)
* \[[`ea87eea71a`](https://github.com/nodejs/node/commit/ea87eea71a)] - **module**: fix extensionless CJS files in `"type": "module"` packages (Matteo Collina) [#62083](https://github.com/nodejs/node/pull/62083)
* \[[`851228cd60`](https://github.com/nodejs/node/commit/851228cd60)] - **sqlite**: handle stmt invalidation (Guilherme Araújo) [#61877](https://github.com/nodejs/node/pull/61877)
* \[[`19efe60548`](https://github.com/nodejs/node/commit/19efe60548)] - **src**: expose async context frame debugging helper to JS (Anna Henningsen) [#62103](https://github.com/nodejs/node/pull/62103)
* \[[`0257e8072f`](https://github.com/nodejs/node/commit/0257e8072f)] - **src**: make AsyncWrap subclass internal field counts explicit (Anna Henningsen) [#62103](https://github.com/nodejs/node/pull/62103)
* \[[`975dafbe3b`](https://github.com/nodejs/node/commit/975dafbe3b)] - **src**: release context frame in AsyncWrap::EmitDestroy (Gerhard Stöbich) [#61995](https://github.com/nodejs/node/pull/61995)
* \[[`f2c08c7888`](https://github.com/nodejs/node/commit/f2c08c7888)] - **src**: use validate\_ascii\_with\_errors instead of validate\_ascii (Сковорода Никита Андреевич) [#61122](https://github.com/nodejs/node/pull/61122)
* \[[`0278461d83`](https://github.com/nodejs/node/commit/0278461d83)] - **stream**: optimize webstreams pipeTo (Mattias Buelens) [#62079](https://github.com/nodejs/node/pull/62079)
* \[[`4d62e95bfa`](https://github.com/nodejs/node/commit/4d62e95bfa)] - **stream**: fix brotli error handling in web compression streams (Filip Skokan) [#62107](https://github.com/nodejs/node/pull/62107)
* \[[`4bdcaf2865`](https://github.com/nodejs/node/commit/4bdcaf2865)] - **stream**: improve Web Compression spec compliance (Filip Skokan) [#62107](https://github.com/nodejs/node/pull/62107)
* \[[`a5b1be2045`](https://github.com/nodejs/node/commit/a5b1be2045)] - **stream**: fix UTF-8 character corruption in fast-utf8-stream (Matteo Collina) [#61745](https://github.com/nodejs/node/pull/61745)
* \[[`5632446c4e`](https://github.com/nodejs/node/commit/5632446c4e)] - **stream**: fix TransformStream race on cancel with pending write (Marco) [#62040](https://github.com/nodejs/node/pull/62040)
* \[[`f90fa9cd1a`](https://github.com/nodejs/node/commit/f90fa9cd1a)] - **stream**: accept ArrayBuffer in CompressionStream and DecompressionStream (조수민) [#61913](https://github.com/nodejs/node/pull/61913)
* \[[`00319eaa3a`](https://github.com/nodejs/node/commit/00319eaa3a)] - **test**: update WPT for url to c928b19ab0 (Node.js GitHub Bot) [#62148](https://github.com/nodejs/node/pull/62148)
* \[[`456abc7d20`](https://github.com/nodejs/node/commit/456abc7d20)] - **test**: update WPT for WebCryptoAPI to c9e955840a (Node.js GitHub Bot) [#62147](https://github.com/nodejs/node/pull/62147)
* \[[`82770cb7d3`](https://github.com/nodejs/node/commit/82770cb7d3)] - **test**: improve WPT report runner (Filip Skokan) [#62107](https://github.com/nodejs/node/pull/62107)
* \[[`cfc847d233`](https://github.com/nodejs/node/commit/cfc847d233)] - **test**: update WPT compression to ae05f5cb53 (Filip Skokan) [#62107](https://github.com/nodejs/node/pull/62107)
* \[[`80f78f2737`](https://github.com/nodejs/node/commit/80f78f2737)] - **test**: update WPT for WebCryptoAPI to 42e47329fd (Node.js GitHub Bot) [#62048](https://github.com/nodejs/node/pull/62048)
* \[[`8048e0508c`](https://github.com/nodejs/node/commit/8048e0508c)] - **test**: fix skipping behavior for `test-runner-run-files-undefined` (Antoine du Hamel) [#62026](https://github.com/nodejs/node/pull/62026)
* \[[`699a6214c6`](https://github.com/nodejs/node/commit/699a6214c6)] - **tools**: revert timezone update GHA workflow to ubuntu-latest (Richard Lau) [#62140](https://github.com/nodejs/node/pull/62140)
* \[[`1a453b550c`](https://github.com/nodejs/node/commit/1a453b550c)] - **tools**: improve error handling in test426 update script (Rich Trott) [#62121](https://github.com/nodejs/node/pull/62121)
* \[[`710dde5ee2`](https://github.com/nodejs/node/commit/710dde5ee2)] - **tools**: fix `--node-builtin-modules-path` value in `shell.nix` (Antoine du Hamel) [#62102](https://github.com/nodejs/node/pull/62102)
* \[[`dcb1cbb21f`](https://github.com/nodejs/node/commit/dcb1cbb21f)] - **tools**: bump the eslint group across 1 directory with 2 updates (dependabot\[bot]) [#62092](https://github.com/nodejs/node/pull/62092)
* \[[`7d0b758583`](https://github.com/nodejs/node/commit/7d0b758583)] - **tools**: fix daily wpt workflow nighly release version lookup (Filip Skokan) [#62076](https://github.com/nodejs/node/pull/62076)
* \[[`3e8c816f2e`](https://github.com/nodejs/node/commit/3e8c816f2e)] - **tools**: fix example in release proposal linter (Richard Lau) [#62074](https://github.com/nodejs/node/pull/62074)
* \[[`772d3d270d`](https://github.com/nodejs/node/commit/772d3d270d)] - **tools**: bump minimatch from 3.1.3 to 3.1.5 in /tools/clang-format (dependabot\[bot]) [#62013](https://github.com/nodejs/node/pull/62013)
* \[[`92f3b42672`](https://github.com/nodejs/node/commit/92f3b42672)] - **tools**: bump eslint to v10, babel to v8.0.0-rc.2 (Huáng Jùnliàng) [#61905](https://github.com/nodejs/node/pull/61905)
* \[[`deead95ec5`](https://github.com/nodejs/node/commit/deead95ec5)] - **url**: suppress warnings from url.format/url.resolve inside node\_modules (René) [#62005](https://github.com/nodejs/node/pull/62005)

<a id="25.8.0"></a>

## 2026-03-03, Version 25.8.0 (Current), @richardlau

### Notable Changes

* \[[`e55eddea2a`](https://github.com/nodejs/node/commit/e55eddea2a)] - **build, doc**: use new api doc tooling (flakey5) [#57343](https://github.com/nodejs/node/pull/57343)
* \[[`4c181e2277`](https://github.com/nodejs/node/commit/4c181e2277)] - **(SEMVER-MINOR)** **sqlite**: add limits property to DatabaseSync (Mert Can Altin) [#61298](https://github.com/nodejs/node/pull/61298)
* \[[`46ee1eddd7`](https://github.com/nodejs/node/commit/46ee1eddd7)] - **(SEMVER-MINOR)** **src**: add C++ support for diagnostics channels (RafaelGSS) [#61869](https://github.com/nodejs/node/pull/61869)
* \[[`9ddd1a9c27`](https://github.com/nodejs/node/commit/9ddd1a9c27)] - **(SEMVER-MINOR)** **src,permission**: add --permission-audit (RafaelGSS) [#61869](https://github.com/nodejs/node/pull/61869)
* \[[`0d97ec4044`](https://github.com/nodejs/node/commit/0d97ec4044)] - **(SEMVER-MINOR)** **test\_runner**: expose worker ID for concurrent test execution (Ali Hassan) [#61394](https://github.com/nodejs/node/pull/61394)

### Commits

* \[[`940b58c8c1`](https://github.com/nodejs/node/commit/940b58c8c1)] - **buffer**: optimize buffer.concat performance (Mert Can Altin) [#61721](https://github.com/nodejs/node/pull/61721)
* \[[`0589b0e5a1`](https://github.com/nodejs/node/commit/0589b0e5a1)] - **build**: fix GN for new merve dep (Shelley Vohr) [#61984](https://github.com/nodejs/node/pull/61984)
* \[[`f3d3968dcd`](https://github.com/nodejs/node/commit/f3d3968dcd)] - _**Revert**_ "**build**: add temporal test on GHA windows" (Antoine du Hamel) [#61810](https://github.com/nodejs/node/pull/61810)
* \[[`e55eddea2a`](https://github.com/nodejs/node/commit/e55eddea2a)] - **build, doc**: use new api doc tooling (flakey5) [#57343](https://github.com/nodejs/node/pull/57343)
* \[[`b7715292f8`](https://github.com/nodejs/node/commit/b7715292f8)] - **child\_process**: add tracing channel for spawn (Marco) [#61836](https://github.com/nodejs/node/pull/61836)
* \[[`a32a598748`](https://github.com/nodejs/node/commit/a32a598748)] - **crypto**: fix missing nullptr check on RSA\_new() (ndossche) [#61888](https://github.com/nodejs/node/pull/61888)
* \[[`dc384f95b3`](https://github.com/nodejs/node/commit/dc384f95b3)] - **crypto**: fix handling of null BUF\_MEM\* in ToV8Value() (Nora Dossche) [#61885](https://github.com/nodejs/node/pull/61885)
* \[[`3337b095db`](https://github.com/nodejs/node/commit/3337b095db)] - **crypto**: fix potential null pointer dereference when BIO\_meth\_new() fails (Nora Dossche) [#61788](https://github.com/nodejs/node/pull/61788)
* \[[`51ded81139`](https://github.com/nodejs/node/commit/51ded81139)] - **deps**: update undici to 7.22.0 (Node.js GitHub Bot) [#62035](https://github.com/nodejs/node/pull/62035)
* \[[`8aa2fde931`](https://github.com/nodejs/node/commit/8aa2fde931)] - **deps**: update minimatch to 10.2.4 (Node.js GitHub Bot) [#62016](https://github.com/nodejs/node/pull/62016)
* \[[`57dc092eaf`](https://github.com/nodejs/node/commit/57dc092eaf)] - **deps**: upgrade npm to 11.11.0 (npm team) [#61994](https://github.com/nodejs/node/pull/61994)
* \[[`705bbd60a9`](https://github.com/nodejs/node/commit/705bbd60a9)] - **deps**: update simdjson to 4.3.1 (Node.js GitHub Bot) [#61930](https://github.com/nodejs/node/pull/61930)
* \[[`4d411d72e5`](https://github.com/nodejs/node/commit/4d411d72e5)] - **deps**: update acorn-walk to 8.3.5 (Node.js GitHub Bot) [#61928](https://github.com/nodejs/node/pull/61928)
* \[[`f53a32ab84`](https://github.com/nodejs/node/commit/f53a32ab84)] - **deps**: update acorn to 8.16.0 (Node.js GitHub Bot) [#61925](https://github.com/nodejs/node/pull/61925)
* \[[`9b483fbb27`](https://github.com/nodejs/node/commit/9b483fbb27)] - **deps**: update minimatch to 10.2.2 (Node.js GitHub Bot) [#61830](https://github.com/nodejs/node/pull/61830)
* \[[`bdc18940ad`](https://github.com/nodejs/node/commit/bdc18940ad)] - **doc**: expand SECURITY.md with non-vulnerability examples (Rafael Gonzaga) [#61972](https://github.com/nodejs/node/pull/61972)
* \[[`4e54c103cb`](https://github.com/nodejs/node/commit/4e54c103cb)] - **doc**: separate in-types and out-types in SQLite conversion docs (René) [#62034](https://github.com/nodejs/node/pull/62034)
* \[[`ca78ebbeaa`](https://github.com/nodejs/node/commit/ca78ebbeaa)] - **doc**: fix small logic error in DETECT\_MODULE\_SYNTAX (René) [#62025](https://github.com/nodejs/node/pull/62025)
* \[[`e6b131f3fe`](https://github.com/nodejs/node/commit/e6b131f3fe)] - **doc**: fix module.stripTypeScriptTypes indentation (René) [#61992](https://github.com/nodejs/node/pull/61992)
* \[[`7508540e19`](https://github.com/nodejs/node/commit/7508540e19)] - **doc**: update DEP0040 (punycode) to application type deprecation (Mike McCready) [#61916](https://github.com/nodejs/node/pull/61916)
* \[[`33a364cb62`](https://github.com/nodejs/node/commit/33a364cb62)] - **doc**: explicitly mention Slack handle (Rafael Gonzaga) [#61986](https://github.com/nodejs/node/pull/61986)
* \[[`46a61922bd`](https://github.com/nodejs/node/commit/46a61922bd)] - **doc**: support toolchain Visual Studio 2022 & 2026 + Windows 11 SDK (Mike McCready) [#61864](https://github.com/nodejs/node/pull/61864)
* \[[`dc12a257aa`](https://github.com/nodejs/node/commit/dc12a257aa)] - **doc**: rename invalid `function` parameter (René) [#61942](https://github.com/nodejs/node/pull/61942)
* \[[`6259abcf55`](https://github.com/nodejs/node/commit/6259abcf55)] - **http**: validate ClientRequest path on set (Matteo Collina) [#62030](https://github.com/nodejs/node/pull/62030)
* \[[`dafdc0a5b8`](https://github.com/nodejs/node/commit/dafdc0a5b8)] - **http**: validate headers in writeEarlyHints (Richard Clarke) [#61897](https://github.com/nodejs/node/pull/61897)
* \[[`3c94b56fa6`](https://github.com/nodejs/node/commit/3c94b56fa6)] - **inspector**: unwrap internal/debugger/inspect imports (René) [#61974](https://github.com/nodejs/node/pull/61974)
* \[[`8a24c17648`](https://github.com/nodejs/node/commit/8a24c17648)] - **lib**: improve argument handling in Blob constructor (Ms2ger) [#61980](https://github.com/nodejs/node/pull/61980)
* \[[`21d4baf256`](https://github.com/nodejs/node/commit/21d4baf256)] - **meta**: bump github/codeql-action from 4.32.0 to 4.32.4 (dependabot\[bot]) [#61911](https://github.com/nodejs/node/pull/61911)
* \[[`59a726a8e3`](https://github.com/nodejs/node/commit/59a726a8e3)] - **meta**: bump step-security/harden-runner from 2.14.1 to 2.14.2 (dependabot\[bot]) [#61909](https://github.com/nodejs/node/pull/61909)
* \[[`0072b7f991`](https://github.com/nodejs/node/commit/0072b7f991)] - **meta**: bump actions/stale from 10.1.1 to 10.2.0 (dependabot\[bot]) [#61908](https://github.com/nodejs/node/pull/61908)
* \[[`3d160cd049`](https://github.com/nodejs/node/commit/3d160cd049)] - **module**: run require.resolve through module.registerHooks() (Joyee Cheung) [#62028](https://github.com/nodejs/node/pull/62028)
* \[[`999bf22f47`](https://github.com/nodejs/node/commit/999bf22f47)] - **repl**: keep reference count for `process.on('newListener')` (Anna Henningsen) [#61895](https://github.com/nodejs/node/pull/61895)
* \[[`4c181e2277`](https://github.com/nodejs/node/commit/4c181e2277)] - **(SEMVER-MINOR)** **sqlite**: add limits property to DatabaseSync (Mert Can Altin) [#61298](https://github.com/nodejs/node/pull/61298)
* \[[`aee2a18257`](https://github.com/nodejs/node/commit/aee2a18257)] - **src**: fix flags argument offset in JSUdpWrap (Weixie Cui) [#61948](https://github.com/nodejs/node/pull/61948)
* \[[`46ee1eddd7`](https://github.com/nodejs/node/commit/46ee1eddd7)] - **(SEMVER-MINOR)** **src**: add C++ support for diagnostics channels (RafaelGSS) [#61869](https://github.com/nodejs/node/pull/61869)
* \[[`9ddd1a9c27`](https://github.com/nodejs/node/commit/9ddd1a9c27)] - **(SEMVER-MINOR)** **src,permission**: add --permission-audit (RafaelGSS) [#61869](https://github.com/nodejs/node/pull/61869)
* \[[`ea2df2a16f`](https://github.com/nodejs/node/commit/ea2df2a16f)] - **stream**: fix pipeTo to defer writes per WHATWG spec (Matteo Collina) [#61800](https://github.com/nodejs/node/pull/61800)
* \[[`aa0c7b09e0`](https://github.com/nodejs/node/commit/aa0c7b09e0)] - **test**: remove unnecessary `process.exit` calls from test files (Antoine du Hamel) [#62020](https://github.com/nodejs/node/pull/62020)
* \[[`ad96a6578f`](https://github.com/nodejs/node/commit/ad96a6578f)] - **test**: skip `test-url` on `--shared-ada` builds (Antoine du Hamel) [#62019](https://github.com/nodejs/node/pull/62019)
* \[[`7c72a31e4b`](https://github.com/nodejs/node/commit/7c72a31e4b)] - **test**: skip strace test with shared openssl (Richard Lau) [#61987](https://github.com/nodejs/node/pull/61987)
* \[[`604456c163`](https://github.com/nodejs/node/commit/604456c163)] - **test**: avoid flaky debugger restart waits (Yuya Inoue) [#61773](https://github.com/nodejs/node/pull/61773)
* \[[`4890d6bd43`](https://github.com/nodejs/node/commit/4890d6bd43)] - **test\_runner**: run afterEach on runtime skip (Igor Shevelenkov) [#61525](https://github.com/nodejs/node/pull/61525)
* \[[`fce2930110`](https://github.com/nodejs/node/commit/fce2930110)] - **test\_runner**: expose expectFailure message (sangwook) [#61563](https://github.com/nodejs/node/pull/61563)
* \[[`0d97ec4044`](https://github.com/nodejs/node/commit/0d97ec4044)] - **(SEMVER-MINOR)** **test\_runner**: expose worker ID for concurrent test execution (Ali Hassan) [#61394](https://github.com/nodejs/node/pull/61394)
* \[[`243e6b2009`](https://github.com/nodejs/node/commit/243e6b2009)] - **test\_runner**: replace native methods with primordials (Ayoub Mabrouk) [#61219](https://github.com/nodejs/node/pull/61219)
* \[[`bf1ed7e647`](https://github.com/nodejs/node/commit/bf1ed7e647)] - **tls**: forward keepAlive, keepAliveInitialDelay, noDelay to socket (Sergey Zelenov) [#62004](https://github.com/nodejs/node/pull/62004)
* \[[`746d0cebbf`](https://github.com/nodejs/node/commit/746d0cebbf)] - **tools**: fix parsing of commit trailers in `lint-release-proposal` GHA (Antoine du Hamel) [#62077](https://github.com/nodejs/node/pull/62077)
* \[[`0f15079d94`](https://github.com/nodejs/node/commit/0f15079d94)] - **tools**: remove custom logic for skipping `test-strace-openat-openssl` (Antoine du Hamel) [#62038](https://github.com/nodejs/node/pull/62038)
* \[[`54a055a59d`](https://github.com/nodejs/node/commit/54a055a59d)] - **tools**: bump minimatch from 3.1.2 to 3.1.3 in `/tools/clang-format` (dependabot\[bot]) [#61977](https://github.com/nodejs/node/pull/61977)
* \[[`a28744cb62`](https://github.com/nodejs/node/commit/a28744cb62)] - **tools**: fix permissions for merve update script (Richard Lau) [#62023](https://github.com/nodejs/node/pull/62023)
* \[[`31e7936354`](https://github.com/nodejs/node/commit/31e7936354)] - **tools**: revert tools GHA workflow to ubuntu-latest (Richard Lau) [#62024](https://github.com/nodejs/node/pull/62024)
* \[[`0a96a16e1f`](https://github.com/nodejs/node/commit/0a96a16e1f)] - **tools**: bump minimatch from 3.1.2 to 3.1.3 in /tools/eslint (dependabot\[bot]) [#61976](https://github.com/nodejs/node/pull/61976)
* \[[`f279233412`](https://github.com/nodejs/node/commit/f279233412)] - **tools**: roll back to x86 runner on `scorecard.yml` (Antoine du Hamel) [#61944](https://github.com/nodejs/node/pull/61944)
* \[[`192c0382f4`](https://github.com/nodejs/node/commit/192c0382f4)] - **util**: add fast path to stripVTControlCharacters (Hiroki Osame) [#61833](https://github.com/nodejs/node/pull/61833)

<a id="25.7.0"></a>

## 2026-02-24, Version 25.7.0 (Current), @ruyadorno prepared by @aduh95

### Notable Changes

* \[[`b0a79b10f0`](https://github.com/nodejs/node/commit/b0a79b10f0)] - **(SEMVER-MINOR)** **http2**: add http1Options for HTTP/1 fallback configuration (Amol Yadav) [#61713](https://github.com/nodejs/node/pull/61713)
* \[[`2d874dfb8e`](https://github.com/nodejs/node/commit/2d874dfb8e)] - **(SEMVER-MINOR)** **sea**: support ESM entry point in SEA (Joyee Cheung) [#61813](https://github.com/nodejs/node/pull/61813)
* \[[`ee59127664`](https://github.com/nodejs/node/commit/ee59127664)] - **sqlite**: mark as release candidate (Matteo Collina) [#61262](https://github.com/nodejs/node/pull/61262)
* \[[`608736e19e`](https://github.com/nodejs/node/commit/608736e19e)] - **(SEMVER-MINOR)** **stream**: rename `Duplex.toWeb()` type option to `readableType` (René) [#61632](https://github.com/nodejs/node/pull/61632)
* \[[`a43375999f`](https://github.com/nodejs/node/commit/a43375999f)] - **(SEMVER-MINOR)** **test\_runner**: show interrupted test on SIGINT (Matteo Collina) [#61676](https://github.com/nodejs/node/pull/61676)

### Commits

* \[[`ab4375e141`](https://github.com/nodejs/node/commit/ab4375e141)] - **benchmark**: add startup benchmark for ESM entrypoint (Joyee Cheung) [#61769](https://github.com/nodejs/node/pull/61769)
* \[[`8d83d8026b`](https://github.com/nodejs/node/commit/8d83d8026b)] - **build**: add temporal test on GHA windows (Chengzhong Wu) [#61810](https://github.com/nodejs/node/pull/61810)
* \[[`aab153eec3`](https://github.com/nodejs/node/commit/aab153eec3)] - **build**: skip sscache action on non-main branches (Joyee Cheung) [#61790](https://github.com/nodejs/node/pull/61790)
* \[[`9e40fb93bc`](https://github.com/nodejs/node/commit/9e40fb93bc)] - **build**: use path-ignore in GHA coverage-windows.yml (Chengzhong Wu) [#61811](https://github.com/nodejs/node/pull/61811)
* \[[`4896653361`](https://github.com/nodejs/node/commit/4896653361)] - **build**: generate\_config\_gypi.py generates valid JSON (Shelley Vohr) [#61791](https://github.com/nodejs/node/pull/61791)
* \[[`bb82b44de0`](https://github.com/nodejs/node/commit/bb82b44de0)] - **build**: build with v8 gdbjit support on supported platform (Joyee Cheung) [#61010](https://github.com/nodejs/node/pull/61010)
* \[[`e7173a093a`](https://github.com/nodejs/node/commit/e7173a093a)] - **build**: show cc outputs when version detection failed (Chengzhong Wu) [#61700](https://github.com/nodejs/node/pull/61700)
* \[[`848050d38f`](https://github.com/nodejs/node/commit/848050d38f)] - **build,win**: add WinGet Visual Studio 2022 Build Tools Edition config (Mike McCready) [#61652](https://github.com/nodejs/node/pull/61652)
* \[[`938841e1cd`](https://github.com/nodejs/node/commit/938841e1cd)] - **crypto**: always return certificate serial numbers as uppercase (Anna Henningsen) [#61752](https://github.com/nodejs/node/pull/61752)
* \[[`dba9001d6f`](https://github.com/nodejs/node/commit/dba9001d6f)] - **deps**: upgrade npm to 11.10.1 (npm team) [#61892](https://github.com/nodejs/node/pull/61892)
* \[[`75c8e18d2f`](https://github.com/nodejs/node/commit/75c8e18d2f)] - **deps**: update nbytes to 0.1.3 (Node.js GitHub Bot) [#61879](https://github.com/nodejs/node/pull/61879)
* \[[`4ca1597f25`](https://github.com/nodejs/node/commit/4ca1597f25)] - **deps**: remove stale OpenSSL arch configs (René) [#61834](https://github.com/nodejs/node/pull/61834)
* \[[`c4f298c729`](https://github.com/nodejs/node/commit/c4f298c729)] - **deps**: update llhttp to 9.3.1 (Node.js GitHub Bot) [#61827](https://github.com/nodejs/node/pull/61827)
* \[[`7d63a2df93`](https://github.com/nodejs/node/commit/7d63a2df93)] - **deps**: V8: cherry-pick 64b36b441179 (Rafael Magrin) [#61712](https://github.com/nodejs/node/pull/61712)
* \[[`241a6b7088`](https://github.com/nodejs/node/commit/241a6b7088)] - **deps**: update googletest to 5a9c3f9e8d9b90bbbe8feb32902146cb8f7c1757 (Node.js GitHub Bot) [#61731](https://github.com/nodejs/node/pull/61731)
* \[[`eec896c0e0`](https://github.com/nodejs/node/commit/eec896c0e0)] - **deps**: V8: backport 6a0a25abaed3 (Vivian Wang) [#61666](https://github.com/nodejs/node/pull/61666)
* \[[`5a9874af09`](https://github.com/nodejs/node/commit/5a9874af09)] - **doc**: clarify status of feature request issues (Antoine du Hamel) [#61505](https://github.com/nodejs/node/pull/61505)
* \[[`0648ac64aa`](https://github.com/nodejs/node/commit/0648ac64aa)] - **doc**: add esm and cjs examples to node:vm (Alfredo González) [#61498](https://github.com/nodejs/node/pull/61498)
* \[[`8b38718294`](https://github.com/nodejs/node/commit/8b38718294)] - **doc**: clarify build environment is trusted in threat model (Matteo Collina) [#61865](https://github.com/nodejs/node/pull/61865)
* \[[`10e86818ee`](https://github.com/nodejs/node/commit/10e86818ee)] - **doc**: remove incorrect mention of `module` in `typescript.md` (Rob Palmer) [#61839](https://github.com/nodejs/node/pull/61839)
* \[[`b50376f527`](https://github.com/nodejs/node/commit/b50376f527)] - **doc**: simplify addAbortListener example (Chemi Atlow) [#61842](https://github.com/nodejs/node/pull/61842)
* \[[`dea0e7a856`](https://github.com/nodejs/node/commit/dea0e7a856)] - **doc**: fix typo in --disable-wasm-trap-handler description (Dmytro Semchuk) [#61820](https://github.com/nodejs/node/pull/61820)
* \[[`57ac1f5aa0`](https://github.com/nodejs/node/commit/57ac1f5aa0)] - **doc**: clean up globals.md (René) [#61822](https://github.com/nodejs/node/pull/61822)
* \[[`4c30d2bb4d`](https://github.com/nodejs/node/commit/4c30d2bb4d)] - **doc**: remove obsolete Boxstarter automated install (Mike McCready) [#61785](https://github.com/nodejs/node/pull/61785)
* \[[`db610b9e32`](https://github.com/nodejs/node/commit/db610b9e32)] - **doc**: clarify async caveats for `events.once()` (René) [#61572](https://github.com/nodejs/node/pull/61572)
* \[[`b4a826b11c`](https://github.com/nodejs/node/commit/b4a826b11c)] - **doc**: update Juan's security steward info (Juan José) [#61754](https://github.com/nodejs/node/pull/61754)
* \[[`7d9cc5dc54`](https://github.com/nodejs/node/commit/7d9cc5dc54)] - **doc**: fix methods being documented as properties in `process.md` (Antoine du Hamel) [#61765](https://github.com/nodejs/node/pull/61765)
* \[[`aa0362c26a`](https://github.com/nodejs/node/commit/aa0362c26a)] - **doc**: add riscv64 info into platform list (Lu Yahan) [#42251](https://github.com/nodejs/node/pull/42251)
* \[[`9b0101b65b`](https://github.com/nodejs/node/commit/9b0101b65b)] - **doc**: fix dropdown menu being obscured at <600px due to stacking context (Jeff) [#61735](https://github.com/nodejs/node/pull/61735)
* \[[`df2c65b3e4`](https://github.com/nodejs/node/commit/df2c65b3e4)] - **doc**: fix spacing in process message event (Aviv Keller) [#61756](https://github.com/nodejs/node/pull/61756)
* \[[`01018559f5`](https://github.com/nodejs/node/commit/01018559f5)] - **doc**: move describe/it aliases section before expectFailure (Luca Raveri) [#61567](https://github.com/nodejs/node/pull/61567)
* \[[`49443583af`](https://github.com/nodejs/node/commit/49443583af)] - **doc**: fix broken links of net.md (YuSheng Chen) [#61673](https://github.com/nodejs/node/pull/61673)
* \[[`af7c927a2a`](https://github.com/nodejs/node/commit/af7c927a2a)] - **doc**: clean up Windows code snippet in `child_process.md` (reillylm) [#61422](https://github.com/nodejs/node/pull/61422)
* \[[`221648a687`](https://github.com/nodejs/node/commit/221648a687)] - **esm**: update outdated FIXME comment in translators.js (Karan Mangtani) [#61715](https://github.com/nodejs/node/pull/61715)
* \[[`4484e14a31`](https://github.com/nodejs/node/commit/4484e14a31)] - **events**: don't call resume after close (Сковорода Никита Андреевич) [#60548](https://github.com/nodejs/node/pull/60548)
* \[[`4cecbe1f53`](https://github.com/nodejs/node/commit/4cecbe1f53)] - **fs**: add `throwIfNoEntry` option for fs.stat and fs.promises.stat (Juan José) [#61178](https://github.com/nodejs/node/pull/61178)
* \[[`2c94967684`](https://github.com/nodejs/node/commit/2c94967684)] - **http**: remove redundant keepAliveTimeoutBuffer assignment (Efe) [#61743](https://github.com/nodejs/node/pull/61743)
* \[[`435f3dd8e4`](https://github.com/nodejs/node/commit/435f3dd8e4)] - **http**: attach error handler to socket synchronously in onSocket (RajeshKumar11) [#61770](https://github.com/nodejs/node/pull/61770)
* \[[`ce0ebd853d`](https://github.com/nodejs/node/commit/ce0ebd853d)] - **http**: fix keep-alive socket reuse race in requestOnFinish (Martin Slota) [#61710](https://github.com/nodejs/node/pull/61710)
* \[[`8103a78b6a`](https://github.com/nodejs/node/commit/8103a78b6a)] - **http2**: add strictSingleValueFields option to relax header validation (Tim Perry) [#59917](https://github.com/nodejs/node/pull/59917)
* \[[`b0a79b10f0`](https://github.com/nodejs/node/commit/b0a79b10f0)] - **(SEMVER-MINOR)** **http2**: add http1Options for HTTP/1 fallback configuration (Amol Yadav) [#61713](https://github.com/nodejs/node/pull/61713)
* \[[`c589b6b23c`](https://github.com/nodejs/node/commit/c589b6b23c)] - **http2**: fix FileHandle leak in respondWithFile (sangwook) [#61707](https://github.com/nodejs/node/pull/61707)
* \[[`df477202ae`](https://github.com/nodejs/node/commit/df477202ae)] - **lib**: reduce cycles in esm loader and load it in snapshot (Joyee Cheung) [#61769](https://github.com/nodejs/node/pull/61769)
* \[[`deda50a819`](https://github.com/nodejs/node/commit/deda50a819)] - **lib**: remove top-level getOptionValue() calls in lib/internal/modules (Joyee Cheung) [#61769](https://github.com/nodejs/node/pull/61769)
* \[[`b1c1ddff79`](https://github.com/nodejs/node/commit/b1c1ddff79)] - **lib**: optimize styleText when validateStream is false (Rafael Gonzaga) [#61792](https://github.com/nodejs/node/pull/61792)
* \[[`df334f7fa0`](https://github.com/nodejs/node/commit/df334f7fa0)] - **meta**: use SCCACHE\_GHA\_ENABLED for shared build workflows (René) [#61640](https://github.com/nodejs/node/pull/61640)
* \[[`e1b2cd605f`](https://github.com/nodejs/node/commit/e1b2cd605f)] - **meta**: bump cachix/install-nix-action from 31.9.0 to 31.9.1 (dependabot\[bot]) [#61910](https://github.com/nodejs/node/pull/61910)
* \[[`24b858547a`](https://github.com/nodejs/node/commit/24b858547a)] - **module**: fix extensionless entry with explicit type=commonjs (Yuya Inoue) [#61600](https://github.com/nodejs/node/pull/61600)
* \[[`4f2f8006bd`](https://github.com/nodejs/node/commit/4f2f8006bd)] - **repl**: fix FileHandle leak in history initialization (sangwook) [#61706](https://github.com/nodejs/node/pull/61706)
* \[[`2d874dfb8e`](https://github.com/nodejs/node/commit/2d874dfb8e)] - **(SEMVER-MINOR)** **sea**: support ESM entry point in SEA (Joyee Cheung) [#61813](https://github.com/nodejs/node/pull/61813)
* \[[`ee59127664`](https://github.com/nodejs/node/commit/ee59127664)] - **sqlite**: mark as release candidate (Matteo Collina) [#61262](https://github.com/nodejs/node/pull/61262)
* \[[`f14ff14473`](https://github.com/nodejs/node/commit/f14ff14473)] - **src**: remove unnecessary `c_str()` conversions in diagnostic messages (Anna Henningsen) [#61786](https://github.com/nodejs/node/pull/61786)
* \[[`26a09e541d`](https://github.com/nodejs/node/commit/26a09e541d)] - **src**: use bool literals in TraceEnvVarOptions (Tobias Nießen) [#61425](https://github.com/nodejs/node/pull/61425)
* \[[`62b0758c47`](https://github.com/nodejs/node/commit/62b0758c47)] - **src**: fix `--build-sea` default executable path (Alex Schwartz) [#61708](https://github.com/nodejs/node/pull/61708)
* \[[`b5724921b1`](https://github.com/nodejs/node/commit/b5724921b1)] - **src**: track allocations made by zstd streams (Anna Henningsen) [#61717](https://github.com/nodejs/node/pull/61717)
* \[[`3d1d1523a5`](https://github.com/nodejs/node/commit/3d1d1523a5)] - **src**: do not store compression methods on Brotli classes (Anna Henningsen) [#61717](https://github.com/nodejs/node/pull/61717)
* \[[`b2915cda77`](https://github.com/nodejs/node/commit/b2915cda77)] - **src**: extract zlib allocation tracking into its own class (Anna Henningsen) [#61717](https://github.com/nodejs/node/pull/61717)
* \[[`3032a7e3c6`](https://github.com/nodejs/node/commit/3032a7e3c6)] - **src**: release memory for zstd contexts in `Close()` (Anna Henningsen) [#61717](https://github.com/nodejs/node/pull/61717)
* \[[`bc2287db74`](https://github.com/nodejs/node/commit/bc2287db74)] - **src**: add more checks and clarify docs for external references (Joyee Cheung) [#61719](https://github.com/nodejs/node/pull/61719)
* \[[`5daf282e33`](https://github.com/nodejs/node/commit/5daf282e33)] - **src**: fix cjs\_lexer external reference registration (Joyee Cheung) [#61718](https://github.com/nodejs/node/pull/61718)
* \[[`fb2db5f947`](https://github.com/nodejs/node/commit/fb2db5f947)] - **src**: support import() and import.meta in embedder-run modules (Joyee Cheung) [#61654](https://github.com/nodejs/node/pull/61654)
* \[[`e146591002`](https://github.com/nodejs/node/commit/e146591002)] - **stream**: fix decoded fromList chunk boundary check (Thomas Watson) [#61884](https://github.com/nodejs/node/pull/61884)
* \[[`065200a5f0`](https://github.com/nodejs/node/commit/065200a5f0)] - **stream**: add fast paths for webstreams read and pipeTo (Matteo Collina) [#61807](https://github.com/nodejs/node/pull/61807)
* \[[`608736e19e`](https://github.com/nodejs/node/commit/608736e19e)] - **(SEMVER-MINOR)** **stream**: rename `Duplex.toWeb()` type option to `readableType` (René) [#61632](https://github.com/nodejs/node/pull/61632)
* \[[`51587d684d`](https://github.com/nodejs/node/commit/51587d684d)] - **test**: fix typos in test files (Daijiro Wachi) [#61408](https://github.com/nodejs/node/pull/61408)
* \[[`17b2361360`](https://github.com/nodejs/node/commit/17b2361360)] - **test**: allow filtering async internal frames in assertSnapshot (Joyee Cheung) [#61769](https://github.com/nodejs/node/pull/61769)
* \[[`3f6a5f5f7f`](https://github.com/nodejs/node/commit/3f6a5f5f7f)] - **test**: unify assertSnapshot stacktrace transform (Chengzhong Wu) [#61665](https://github.com/nodejs/node/pull/61665)
* \[[`c8dac320de`](https://github.com/nodejs/node/commit/c8dac320de)] - **test**: check stability block position in API markdown (René) [#58590](https://github.com/nodejs/node/pull/58590)
* \[[`6809ef8d04`](https://github.com/nodejs/node/commit/6809ef8d04)] - **test**: adapt buffer test for v8 sandbox (Shelley Vohr) [#61772](https://github.com/nodejs/node/pull/61772)
* \[[`60f5771a74`](https://github.com/nodejs/node/commit/60f5771a74)] - **test**: update FileAPI tests from WPT (Ms2ger) [#61750](https://github.com/nodejs/node/pull/61750)
* \[[`d2fef4a31a`](https://github.com/nodejs/node/commit/d2fef4a31a)] - **test**: update WPT for WebCryptoAPI to 7cbe7e8ed9 (Node.js GitHub Bot) [#61729](https://github.com/nodejs/node/pull/61729)
* \[[`d7a87f14da`](https://github.com/nodejs/node/commit/d7a87f14da)] - **test**: update WPT for url to efb889eb4c (Node.js GitHub Bot) [#61728](https://github.com/nodejs/node/pull/61728)
* \[[`b6ae1fc4b8`](https://github.com/nodejs/node/commit/b6ae1fc4b8)] - **test**: split test-embedding.js and run tests in parallel (Joyee Cheung) [#61571](https://github.com/nodejs/node/pull/61571)
* \[[`a43375999f`](https://github.com/nodejs/node/commit/a43375999f)] - **(SEMVER-MINOR)** **test\_runner**: show interrupted test on SIGINT (Matteo Collina) [#61676](https://github.com/nodejs/node/pull/61676)
* \[[`1c02aa09b0`](https://github.com/nodejs/node/commit/1c02aa09b0)] - **test\_runner**: fix suite rerun (Moshe Atlow) [#61775](https://github.com/nodejs/node/pull/61775)
* \[[`47821ec609`](https://github.com/nodejs/node/commit/47821ec609)] - **tools**: switch to ARM runners on GHA jobs (Antoine du Hamel) [#61903](https://github.com/nodejs/node/pull/61903)
* \[[`1630a56370`](https://github.com/nodejs/node/commit/1630a56370)] - **tools**: avoid building twice in coverage jobs (Antoine du Hamel) [#61899](https://github.com/nodejs/node/pull/61899)
* \[[`89318b0a02`](https://github.com/nodejs/node/commit/89318b0a02)] - **tools**: fix auto-start-ci (Antoine du Hamel) [#61900](https://github.com/nodejs/node/pull/61900)
* \[[`ee107f5e84`](https://github.com/nodejs/node/commit/ee107f5e84)] - **tools**: do not checkout repo in `auto-start-ci.yml` (Antoine du Hamel) [#61874](https://github.com/nodejs/node/pull/61874)
* \[[`c2de1fa619`](https://github.com/nodejs/node/commit/c2de1fa619)] - **tools**: cache V8 build on test-shared workflow (Antoine du Hamel) [#61860](https://github.com/nodejs/node/pull/61860)
* \[[`111c77ec94`](https://github.com/nodejs/node/commit/111c77ec94)] - **tools**: automate updates for test/fixtures/test426 (Rich Trott) [#60978](https://github.com/nodejs/node/pull/60978)
* \[[`ea8886f7d5`](https://github.com/nodejs/node/commit/ea8886f7d5)] - **tools**: use ubuntu-slim runner in GHA (Antoine du Hamel) [#61759](https://github.com/nodejs/node/pull/61759)
* \[[`9db82ba786`](https://github.com/nodejs/node/commit/9db82ba786)] - **tools**: bump unist-util-visit in /tools/doc in the doc group (dependabot\[bot]) [#61646](https://github.com/nodejs/node/pull/61646)
* \[[`c8e58c56b9`](https://github.com/nodejs/node/commit/c8e58c56b9)] - **tools**: bump the eslint group in /tools/eslint with 6 updates (dependabot\[bot]) [#61628](https://github.com/nodejs/node/pull/61628)
* \[[`2518ec77e8`](https://github.com/nodejs/node/commit/2518ec77e8)] - **tools**: use ubuntu-slim runner in GHA (Antoine du Hamel) [#61734](https://github.com/nodejs/node/pull/61734)
* \[[`c5ad2beba3`](https://github.com/nodejs/node/commit/c5ad2beba3)] - **tools**: fix small inconsistencies in JSON doc output (Antoine du Hamel) [#61757](https://github.com/nodejs/node/pull/61757)
* \[[`a9f90bee0a`](https://github.com/nodejs/node/commit/a9f90bee0a)] - **tools**: use ubuntu-latest runner in `notify-on-push` workflow (Antoine du Hamel) [#61742](https://github.com/nodejs/node/pull/61742)
* \[[`30e38182d9`](https://github.com/nodejs/node/commit/30e38182d9)] - **watch**: get flags from execArgv (Efe) [#61779](https://github.com/nodejs/node/pull/61779)
* \[[`da1a08a3a5`](https://github.com/nodejs/node/commit/da1a08a3a5)] - **worker**: eliminate race condition in process.cwd() (giulioAZ) [#61664](https://github.com/nodejs/node/pull/61664)
* \[[`dfac82a235`](https://github.com/nodejs/node/commit/dfac82a235)] - **zlib**: add support for brotli compression dictionary (Andy Weiss) [#61763](https://github.com/nodejs/node/pull/61763)

<a id="25.6.1"></a>

## 2026-02-10, Version 25.6.1 (Current), @aduh95

### Notable Changes

* \[[`47df4328d7`](https://github.com/nodejs/node/commit/47df4328d7)] - **build,deps**: replace `cjs-module-lexer` with `merve` (Yagiz Nizipli) [#61456](https://github.com/nodejs/node/pull/61456)

### Commits

* \[[`47df4328d7`](https://github.com/nodejs/node/commit/47df4328d7)] - **build,deps**: replace cjs-module-lexer with merve (Yagiz Nizipli) [#61456](https://github.com/nodejs/node/pull/61456)
* \[[`a727054503`](https://github.com/nodejs/node/commit/a727054503)] - **deps**: upgrade npm to 11.9.0 (npm team) [#61685](https://github.com/nodejs/node/pull/61685)
* \[[`c78c49ed6b`](https://github.com/nodejs/node/commit/c78c49ed6b)] - **deps**: update amaro to 1.1.7 (Node.js GitHub Bot) [#61730](https://github.com/nodejs/node/pull/61730)
* \[[`4790816d9b`](https://github.com/nodejs/node/commit/4790816d9b)] - **deps**: update minimatch to 10.1.2 (Node.js GitHub Bot) [#61732](https://github.com/nodejs/node/pull/61732)
* \[[`8c71740e8a`](https://github.com/nodejs/node/commit/8c71740e8a)] - **deps**: update undici to 7.21.0 (Node.js GitHub Bot) [#61683](https://github.com/nodejs/node/pull/61683)
* \[[`e559ef6ab1`](https://github.com/nodejs/node/commit/e559ef6ab1)] - **deps**: update googletest to 56efe3983185e3f37e43415d1afa97e3860f187f (Node.js GitHub Bot) [#61605](https://github.com/nodejs/node/pull/61605)
* \[[`300de2bb5a`](https://github.com/nodejs/node/commit/300de2bb5a)] - **deps**: update amaro to 1.1.6 (Node.js GitHub Bot) [#61603](https://github.com/nodejs/node/pull/61603)
* \[[`e71e9505ef`](https://github.com/nodejs/node/commit/e71e9505ef)] - **dns**: fix Windows SRV ECONNREFUSED by adjusting c-ares fallback detection (notvivek12) [#61453](https://github.com/nodejs/node/pull/61453)
* \[[`439b816bc7`](https://github.com/nodejs/node/commit/439b816bc7)] - **doc**: clarify EventEmitter error handling in threat model (Matteo Collina) [#61701](https://github.com/nodejs/node/pull/61701)
* \[[`c1c6641f23`](https://github.com/nodejs/node/commit/c1c6641f23)] - **doc**: mention default option for test runner env (Steven) [#61659](https://github.com/nodejs/node/pull/61659)
* \[[`41ec451f98`](https://github.com/nodejs/node/commit/41ec451f98)] - **doc**: fix --inspect security warning section (Tim Perry) [#61675](https://github.com/nodejs/node/pull/61675)
* \[[`bb90ef2356`](https://github.com/nodejs/node/commit/bb90ef2356)] - **doc**: document `url.format(urlString)` as deprecated under DEP0169 (René) [#61644](https://github.com/nodejs/node/pull/61644)
* \[[`513df82e6f`](https://github.com/nodejs/node/commit/513df82e6f)] - **doc**: update to Visual Studio 2026 manual install (Mike McCready) [#61655](https://github.com/nodejs/node/pull/61655)
* \[[`9409d30736`](https://github.com/nodejs/node/commit/9409d30736)] - **doc**: deprecation add more codemod (Augustin Mauroy) [#61642](https://github.com/nodejs/node/pull/61642)
* \[[`75a7a67151`](https://github.com/nodejs/node/commit/75a7a67151)] - **doc**: fix grammatical error in README.md (ayj8201) [#61653](https://github.com/nodejs/node/pull/61653)
* \[[`821e59e884`](https://github.com/nodejs/node/commit/821e59e884)] - **doc**: correct tools README Boxstarter link (Mike McCready) [#61638](https://github.com/nodejs/node/pull/61638)
* \[[`4998f539a0`](https://github.com/nodejs/node/commit/4998f539a0)] - **doc**: update `server.dropMaxConnection` link (YuSheng Chen) [#61584](https://github.com/nodejs/node/pull/61584)
* \[[`9383ac4ab7`](https://github.com/nodejs/node/commit/9383ac4ab7)] - **http**: implement slab allocation for HTTP header parsing (Mert Can Altin) [#61375](https://github.com/nodejs/node/pull/61375)
* \[[`e90eb1d561`](https://github.com/nodejs/node/commit/e90eb1d561)] - **meta**: persist sccache daemon until end of build workflows (René) [#61639](https://github.com/nodejs/node/pull/61639)
* \[[`ade36ac367`](https://github.com/nodejs/node/commit/ade36ac367)] - **meta**: bump github/codeql-action from 4.31.9 to 4.32.0 (dependabot\[bot]) [#61622](https://github.com/nodejs/node/pull/61622)
* \[[`26638bd67f`](https://github.com/nodejs/node/commit/26638bd67f)] - **meta**: bump step-security/harden-runner from 2.14.0 to 2.14.1 (dependabot\[bot]) [#61621](https://github.com/nodejs/node/pull/61621)
* \[[`eaa9a96cb6`](https://github.com/nodejs/node/commit/eaa9a96cb6)] - **meta**: bump actions/setup-python from 6.1.0 to 6.2.0 (dependabot\[bot]) [#61627](https://github.com/nodejs/node/pull/61627)
* \[[`fd98187828`](https://github.com/nodejs/node/commit/fd98187828)] - **meta**: bump cachix/cachix-action (dependabot\[bot]) [#61626](https://github.com/nodejs/node/pull/61626)
* \[[`820c1d021c`](https://github.com/nodejs/node/commit/820c1d021c)] - **meta**: bump actions/setup-node from 6.1.0 to 6.2.0 (dependabot\[bot]) [#61625](https://github.com/nodejs/node/pull/61625)
* \[[`72a4136bd5`](https://github.com/nodejs/node/commit/72a4136bd5)] - **meta**: bump actions/cache from 5.0.1 to 5.0.3 (dependabot\[bot]) [#61624](https://github.com/nodejs/node/pull/61624)
* \[[`e3ef6cb3bc`](https://github.com/nodejs/node/commit/e3ef6cb3bc)] - **meta**: bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 (dependabot\[bot]) [#61623](https://github.com/nodejs/node/pull/61623)
* \[[`020a836202`](https://github.com/nodejs/node/commit/020a836202)] - **meta**: bump actions/stale from 10.1.0 to 10.1.1 (dependabot\[bot]) [#61620](https://github.com/nodejs/node/pull/61620)
* \[[`0df72f07c8`](https://github.com/nodejs/node/commit/0df72f07c8)] - **meta**: bump actions/checkout from 6.0.1 to 6.0.2 (dependabot\[bot]) [#61619](https://github.com/nodejs/node/pull/61619)
* \[[`d147c08b83`](https://github.com/nodejs/node/commit/d147c08b83)] - **module**: do not invoke resolve hooks twice for imported cjs (Joyee Cheung) [#61529](https://github.com/nodejs/node/pull/61529)
* \[[`a2843f8556`](https://github.com/nodejs/node/commit/a2843f8556)] - **net**: defer synchronous destroy calls in internalConnect (RajeshKumar11) [#61658](https://github.com/nodejs/node/pull/61658)
* \[[`7fb7030781`](https://github.com/nodejs/node/commit/7fb7030781)] - **repl**: fix flaky test-repl-programmatic-history (Matteo Collina) [#61614](https://github.com/nodejs/node/pull/61614)
* \[[`d4c9b5cf5b`](https://github.com/nodejs/node/commit/d4c9b5cf5b)] - **sqlite**: avoid extra copy for large text binds (Ali Hassan) [#61580](https://github.com/nodejs/node/pull/61580)
* \[[`aa1b3661d9`](https://github.com/nodejs/node/commit/aa1b3661d9)] - **sqlite**: use DictionaryTemplate for run() result (Mert Can Altin) [#61432](https://github.com/nodejs/node/pull/61432)
* \[[`9c8ad7e881`](https://github.com/nodejs/node/commit/9c8ad7e881)] - **src**: elide heap allocation in structured clone implementation (Anna Henningsen) [#61703](https://github.com/nodejs/node/pull/61703)
* \[[`c4ecfef93d`](https://github.com/nodejs/node/commit/c4ecfef93d)] - **src**: use simdutf for one-byte string UTF-8 write in stringBytes (Mert Can Altin) [#61696](https://github.com/nodejs/node/pull/61696)
* \[[`28905b9734`](https://github.com/nodejs/node/commit/28905b9734)] - **src**: consolidate C++ ReadFileSync/WriteFileSync utilities (Joyee Cheung) [#61662](https://github.com/nodejs/node/pull/61662)
* \[[`e90cec2f69`](https://github.com/nodejs/node/commit/e90cec2f69)] - **test**: restraint version replacement pattern in snapshots (Chengzhong Wu) [#61748](https://github.com/nodejs/node/pull/61748)
* \[[`adce20c0a1`](https://github.com/nodejs/node/commit/adce20c0a1)] - **test**: print stack immediately avoiding GC interleaving (Chengzhong Wu) [#61699](https://github.com/nodejs/node/pull/61699)
* \[[`7643bc8999`](https://github.com/nodejs/node/commit/7643bc8999)] - **test**: fix case-insensitive path matching on Windows (Matteo Collina) [#61682](https://github.com/nodejs/node/pull/61682)
* \[[`23d1ecf66f`](https://github.com/nodejs/node/commit/23d1ecf66f)] - **test**: fix flaky test-performance-eventloopdelay (Matteo Collina) [#61629](https://github.com/nodejs/node/pull/61629)
* \[[`99012a88ed`](https://github.com/nodejs/node/commit/99012a88ed)] - **test**: remove duplicate wpt tests (Filip Skokan) [#61617](https://github.com/nodejs/node/pull/61617)
* \[[`a8b32b8ce1`](https://github.com/nodejs/node/commit/a8b32b8ce1)] - **test**: fix race condition in watch mode tests (Matteo Collina) [#61615](https://github.com/nodejs/node/pull/61615)
* \[[`086a5a5a25`](https://github.com/nodejs/node/commit/086a5a5a25)] - **test**: update WPT for url to e3c46fdf55 (Node.js GitHub Bot) [#61602](https://github.com/nodejs/node/pull/61602)
* \[[`f0574fd419`](https://github.com/nodejs/node/commit/f0574fd419)] - **test**: use the skipIfNoWatch() utility function (Luigi Pinca) [#61531](https://github.com/nodejs/node/pull/61531)
* \[[`b064ddc221`](https://github.com/nodejs/node/commit/b064ddc221)] - **test**: unify assertSnapshot common patterns (Chengzhong Wu) [#61590](https://github.com/nodejs/node/pull/61590)
* \[[`17122e521b`](https://github.com/nodejs/node/commit/17122e521b)] - **test\_runner**: fix test enqueue when test file has syntax error (Edy Silva) [#61573](https://github.com/nodejs/node/pull/61573)
* \[[`bad3f02dd9`](https://github.com/nodejs/node/commit/bad3f02dd9)] - **tools**: enforce removal of `lts-watch-*` labels on release proposals (Antoine du Hamel) [#61672](https://github.com/nodejs/node/pull/61672)
* \[[`a8f33fd6bd`](https://github.com/nodejs/node/commit/a8f33fd6bd)] - **tools**: use ubuntu-slim runner in meta GitHub Actions (Tierney Cyren) [#61663](https://github.com/nodejs/node/pull/61663)
* \[[`c843e447ca`](https://github.com/nodejs/node/commit/c843e447ca)] - **tools**: test `--shared-merve` in `test-shared` workflow (Antoine du Hamel) [#61649](https://github.com/nodejs/node/pull/61649)
* \[[`2fedc03f96`](https://github.com/nodejs/node/commit/2fedc03f96)] - **tools**: update OpenSSL to 3.5.5 in `test-shared` (Antoine du Hamel) [#61551](https://github.com/nodejs/node/pull/61551)
* \[[`1c1db94670`](https://github.com/nodejs/node/commit/1c1db94670)] - **tools,win**: upgrade install additional tools to Visual Studio 2026 (Mike McCready) [#61562](https://github.com/nodejs/node/pull/61562)

<a id="25.6.0"></a>

## 2026-02-03, Version 25.6.0 (Current), @aduh95

### Notable Changes

* \[[`796ff46ae6`](https://github.com/nodejs/node/commit/796ff46ae6)] - **(SEMVER-MINOR)** **async\_hooks**: add `trackPromises` option to `createHook()` (Joyee Cheung) [#61415](https://github.com/nodejs/node/pull/61415)
* \[[`4cf94fae17`](https://github.com/nodejs/node/commit/4cf94fae17)] - **(SEMVER-MINOR)** **net**: add `setTOS` and `getTOS` to `Socket` (Amol Yadav) [#61503](https://github.com/nodejs/node/pull/61503)
* \[[`dce657071e`](https://github.com/nodejs/node/commit/dce657071e)] - **(SEMVER-MINOR)** **src**: add initial support for ESM in embedder API (Joyee Cheung) [#61548](https://github.com/nodejs/node/pull/61548)
* \[[`e62608bbcf`](https://github.com/nodejs/node/commit/e62608bbcf)] - **src**: improve `TextEncoder` encode performance with `simdutf` (Mert Can Altin) [#61496](https://github.com/nodejs/node/pull/61496)
* \[[`93938a4738`](https://github.com/nodejs/node/commit/93938a4738)] - **(SEMVER-MINOR)** **stream**: add `bytes()` method to `node:stream/consumers` (wantaek) [#60426](https://github.com/nodejs/node/pull/60426)
* \[[`5fe2582329`](https://github.com/nodejs/node/commit/5fe2582329)] - **(SEMVER-MINOR)** **test\_runner**: add `env` option to `run` function (Ethan Arrowood) [#61367](https://github.com/nodejs/node/pull/61367)
* \[[`a181d0c43d`](https://github.com/nodejs/node/commit/a181d0c43d)] - **url**: update Ada to v3.4.2 and support Unicode 17 (Yagiz Nizipli) [#61593](https://github.com/nodejs/node/pull/61593)

### Commits

* \[[`9c8d1b0278`](https://github.com/nodejs/node/commit/9c8d1b0278)] - **assert**: fix loose deepEqual arrays with undefined and null failing (Ruben Bridgewater) [#61587](https://github.com/nodejs/node/pull/61587)
* \[[`796ff46ae6`](https://github.com/nodejs/node/commit/796ff46ae6)] - **(SEMVER-MINOR)** **async\_hooks**: add trackPromises option to createHook() (Joyee Cheung) [#61415](https://github.com/nodejs/node/pull/61415)
* \[[`d23ee89693`](https://github.com/nodejs/node/commit/d23ee89693)] - **benchmark**: add streaming TextDecoder benchmark (Сковорода Никита Андреевич) [#61549](https://github.com/nodejs/node/pull/61549)
* \[[`8759db9d21`](https://github.com/nodejs/node/commit/8759db9d21)] - **buffer**: disallow ArrayBuffer transfer on pooled buffer (Chengzhong Wu) [#61372](https://github.com/nodejs/node/pull/61372)
* \[[`b2fb82946b`](https://github.com/nodejs/node/commit/b2fb82946b)] - **build**: add `--shared-lief` configure flag (Antoine du Hamel) [#61536](https://github.com/nodejs/node/pull/61536)
* \[[`0ef99de9da`](https://github.com/nodejs/node/commit/0ef99de9da)] - **build**: aix: deoptimize implementation-visitor.cc with --shared (Stewart X Addison) [#61550](https://github.com/nodejs/node/pull/61550)
* \[[`8f2083e73a`](https://github.com/nodejs/node/commit/8f2083e73a)] - **build**: enable -DV8\_ENABLE\_CHECKS flag (Ryuhei Shima) [#61327](https://github.com/nodejs/node/pull/61327)
* \[[`150910da70`](https://github.com/nodejs/node/commit/150910da70)] - **build,test**: add tests for binary linked with shared libnode (Joyee Cheung) [#61463](https://github.com/nodejs/node/pull/61463)
* \[[`fb7868ba98`](https://github.com/nodejs/node/commit/fb7868ba98)] - **build,win**: fix vs2022 compilation (Stefan Stojanovic) [#61530](https://github.com/nodejs/node/pull/61530)
* \[[`2c39a9234c`](https://github.com/nodejs/node/commit/2c39a9234c)] - **deps**: update undici to 7.19.2 (Node.js GitHub Bot) [#61566](https://github.com/nodejs/node/pull/61566)
* \[[`2a74379367`](https://github.com/nodejs/node/commit/2a74379367)] - **deps**: update archs files for openssl-3.5.5 (Node.js GitHub Bot) [#61547](https://github.com/nodejs/node/pull/61547)
* \[[`9e26a15c29`](https://github.com/nodejs/node/commit/9e26a15c29)] - **deps**: upgrade openssl sources to openssl-3.5.5 (Node.js GitHub Bot) [#61547](https://github.com/nodejs/node/pull/61547)
* \[[`f16b532e97`](https://github.com/nodejs/node/commit/f16b532e97)] - **deps**: update corepack to 0.34.6 (Node.js GitHub Bot) [#61510](https://github.com/nodejs/node/pull/61510)
* \[[`780e65c5c5`](https://github.com/nodejs/node/commit/780e65c5c5)] - **deps**: V8: cherry-pick c5ff7c4d6cde (Chengzhong Wu) [#61372](https://github.com/nodejs/node/pull/61372)
* \[[`2eb8e9d760`](https://github.com/nodejs/node/commit/2eb8e9d760)] - **deps**: update nghttp3 to 1.15.0 (Node.js GitHub Bot) [#61512](https://github.com/nodejs/node/pull/61512)
* \[[`a999edd8fd`](https://github.com/nodejs/node/commit/a999edd8fd)] - **deps**: update ngtcp2 to 1.20.0 (Node.js GitHub Bot) [#61511](https://github.com/nodejs/node/pull/61511)
* \[[`eedd3bb6b6`](https://github.com/nodejs/node/commit/eedd3bb6b6)] - **deps**: update undici to 7.19.1 (Node.js GitHub Bot) [#61514](https://github.com/nodejs/node/pull/61514)
* \[[`7d2bd59984`](https://github.com/nodejs/node/commit/7d2bd59984)] - **deps**: update undici to 7.19.0 (Node.js GitHub Bot) [#61470](https://github.com/nodejs/node/pull/61470)
* \[[`3ad4d9b11b`](https://github.com/nodejs/node/commit/3ad4d9b11b)] - **doc**: align Buffer.concat documentation with behavior (Gürgün Dayıoğlu) [#60405](https://github.com/nodejs/node/pull/60405)
* \[[`7e3eab5963`](https://github.com/nodejs/node/commit/7e3eab5963)] - **doc**: fix node-config-schema (Сковорода Никита Андреевич) [#61596](https://github.com/nodejs/node/pull/61596)
* \[[`cbcfaf9a35`](https://github.com/nodejs/node/commit/cbcfaf9a35)] - **doc**: update IBM/Red Hat volunteers with dedicated project time (Beth Griggs) [#61588](https://github.com/nodejs/node/pull/61588)
* \[[`3d68811d1a`](https://github.com/nodejs/node/commit/3d68811d1a)] - **doc**: regenerate `node.1` using `doc-kit` (Aviv Keller) [#61535](https://github.com/nodejs/node/pull/61535)
* \[[`71702c581a`](https://github.com/nodejs/node/commit/71702c581a)] - **doc**: restore @ChALkeR to collaborators (Сковорода Никита Андреевич) [#61553](https://github.com/nodejs/node/pull/61553)
* \[[`0ceb8cad59`](https://github.com/nodejs/node/commit/0ceb8cad59)] - **doc**: added `requestOCSP` option to `tls.connect` (ikeyan) [#61064](https://github.com/nodejs/node/pull/61064)
* \[[`da93e2178c`](https://github.com/nodejs/node/commit/da93e2178c)] - **doc**: move Security-Team from TSC to SECURITY (Rafael Gonzaga) [#61495](https://github.com/nodejs/node/pull/61495)
* \[[`4bea821b4c`](https://github.com/nodejs/node/commit/4bea821b4c)] - **lib**: use utf8 fast path for streaming TextDecoder (Сковорода Никита Андреевич) [#61549](https://github.com/nodejs/node/pull/61549)
* \[[`f05bad91d8`](https://github.com/nodejs/node/commit/f05bad91d8)] - **lib**: recycle queues (Robert Nagy) [#61461](https://github.com/nodejs/node/pull/61461)
* \[[`44b1927938`](https://github.com/nodejs/node/commit/44b1927938)] - **lib**: use StringPrototypeStartsWith from primordials in locks (Taejin Kim) [#61492](https://github.com/nodejs/node/pull/61492)
* \[[`a78259828a`](https://github.com/nodejs/node/commit/a78259828a)] - **lib**: unify ICU and no-ICU TextDecoder (Сковорода Никита Андреевич) [#61409](https://github.com/nodejs/node/pull/61409)
* \[[`a28ddd4594`](https://github.com/nodejs/node/commit/a28ddd4594)] - **module**: do not wrap module.\_load when tracing is not enabled (Joyee Cheung) [#61479](https://github.com/nodejs/node/pull/61479)
* \[[`4cf94fae17`](https://github.com/nodejs/node/commit/4cf94fae17)] - **(SEMVER-MINOR)** **net**: add `setTOS` and `getTOS` to `Socket` (Amol Yadav) [#61503](https://github.com/nodejs/node/pull/61503)
* \[[`b861451d57`](https://github.com/nodejs/node/commit/b861451d57)] - **process**: do not truncate long strings in `--print` (Mohamed Akram) [#61497](https://github.com/nodejs/node/pull/61497)
* \[[`4a2e184753`](https://github.com/nodejs/node/commit/4a2e184753)] - **sea**: print error information when fs operations fail (Joyee Cheung) [#61581](https://github.com/nodejs/node/pull/61581)
* \[[`45d25c47da`](https://github.com/nodejs/node/commit/45d25c47da)] - **sqlite**: change approach to fix segfault SQLTagStore (Bart Louwers) [#60462](https://github.com/nodejs/node/pull/60462)
* \[[`6993386320`](https://github.com/nodejs/node/commit/6993386320)] - **sqlite**: reserve vectors space (Guilherme Araújo) [#61540](https://github.com/nodejs/node/pull/61540)
* \[[`dce657071e`](https://github.com/nodejs/node/commit/dce657071e)] - **(SEMVER-MINOR)** **src**: add initial support for ESM in embedder API (Joyee Cheung) [#61548](https://github.com/nodejs/node/pull/61548)
* \[[`e62608bbcf`](https://github.com/nodejs/node/commit/e62608bbcf)] - **src**: improve textEncoder encode performance with simdutf (Mert Can Altin) [#61496](https://github.com/nodejs/node/pull/61496)
* \[[`0fce52d22c`](https://github.com/nodejs/node/commit/0fce52d22c)] - **src**: expose help texts into node-config-schema.json (Pietro Marchini) [#58680](https://github.com/nodejs/node/pull/58680)
* \[[`be644e2569`](https://github.com/nodejs/node/commit/be644e2569)] - **src**: throw RangeError on failed ArrayBuffer BackingStore allocation (Chengzhong Wu) [#61480](https://github.com/nodejs/node/pull/61480)
* \[[`93938a4738`](https://github.com/nodejs/node/commit/93938a4738)] - **(SEMVER-MINOR)** **stream**: add bytes() method to stream/consumers (wantaek) [#60426](https://github.com/nodejs/node/pull/60426)
* \[[`83b2bf8ea2`](https://github.com/nodejs/node/commit/83b2bf8ea2)] - **test**: split test-fs-watch-ignore-\* (Luigi Pinca) [#61494](https://github.com/nodejs/node/pull/61494)
* \[[`4726627443`](https://github.com/nodejs/node/commit/4726627443)] - **test**: aix: unflake test\_threadsafe\_function/test flaky on AIX (Stewart X Addison) [#61560](https://github.com/nodejs/node/pull/61560)
* \[[`6fbb0b7572`](https://github.com/nodejs/node/commit/6fbb0b7572)] - **test**: delay writing the files only on macOS (Luigi Pinca) [#61532](https://github.com/nodejs/node/pull/61532)
* \[[`0a952b88bb`](https://github.com/nodejs/node/commit/0a952b88bb)] - **test**: ensure removeListener event fires for once() listeners (sangwook) [#60137](https://github.com/nodejs/node/pull/60137)
* \[[`945b141c5d`](https://github.com/nodejs/node/commit/945b141c5d)] - **test**: fix flaky debugger test (Ryuhei Shima) [#58324](https://github.com/nodejs/node/pull/58324)
* \[[`256fc6770b`](https://github.com/nodejs/node/commit/256fc6770b)] - **test**: update WPT for url to 81a2aed262 (Node.js GitHub Bot) [#61509](https://github.com/nodejs/node/pull/61509)
* \[[`7725c8d596`](https://github.com/nodejs/node/commit/7725c8d596)] - **test**: skip --build-sea tests on platforms where SEA is flaky (Joyee Cheung) [#61504](https://github.com/nodejs/node/pull/61504)
* \[[`915d105ffd`](https://github.com/nodejs/node/commit/915d105ffd)] - **test\_runner**: update node-config-schema (Pietro Marchini) [#58680](https://github.com/nodejs/node/pull/58680)
* \[[`fd8be14b33`](https://github.com/nodejs/node/commit/fd8be14b33)] - **test\_runner**: fix passing `expectFailure` (Moshe Atlow) [#61568](https://github.com/nodejs/node/pull/61568)
* \[[`c0dd9826bd`](https://github.com/nodejs/node/commit/c0dd9826bd)] - **test\_runner**: differentiate todo and failure styles (Moshe Atlow) [#61564](https://github.com/nodejs/node/pull/61564)
* \[[`5fe2582329`](https://github.com/nodejs/node/commit/5fe2582329)] - **(SEMVER-MINOR)** **test\_runner**: add env option to run function (Ethan Arrowood) [#61367](https://github.com/nodejs/node/pull/61367)
* \[[`39bea2236e`](https://github.com/nodejs/node/commit/39bea2236e)] - **tools**: update gyp-next to 0.21.1 (Node.js GitHub Bot) [#61528](https://github.com/nodejs/node/pull/61528)
* \[[`d5beb4fe1c`](https://github.com/nodejs/node/commit/d5beb4fe1c)] - **tools**: move Quic dependencies behind ad-hoc flag (Antoine du Hamel) [#61446](https://github.com/nodejs/node/pull/61446)
* \[[`5c26087c29`](https://github.com/nodejs/node/commit/5c26087c29)] - **tools**: add LIEF to license builder (Chengzhong Wu) [#61523](https://github.com/nodejs/node/pull/61523)
* \[[`a181d0c43d`](https://github.com/nodejs/node/commit/a181d0c43d)] - **url**: update ada to v3.4.2 and support unicode 17 (Yagiz Nizipli) [#61593](https://github.com/nodejs/node/pull/61593)

<a id="25.5.0"></a>

## 2026-01-26, Version 25.5.0 (Current), @aduh95

### Notable Changes

* \[[`99a4e51f93`](https://github.com/nodejs/node/commit/99a4e51f93)] - **crypto**: update root certificates to NSS 3.119 (Node.js GitHub Bot) [#61419](https://github.com/nodejs/node/pull/61419)
* \[[`fbe4da5725`](https://github.com/nodejs/node/commit/fbe4da5725)] - **(SEMVER-MINOR)** **deps**: add LIEF as a dependency (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167)
* \[[`0feab0f083`](https://github.com/nodejs/node/commit/0feab0f083)] - **(SEMVER-MINOR)** **deps**: add tools and scripts to pull LIEF as a dependency (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167)
* \[[`e91b296001`](https://github.com/nodejs/node/commit/e91b296001)] - **(SEMVER-MINOR)** **fs**: add ignore option to fs.watch (Matteo Collina) [#61433](https://github.com/nodejs/node/pull/61433)
* \[[`b351910af1`](https://github.com/nodejs/node/commit/b351910af1)] - **(SEMVER-MINOR)** **sea**: add `--build-sea` to generate SEA directly with Node.js binary (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167)
* \[[`957292e233`](https://github.com/nodejs/node/commit/957292e233)] - **(SEMVER-MINOR)** **sea**: split sea binary manipulation code (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167)
* \[[`f289817ff8`](https://github.com/nodejs/node/commit/f289817ff8)] - **(SEMVER-MINOR)** **sqlite**: enable defensive mode by default (Bart Louwers) [#61266](https://github.com/nodejs/node/pull/61266)
* \[[`069f3603e2`](https://github.com/nodejs/node/commit/069f3603e2)] - **(SEMVER-MINOR)** **sqlite**: add sqlite prepare options args (Guilherme Araújo) [#61311](https://github.com/nodejs/node/pull/61311)
* \[[`5a984b9a09`](https://github.com/nodejs/node/commit/5a984b9a09)] - **src**: use node- prefix on thread names (Stewart X Addison) [#61307](https://github.com/nodejs/node/pull/61307)
* \[[`75c06bc2a8`](https://github.com/nodejs/node/commit/75c06bc2a8)] - **(SEMVER-MINOR)** **test**: migrate to `--build-sea` in existing SEA tests (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167)
* \[[`cabd58f1cb`](https://github.com/nodejs/node/commit/cabd58f1cb)] - **(SEMVER-MINOR)** **test**: use fixture directories for sea tests (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167)
* \[[`ff1fcabfc9`](https://github.com/nodejs/node/commit/ff1fcabfc9)] - **(SEMVER-MINOR)** **test\_runner**: support expecting a test-case to fail (Jacob Smith) [#60669](https://github.com/nodejs/node/pull/60669)

### Commits

* \[[`778a56f3c9`](https://github.com/nodejs/node/commit/778a56f3c9)] - **assert,util**: fix deep comparison for sets and maps with mixed types (Ruben Bridgewater) [#61388](https://github.com/nodejs/node/pull/61388)
* \[[`32cd18e37f`](https://github.com/nodejs/node/commit/32cd18e37f)] - **async\_hooks**: enabledHooksExist shall return if hooks are enabled (Gerhard Stöbich) [#61054](https://github.com/nodejs/node/pull/61054)
* \[[`482b2568bc`](https://github.com/nodejs/node/commit/482b2568bc)] - **benchmark**: add SQLite benchmarks (Guilherme Araújo) [#61401](https://github.com/nodejs/node/pull/61401)
* \[[`e9a34263bb`](https://github.com/nodejs/node/commit/e9a34263bb)] - **buffer**: make methods work on Uint8Array instances (Neal Beeken) [#56578](https://github.com/nodejs/node/pull/56578)
* \[[`8255cdefcf`](https://github.com/nodejs/node/commit/8255cdefcf)] - **build**: add `--shared-nbytes` configure flag (Antoine du Hamel) [#61341](https://github.com/nodejs/node/pull/61341)
* \[[`8dd379d110`](https://github.com/nodejs/node/commit/8dd379d110)] - **build**: update android-patches/trap-handler.h.patch (Mo Luo) [#60369](https://github.com/nodejs/node/pull/60369)
* \[[`1b4b5eb0e4`](https://github.com/nodejs/node/commit/1b4b5eb0e4)] - **build**: update devcontainer.json to use paired nix env (Joyee Cheung) [#61414](https://github.com/nodejs/node/pull/61414)
* \[[`86e2a763ad`](https://github.com/nodejs/node/commit/86e2a763ad)] - **build**: infer cargo mode with gyp var build\_type directly (Chengzhong Wu) [#61354](https://github.com/nodejs/node/pull/61354)
* \[[`7e211e6942`](https://github.com/nodejs/node/commit/7e211e6942)] - **build**: add embedtest into native suite (Joyee Cheung) [#61357](https://github.com/nodejs/node/pull/61357)
* \[[`637470e79f`](https://github.com/nodejs/node/commit/637470e79f)] - **build**: fix misplaced comma in ldflags (hqzing) [#61294](https://github.com/nodejs/node/pull/61294)
* \[[`a1a0f77a45`](https://github.com/nodejs/node/commit/a1a0f77a45)] - **build**: fix crate vendor file checksums on windows (Chengzhong Wu) [#61329](https://github.com/nodejs/node/pull/61329)
* \[[`d597b8e342`](https://github.com/nodejs/node/commit/d597b8e342)] - **build,tools**: fix addon build deadlock on errors (Vladimir Morozov) [#61321](https://github.com/nodejs/node/pull/61321)
* \[[`b5cdc27ba4`](https://github.com/nodejs/node/commit/b5cdc27ba4)] - **build,win**: improve logs when ClangCL is missing (Mike McCready) [#61438](https://github.com/nodejs/node/pull/61438)
* \[[`ef01f0c033`](https://github.com/nodejs/node/commit/ef01f0c033)] - **build,win**: update WinGet configurations to Python 3.14 (Mike McCready) [#61431](https://github.com/nodejs/node/pull/61431)
* \[[`d8a1cdeefe`](https://github.com/nodejs/node/commit/d8a1cdeefe)] - **child\_process**: treat ipc length header as unsigned uint32 (Ryuhei Shima) [#61344](https://github.com/nodejs/node/pull/61344)
* \[[`588b00fafa`](https://github.com/nodejs/node/commit/588b00fafa)] - **cluster**: fix port reuse between cluster (Ryuhei Shima) [#60141](https://github.com/nodejs/node/pull/60141)
* \[[`99a4e51f93`](https://github.com/nodejs/node/commit/99a4e51f93)] - **crypto**: update root certificates to NSS 3.119 (Node.js GitHub Bot) [#61419](https://github.com/nodejs/node/pull/61419)
* \[[`048f7a5c9c`](https://github.com/nodejs/node/commit/048f7a5c9c)] - **deps**: upgrade npm to 11.8.0 (npm team) [#61466](https://github.com/nodejs/node/pull/61466)
* \[[`fbe4da5725`](https://github.com/nodejs/node/commit/fbe4da5725)] - **(SEMVER-MINOR)** **deps**: add LIEF as a dependency (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167)
* \[[`0feab0f083`](https://github.com/nodejs/node/commit/0feab0f083)] - **(SEMVER-MINOR)** **deps**: add tools and scripts to pull LIEF as a dependency (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167)
* \[[`4bb00d7e3c`](https://github.com/nodejs/node/commit/4bb00d7e3c)] - **deps**: update googletest to 85087857ad10bd407cd6ed2f52f7ea9752db621f (Node.js GitHub Bot) [#61417](https://github.com/nodejs/node/pull/61417)
* \[[`6a3c614f27`](https://github.com/nodejs/node/commit/6a3c614f27)] - **deps**: update sqlite to 3.51.2 (Node.js GitHub Bot) [#61339](https://github.com/nodejs/node/pull/61339)
* \[[`13c0397d6d`](https://github.com/nodejs/node/commit/13c0397d6d)] - **deps**: update icu to 78.2 (Node.js GitHub Bot) [#60523](https://github.com/nodejs/node/pull/60523)
* \[[`098ec6f196`](https://github.com/nodejs/node/commit/098ec6f196)] - **deps**: update ada to v3.4.0 (Yagiz Nizipli) [#61315](https://github.com/nodejs/node/pull/61315)
* \[[`320b576125`](https://github.com/nodejs/node/commit/320b576125)] - **deps**: update zlib to 1.3.1-e00f703 (Node.js GitHub Bot) [#61135](https://github.com/nodejs/node/pull/61135)
* \[[`98f5e7cf51`](https://github.com/nodejs/node/commit/98f5e7cf51)] - **deps**: V8: cherry-pick highway\@dcc0ca1cd42 (Richard Lau) [#61008](https://github.com/nodejs/node/pull/61008)
* \[[`e326df79c9`](https://github.com/nodejs/node/commit/e326df79c9)] - **deps**: V8: backport 209d2db9e24a (Zhijin Zeng) [#61322](https://github.com/nodejs/node/pull/61322)
* \[[`ccfd9d9b30`](https://github.com/nodejs/node/commit/ccfd9d9b30)] - **doc**: remove `v` prefix for version references (Mike McCready) [#61488](https://github.com/nodejs/node/pull/61488)
* \[[`b6cc5d77a1`](https://github.com/nodejs/node/commit/b6cc5d77a1)] - **doc**: mention constructor comparison in assert.deepStrictEqual (Hamza Kargin) [#60253](https://github.com/nodejs/node/pull/60253)
* \[[`236d7ee635`](https://github.com/nodejs/node/commit/236d7ee635)] - **doc**: add CVE delay mention (Rafael Gonzaga) [#61465](https://github.com/nodejs/node/pull/61465)
* \[[`0729fb6ee7`](https://github.com/nodejs/node/commit/0729fb6ee7)] - **doc**: update previous version links in BUILDING (Mike McCready) [#61457](https://github.com/nodejs/node/pull/61457)
* \[[`0fb464252f`](https://github.com/nodejs/node/commit/0fb464252f)] - **doc**: include OpenJSF handle for security stewards (Rafael Gonzaga) [#61454](https://github.com/nodejs/node/pull/61454)
* \[[`3331bdca7c`](https://github.com/nodejs/node/commit/3331bdca7c)] - **doc**: clarify process.argv\[1] behavior for -e/--eval (Jeevankumar S) [#61366](https://github.com/nodejs/node/pull/61366)
* \[[`94b34c38e2`](https://github.com/nodejs/node/commit/94b34c38e2)] - **doc**: remove Windows Dev Home instructions from BUILDING (Mike McCready) [#61434](https://github.com/nodejs/node/pull/61434)
* \[[`a17016ee81`](https://github.com/nodejs/node/commit/a17016ee81)] - **doc**: clarify TypedArray properties on Buffer (Roman Reiss) [#61355](https://github.com/nodejs/node/pull/61355)
* \[[`214fac9d7e`](https://github.com/nodejs/node/commit/214fac9d7e)] - **doc**: update Python 3.14 manual install instructions (Windows) (Mike McCready) [#61428](https://github.com/nodejs/node/pull/61428)
* \[[`6a32a685a6`](https://github.com/nodejs/node/commit/6a32a685a6)] - **doc**: note resume build should not be done on node-test-commit (Stewart X Addison) [#61373](https://github.com/nodejs/node/pull/61373)
* \[[`2a8e8dfaf3`](https://github.com/nodejs/node/commit/2a8e8dfaf3)] - **doc**: refine WebAssembly error documentation (sangwook) [#61382](https://github.com/nodejs/node/pull/61382)
* \[[`f3caf27f8b`](https://github.com/nodejs/node/commit/f3caf27f8b)] - **doc**: add deprecation history for url.parse (Eng Zer Jun) [#61389](https://github.com/nodejs/node/pull/61389)
* \[[`5ab8057856`](https://github.com/nodejs/node/commit/5ab8057856)] - **doc**: add marco and rafael in last sec release (Marco Ippolito) [#61383](https://github.com/nodejs/node/pull/61383)
* \[[`f83cb1e785`](https://github.com/nodejs/node/commit/f83cb1e785)] - **doc**: packages: example of private import switch to internal (coderaiser) [#61343](https://github.com/nodejs/node/pull/61343)
* \[[`3d23bcd0e2`](https://github.com/nodejs/node/commit/3d23bcd0e2)] - **doc**: add esm and cjs examples to node:v8 (Alfredo González) [#61328](https://github.com/nodejs/node/pull/61328)
* \[[`1d159550e0`](https://github.com/nodejs/node/commit/1d159550e0)] - **doc**: added 'secure' event to tls.TLSSocket (ikeyan) [#61066](https://github.com/nodejs/node/pull/61066)
* \[[`90080d2892`](https://github.com/nodejs/node/commit/90080d2892)] - **doc**: restore @watilde to collaborators (Daijiro Wachi) [#61350](https://github.com/nodejs/node/pull/61350)
* \[[`a87f7a50f8`](https://github.com/nodejs/node/commit/a87f7a50f8)] - **doc**: run license-builder (github-actions\[bot]) [#61348](https://github.com/nodejs/node/pull/61348)
* \[[`adf5c84701`](https://github.com/nodejs/node/commit/adf5c84701)] - **doc**: clean up writing-and-running-benchmarks.md (Hardanish Singh) [#61345](https://github.com/nodejs/node/pull/61345)
* \[[`2be98add0c`](https://github.com/nodejs/node/commit/2be98add0c)] - **doc**: document ALPNCallback option for TLSSocket constructor (ikeyan) [#61331](https://github.com/nodejs/node/pull/61331)
* \[[`2db4893c8d`](https://github.com/nodejs/node/commit/2db4893c8d)] - **esm**: ensure watch mode restarts after syntax errors (Xavier Stouder) [#61232](https://github.com/nodejs/node/pull/61232)
* \[[`828feb2e6b`](https://github.com/nodejs/node/commit/828feb2e6b)] - **events**: remove redundant todo (Gürgün Dayıoğlu) [#60595](https://github.com/nodejs/node/pull/60595)
* \[[`e91b296001`](https://github.com/nodejs/node/commit/e91b296001)] - **(SEMVER-MINOR)** **fs**: add ignore option to fs.watch (Matteo Collina) [#61433](https://github.com/nodejs/node/pull/61433)
* \[[`606184fae5`](https://github.com/nodejs/node/commit/606184fae5)] - **fs**: remove duplicate getValidatedPath calls (Mert Can Altin) [#61359](https://github.com/nodejs/node/pull/61359)
* \[[`434fcd7f8f`](https://github.com/nodejs/node/commit/434fcd7f8f)] - **fs**: fix errorOnExist behavior for directory copy in fs.cp (Nicholas Paun) [#60946](https://github.com/nodejs/node/pull/60946)
* \[[`bacba16f5e`](https://github.com/nodejs/node/commit/bacba16f5e)] - **fs**: fix ENOTDIR in globSync when file is treated as dir (sangwook) [#61259](https://github.com/nodejs/node/pull/61259)
* \[[`7697ce0310`](https://github.com/nodejs/node/commit/7697ce0310)] - **fs**: remove duplicate fd validation in sync functions (Mert Can Altin) [#61361](https://github.com/nodejs/node/pull/61361)
* \[[`8abd54f597`](https://github.com/nodejs/node/commit/8abd54f597)] - **gyp**: aix: change gcc version detection so CXX="ccache g++" works (Stewart X Addison) [#61464](https://github.com/nodejs/node/pull/61464)
* \[[`24033ee7ea`](https://github.com/nodejs/node/commit/24033ee7ea)] - **http**: fix rawHeaders exceeding maxHeadersCount limit (Max Harari) [#61285](https://github.com/nodejs/node/pull/61285)
* \[[`cf56327939`](https://github.com/nodejs/node/commit/cf56327939)] - **http2**: validate initialWindowSize per HTTP/2 spec (Matteo Collina) [#61402](https://github.com/nodejs/node/pull/61402)
* \[[`696935eeeb`](https://github.com/nodejs/node/commit/696935eeeb)] - **inspector**: initial support storage inspection (Ryuhei Shima) [#61139](https://github.com/nodejs/node/pull/61139)
* \[[`3d5e718e38`](https://github.com/nodejs/node/commit/3d5e718e38)] - **lib**: fix typo in `util.js` comment (Taejin Kim) [#61365](https://github.com/nodejs/node/pull/61365)
* \[[`f55a5fea00`](https://github.com/nodejs/node/commit/f55a5fea00)] - **lib**: fix TypeScript support check in jitless mode (sangwook) [#61382](https://github.com/nodejs/node/pull/61382)
* \[[`b3fbc3c375`](https://github.com/nodejs/node/commit/b3fbc3c375)] - **meta**: do not fast-track npm updates (Antoine du Hamel) [#61475](https://github.com/nodejs/node/pull/61475)
* \[[`2423ecdaef`](https://github.com/nodejs/node/commit/2423ecdaef)] - **meta**: fix typos in issue template config (Daijiro Wachi) [#61399](https://github.com/nodejs/node/pull/61399)
* \[[`e2df85a33a`](https://github.com/nodejs/node/commit/e2df85a33a)] - **meta**: label v8 module PRs (René) [#61325](https://github.com/nodejs/node/pull/61325)
* \[[`bc9e5f7d4d`](https://github.com/nodejs/node/commit/bc9e5f7d4d)] - **node-api**: fix node\_api\_create\_object\_with\_properties name (Vladimir Morozov) [#61319](https://github.com/nodejs/node/pull/61319)
* \[[`4f30c21c59`](https://github.com/nodejs/node/commit/4f30c21c59)] - **node-api**: use Node-API in comments (Vladimir Morozov) [#61320](https://github.com/nodejs/node/pull/61320)
* \[[`62d71eb28d`](https://github.com/nodejs/node/commit/62d71eb28d)] - **quic**: copy options.certs buffer instead of detaching (Chengzhong Wu) [#61403](https://github.com/nodejs/node/pull/61403)
* \[[`4bbbe75ba1`](https://github.com/nodejs/node/commit/4bbbe75ba1)] - **quic**: move quic behind compile time flag (Matteo Collina) [#61444](https://github.com/nodejs/node/pull/61444)
* \[[`b351910af1`](https://github.com/nodejs/node/commit/b351910af1)] - **(SEMVER-MINOR)** **sea**: add --build-sea to generate SEA directly with Node.js binary (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167)
* \[[`957292e233`](https://github.com/nodejs/node/commit/957292e233)] - **(SEMVER-MINOR)** **sea**: split sea binary manipulation code (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167)
* \[[`f289817ff8`](https://github.com/nodejs/node/commit/f289817ff8)] - **(SEMVER-MINOR)** **sqlite**: enable defensive mode by default (Bart Louwers) [#61266](https://github.com/nodejs/node/pull/61266)
* \[[`6442229880`](https://github.com/nodejs/node/commit/6442229880)] - **sqlite**: add some tests (Guilherme Araújo) [#61410](https://github.com/nodejs/node/pull/61410)
* \[[`069f3603e2`](https://github.com/nodejs/node/commit/069f3603e2)] - **(SEMVER-MINOR)** **sqlite**: add sqlite prepare options args (Guilherme Araújo) [#61311](https://github.com/nodejs/node/pull/61311)
* \[[`df02d00d61`](https://github.com/nodejs/node/commit/df02d00d61)] - **src**: improve StringBytes::Encode perf on UTF8 (Сковорода Никита Андреевич) [#61131](https://github.com/nodejs/node/pull/61131)
* \[[`e35814ba80`](https://github.com/nodejs/node/commit/e35814ba80)] - **src**: add missing override specifier to Clean() (Tobias Nießen) [#61429](https://github.com/nodejs/node/pull/61429)
* \[[`803ff7d3de`](https://github.com/nodejs/node/commit/803ff7d3de)] - **src**: cache context lookup in vectored io loops (Mert Can Altin) [#61387](https://github.com/nodejs/node/pull/61387)
* \[[`58abe99cbf`](https://github.com/nodejs/node/commit/58abe99cbf)] - **src**: cache missing package.json files in the C++ package config cache (Michael Smith) [#60425](https://github.com/nodejs/node/pull/60425)
* \[[`2a542094e4`](https://github.com/nodejs/node/commit/2a542094e4)] - **src**: use starts\_with instead of rfind/find (Tobias Nießen) [#61426](https://github.com/nodejs/node/pull/61426)
* \[[`77cacf6d9d`](https://github.com/nodejs/node/commit/77cacf6d9d)] - **src**: use C++ nullptr in sqlite (Tobias Nießen) [#61416](https://github.com/nodejs/node/pull/61416)
* \[[`344cc629d4`](https://github.com/nodejs/node/commit/344cc629d4)] - **src**: use C++ nullptr in webstorage (Tobias Nießen) [#61407](https://github.com/nodejs/node/pull/61407)
* \[[`9f25cad26c`](https://github.com/nodejs/node/commit/9f25cad26c)] - **src**: fix pointer alignment (jhofstee) [#61336](https://github.com/nodejs/node/pull/61336)
* \[[`5a984b9a09`](https://github.com/nodejs/node/commit/5a984b9a09)] - **src**: use node- prefix on thread names (Stewart X Addison) [#61307](https://github.com/nodejs/node/pull/61307)
* \[[`d4cf423a65`](https://github.com/nodejs/node/commit/d4cf423a65)] - **stream**: export namespace object from internal end-of-stream module (René) [#61455](https://github.com/nodejs/node/pull/61455)
* \[[`7d8232e34c`](https://github.com/nodejs/node/commit/7d8232e34c)] - **test**: add some validation for JSON doc output (Antoine du Hamel) [#61413](https://github.com/nodejs/node/pull/61413)
* \[[`75c06bc2a8`](https://github.com/nodejs/node/commit/75c06bc2a8)] - **(SEMVER-MINOR)** **test**: migrate to --build-sea in existing SEA tests (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167)
* \[[`cabd58f1cb`](https://github.com/nodejs/node/commit/cabd58f1cb)] - **(SEMVER-MINOR)** **test**: use fixture directories for sea tests (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167)
* \[[`bcffca8911`](https://github.com/nodejs/node/commit/bcffca8911)] - **test**: aix: mark test\_threadsafe\_function/test flaky on AIX (Stewart X Addison) [#61452](https://github.com/nodejs/node/pull/61452)
* \[[`29399501c1`](https://github.com/nodejs/node/commit/29399501c1)] - **test**: add implicit test for fs dispose handling with using (Ilyas Shabi) [#61140](https://github.com/nodejs/node/pull/61140)
* \[[`3bb481571a`](https://github.com/nodejs/node/commit/3bb481571a)] - **test**: reveal wpt evaluation errors in status files (Chengzhong Wu) [#61358](https://github.com/nodejs/node/pull/61358)
* \[[`a132be7f71`](https://github.com/nodejs/node/commit/a132be7f71)] - **test**: check new WebCryptoAPI enum values (Filip Skokan) [#61406](https://github.com/nodejs/node/pull/61406)
* \[[`72f1463735`](https://github.com/nodejs/node/commit/72f1463735)] - **test**: split test-esm-loader-hooks (Joyee Cheung) [#61374](https://github.com/nodejs/node/pull/61374)
* \[[`39105e4c5f`](https://github.com/nodejs/node/commit/39105e4c5f)] - **test**: aix: mark test-emit-on-destroyed as flaky (Stewart X Addison) [#61381](https://github.com/nodejs/node/pull/61381)
* \[[`3f17acfb1c`](https://github.com/nodejs/node/commit/3f17acfb1c)] - **test**: add webidl web-platform tests (Yagiz Nizipli) [#61316](https://github.com/nodejs/node/pull/61316)
* \[[`89983cf747`](https://github.com/nodejs/node/commit/89983cf747)] - **test**: update url web-platform tests (Yagiz Nizipli) [#61315](https://github.com/nodejs/node/pull/61315)
* \[[`73c0a242d7`](https://github.com/nodejs/node/commit/73c0a242d7)] - **test**: forbid use of named imports for fixtures (Antoine du Hamel) [#61228](https://github.com/nodejs/node/pull/61228)
* \[[`a49d54308e`](https://github.com/nodejs/node/commit/a49d54308e)] - **test**: enforce better never-settling-promise detection (Antoine du Hamel) [#60976](https://github.com/nodejs/node/pull/60976)
* \[[`335cb0b5cc`](https://github.com/nodejs/node/commit/335cb0b5cc)] - **test**: ensure assertions are reached on all tests (Antoine du Hamel) [#60845](https://github.com/nodejs/node/pull/60845)
* \[[`5ee02c789a`](https://github.com/nodejs/node/commit/5ee02c789a)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60763](https://github.com/nodejs/node/pull/60763)
* \[[`141fb82ffb`](https://github.com/nodejs/node/commit/141fb82ffb)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60760](https://github.com/nodejs/node/pull/60760)
* \[[`edf90ce457`](https://github.com/nodejs/node/commit/edf90ce457)] - **test**: use `RegExp.escape` to improve test reliability (Antoine du Hamel) [#60803](https://github.com/nodejs/node/pull/60803)
* \[[`f5f9b2dcf6`](https://github.com/nodejs/node/commit/f5f9b2dcf6)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60728](https://github.com/nodejs/node/pull/60728)
* \[[`ec1cbbe0b6`](https://github.com/nodejs/node/commit/ec1cbbe0b6)] - **test\_runner**: fix memory leaks in runner (Abhishek Kv. Savani) [#60860](https://github.com/nodejs/node/pull/60860)
* \[[`399ac68427`](https://github.com/nodejs/node/commit/399ac68427)] - **test\_runner**: fix coverage report when a directory is named file (Heath Dutton🕴️) [#61169](https://github.com/nodejs/node/pull/61169)
* \[[`6e1beda333`](https://github.com/nodejs/node/commit/6e1beda333)] - **test\_runner**: print info when test restarts (Xavier Stouder) [#61160](https://github.com/nodejs/node/pull/61160)
* \[[`f5803ccb86`](https://github.com/nodejs/node/commit/f5803ccb86)] - **test\_runner**: fix rerun ambiguous test failures (Moshe Atlow) [#61392](https://github.com/nodejs/node/pull/61392)
* \[[`a5a4c3eb44`](https://github.com/nodejs/node/commit/a5a4c3eb44)] - **test\_runner**: nix dead reporter code (Vas Sudanagunta) [#59700](https://github.com/nodejs/node/pull/59700)
* \[[`ff1fcabfc9`](https://github.com/nodejs/node/commit/ff1fcabfc9)] - **(SEMVER-MINOR)** **test\_runner**: support expecting a test-case to fail (Jacob Smith) [#60669](https://github.com/nodejs/node/pull/60669)
* \[[`ade4fc2338`](https://github.com/nodejs/node/commit/ade4fc2338)] - **tools**: copyedit Nix files (Antoine du Hamel) [#61447](https://github.com/nodejs/node/pull/61447)
* \[[`7c2242beb9`](https://github.com/nodejs/node/commit/7c2242beb9)] - **tools**: validate release commit diff as part of `lint-release-proposal` (Antoine du Hamel) [#61440](https://github.com/nodejs/node/pull/61440)
* \[[`ca4ebed258`](https://github.com/nodejs/node/commit/ca4ebed258)] - **tools**: use ad-hoc flag to lint Nix files (Antoine du Hamel) [#61405](https://github.com/nodejs/node/pull/61405)
* \[[`05ce2c87f3`](https://github.com/nodejs/node/commit/05ce2c87f3)] - **tools**: fix vcbuild lint-js-build (Vladimir Morozov) [#61318](https://github.com/nodejs/node/pull/61318)
* \[[`41adb54a37`](https://github.com/nodejs/node/commit/41adb54a37)] - **tools**: enforce trailing commas in `test/es-module` (Antoine du Hamel) [#60891](https://github.com/nodejs/node/pull/60891)
* \[[`eebd732a52`](https://github.com/nodejs/node/commit/eebd732a52)] - **tools**: enforce trailing commas in `test/sequential` (Antoine du Hamel) [#60892](https://github.com/nodejs/node/pull/60892)
* \[[`8b73739e03`](https://github.com/nodejs/node/commit/8b73739e03)] - **typings**: add typing for string\_decoder (Taejin Kim) [#61368](https://github.com/nodejs/node/pull/61368)
* \[[`e88dd012ad`](https://github.com/nodejs/node/commit/e88dd012ad)] - **v8**: changing total\_allocated\_bytes to avoid ABI changes (Caio Lima) [#60800](https://github.com/nodejs/node/pull/60800)
* \[[`c75ad3d87d`](https://github.com/nodejs/node/commit/c75ad3d87d)] - **v8**: add GCProfiler support for erm (Ilyas Shabi) [#61191](https://github.com/nodejs/node/pull/61191)
* \[[`611c179663`](https://github.com/nodejs/node/commit/611c179663)] - **zlib**: validate write\_result array length (Ryuhei Shima) [#61342](https://github.com/nodejs/node/pull/61342)

<a id="25.4.0"></a>

## 2026-01-19, Version 25.4.0 (Current), @RafaelGSS

### Notable Changes

* \[[`8f6fada8f1`](https://github.com/nodejs/node/commit/8f6fada8f1)] - **cli**: add --require-module/--no-require-module (Joyee Cheung) [#60959](https://github.com/nodejs/node/pull/60959)
* \[[`bf8e738df4`](https://github.com/nodejs/node/commit/bf8e738df4)] - **cli**: mark --heapsnapshot-near-heap-limit as stable (Joyee Cheung) [#60956](https://github.com/nodejs/node/pull/60956)
* \[[`7930d7a19b`](https://github.com/nodejs/node/commit/7930d7a19b)] - **crypto**: update root certificates to NSS 3.117 (Node.js GitHub Bot) [#60741](https://github.com/nodejs/node/pull/60741)
* \[[`44f61dfb92`](https://github.com/nodejs/node/commit/44f61dfb92)] - **doc**: add @avivkeller to collaborators (Aviv Keller) [#61115](https://github.com/nodejs/node/pull/61115)
* \[[`45903ee884`](https://github.com/nodejs/node/commit/45903ee884)] - **doc**: add gurgunday to collaborators (Gürgün Dayıoğlu) [#61094](https://github.com/nodejs/node/pull/61094)
* \[[`77faa14d99`](https://github.com/nodejs/node/commit/77faa14d99)] - **doc**: mark --build-snapshot and --build-snapshot-config as stable (Joyee Cheung) [#60954](https://github.com/nodejs/node/pull/60954)
* \[[`aefbe4ba47`](https://github.com/nodejs/node/commit/aefbe4ba47)] - **(SEMVER-MINOR)** **events**: repurpose `events.listenerCount()` to accept EventTargets (René) [#60214](https://github.com/nodejs/node/pull/60214)
* \[[`8470e2993b`](https://github.com/nodejs/node/commit/8470e2993b)] - **(SEMVER-MINOR)** **http**: add http.setGlobalProxyFromEnv() (Joyee Cheung) [#60953](https://github.com/nodejs/node/pull/60953)
* \[[`24384d7438`](https://github.com/nodejs/node/commit/24384d7438)] - **meta**: add Renegade334 to collaborators (Renegade334) [#60714](https://github.com/nodejs/node/pull/60714)
* \[[`c1acef6d0f`](https://github.com/nodejs/node/commit/c1acef6d0f)] - **module**: mark require(esm) as stable (Joyee Cheung) [#60959](https://github.com/nodejs/node/pull/60959)
* \[[`2e39f3ed6b`](https://github.com/nodejs/node/commit/2e39f3ed6b)] - **module**: mark module compile cache as stable (Joyee Cheung) [#60971](https://github.com/nodejs/node/pull/60971)
* \[[`e6a05cfb4f`](https://github.com/nodejs/node/commit/e6a05cfb4f)] - **(SEMVER-MINOR)** **module**: allow subpath imports that start with `#/` (Jan Martin) [#60864](https://github.com/nodejs/node/pull/60864)
* \[[`fa927c31da`](https://github.com/nodejs/node/commit/fa927c31da)] - **(SEMVER-MINOR)** **process**: preserve AsyncLocalStorage in queueMicrotask only when needed (Gürgün Dayıoğlu) [#60913](https://github.com/nodejs/node/pull/60913)
* \[[`bd0942f4f5`](https://github.com/nodejs/node/commit/bd0942f4f5)] - **(SEMVER-MINOR)** **stream**: do not pass `readable.compose()` output via `Readable.from()` (René) [#60907](https://github.com/nodejs/node/pull/60907)
* \[[`5051d90100`](https://github.com/nodejs/node/commit/5051d90100)] - **(SEMVER-MINOR)** **util**: add convertProcessSignalToExitCode utility (Erick Wendel) [#60963](https://github.com/nodejs/node/pull/60963)
* \[[`408f024906`](https://github.com/nodejs/node/commit/408f024906)] - **v8**: mark v8.queryObjects() as stable (Joyee Cheung) [#60957](https://github.com/nodejs/node/pull/60957)

### Commits

* \[[`e61cfdbf50`](https://github.com/nodejs/node/commit/e61cfdbf50)] - **assert**: use a set instead of an array for faster lookup (Ruben Bridgewater) [#61076](https://github.com/nodejs/node/pull/61076)
* \[[`11861084fd`](https://github.com/nodejs/node/commit/11861084fd)] - **assert,util**: improve comparison performance (Ruben Bridgewater) [#61176](https://github.com/nodejs/node/pull/61176)
* \[[`4ef4f759cb`](https://github.com/nodejs/node/commit/4ef4f759cb)] - **assert,util**: fix deep comparing invalid dates skipping properties (Ruben Bridgewater) [#61076](https://github.com/nodejs/node/pull/61076)
* \[[`c8fccd585f`](https://github.com/nodejs/node/commit/c8fccd585f)] - **assert,util**: improve deep comparison performance (Ruben Bridgewater) [#61076](https://github.com/nodejs/node/pull/61076)
* \[[`13661a0123`](https://github.com/nodejs/node/commit/13661a0123)] - **benchmark**: use boolean options in benchmark tests (SeokhunEom) [#60129](https://github.com/nodejs/node/pull/60129)
* \[[`36dead3433`](https://github.com/nodejs/node/commit/36dead3433)] - **benchmark**: allow boolean option values (SeokhunEom) [#60129](https://github.com/nodejs/node/pull/60129)
* \[[`376056eaef`](https://github.com/nodejs/node/commit/376056eaef)] - **benchmark**: add microbench on isInsideNodeModules (Chengzhong Wu) [#60991](https://github.com/nodejs/node/pull/60991)
* \[[`22d3e85b7a`](https://github.com/nodejs/node/commit/22d3e85b7a)] - **benchmark**: fix incorrect base64 input in byteLength benchmark (semimikoh) [#60841](https://github.com/nodejs/node/pull/60841)
* \[[`5016f75522`](https://github.com/nodejs/node/commit/5016f75522)] - **benchmark**: use typescript for import cjs benchmark (Joyee Cheung) [#60663](https://github.com/nodejs/node/pull/60663)
* \[[`012a08f6eb`](https://github.com/nodejs/node/commit/012a08f6eb)] - **buffer**: let Buffer.of use heap (Сковорода Никита Андреевич) [#60503](https://github.com/nodejs/node/pull/60503)
* \[[`65696e42ba`](https://github.com/nodejs/node/commit/65696e42ba)] - **build**: add `--shared-hdr-histogram` configure flag (Antoine du Hamel) [#61280](https://github.com/nodejs/node/pull/61280)
* \[[`6155b8836e`](https://github.com/nodejs/node/commit/6155b8836e)] - **build**: add `--shared-gtest` configure flag (Antoine du Hamel) [#61279](https://github.com/nodejs/node/pull/61279)
* \[[`e80127f49c`](https://github.com/nodejs/node/commit/e80127f49c)] - **build**: expose libplatform symbols in shared libnode (Joyee Cheung) [#61144](https://github.com/nodejs/node/pull/61144)
* \[[`d99805049e`](https://github.com/nodejs/node/commit/d99805049e)] - **build**: fix inconsistent quoting in `Makefile` (Antoine du Hamel) [#60511](https://github.com/nodejs/node/pull/60511)
* \[[`3213de08e8`](https://github.com/nodejs/node/commit/3213de08e8)] - **build**: support building crates (temporal) on windows (沈鸿飞) [#61163](https://github.com/nodejs/node/pull/61163)
* \[[`1ad8788391`](https://github.com/nodejs/node/commit/1ad8788391)] - **build**: remove temporal updater (Chengzhong Wu) [#61151](https://github.com/nodejs/node/pull/61151)
* \[[`e6e25d65be`](https://github.com/nodejs/node/commit/e6e25d65be)] - **build**: add --debug-symbols to build with -g without enabling DCHECKs (Joyee Cheung) [#61100](https://github.com/nodejs/node/pull/61100)
* \[[`7040ec94c8`](https://github.com/nodejs/node/commit/7040ec94c8)] - **build**: update test-wpt-report to use NODE instead of OUT\_NODE (Filip Skokan) [#61024](https://github.com/nodejs/node/pull/61024)
* \[[`990da3518d`](https://github.com/nodejs/node/commit/990da3518d)] - **build**: skip build-ci on actions with a separate test step (Chengzhong Wu) [#61073](https://github.com/nodejs/node/pull/61073)
* \[[`3259e395c9`](https://github.com/nodejs/node/commit/3259e395c9)] - **build**: run embedtest with node\_g when BUILDTYPE=Debug (Chengzhong Wu) [#60850](https://github.com/nodejs/node/pull/60850)
* \[[`af42ca569f`](https://github.com/nodejs/node/commit/af42ca569f)] - **build**: ignore built-in temporal when building with shared lib (Chengzhong Wu) [#60703](https://github.com/nodejs/node/pull/60703)
* \[[`bec7fce07a`](https://github.com/nodejs/node/commit/bec7fce07a)] - **build**: add temporal\_capi gyp (Chengzhong Wu) [#60703](https://github.com/nodejs/node/pull/60703)
* \[[`d2f50047f7`](https://github.com/nodejs/node/commit/d2f50047f7)] - **build**: fix OpenSSL version parsing for OpenSSL < 3 (Richard Lau) [#60775](https://github.com/nodejs/node/pull/60775)
* \[[`91b20c52df`](https://github.com/nodejs/node/commit/91b20c52df)] - **build**: add flag to compile V8 with Temporal support (Antoine du Hamel) [#60701](https://github.com/nodejs/node/pull/60701)
* \[[`0aaed248f0`](https://github.com/nodejs/node/commit/0aaed248f0)] - **build**: add support for Visual Studio 2026 (Michaël Zasso) [#60727](https://github.com/nodejs/node/pull/60727)
* \[[`8f6fada8f1`](https://github.com/nodejs/node/commit/8f6fada8f1)] - **cli**: add --require-module/--no-require-module (Joyee Cheung) [#60959](https://github.com/nodejs/node/pull/60959)
* \[[`bf8e738df4`](https://github.com/nodejs/node/commit/bf8e738df4)] - **cli**: mark --heapsnapshot-near-heap-limit as stable (Joyee Cheung) [#60956](https://github.com/nodejs/node/pull/60956)
* \[[`7930d7a19b`](https://github.com/nodejs/node/commit/7930d7a19b)] - **crypto**: update root certificates to NSS 3.117 (Node.js GitHub Bot) [#60741](https://github.com/nodejs/node/pull/60741)
* \[[`1b15453602`](https://github.com/nodejs/node/commit/1b15453602)] - **deps**: update cjs-module-lexer to 2.2.0 (Node.js GitHub Bot) [#61271](https://github.com/nodejs/node/pull/61271)
* \[[`118fa97c95`](https://github.com/nodejs/node/commit/118fa97c95)] - **deps**: update nbytes to 0.1.2 (Node.js GitHub Bot) [#61270](https://github.com/nodejs/node/pull/61270)
* \[[`9b136db814`](https://github.com/nodejs/node/commit/9b136db814)] - **deps**: update ngtcp2 to 1.19.0 (Node.js GitHub Bot) [#61156](https://github.com/nodejs/node/pull/61156)
* \[[`5635f23a50`](https://github.com/nodejs/node/commit/5635f23a50)] - **deps**: update nghttp3 to 1.14.0 (Node.js GitHub Bot) [#61187](https://github.com/nodejs/node/pull/61187)
* \[[`9ec35c0977`](https://github.com/nodejs/node/commit/9ec35c0977)] - **deps**: update nghttp3 to 1.13.1 (Node.js GitHub Bot) [#60046](https://github.com/nodejs/node/pull/60046)
* \[[`4d7d37f701`](https://github.com/nodejs/node/commit/4d7d37f701)] - **deps**: update timezone to 2025c (Node.js GitHub Bot) [#61138](https://github.com/nodejs/node/pull/61138)
* \[[`2c1e3ab19d`](https://github.com/nodejs/node/commit/2c1e3ab19d)] - **deps**: nghttp2: revert 7784fa979d0b (Antoine du Hamel) [#61136](https://github.com/nodejs/node/pull/61136)
* \[[`56a6513648`](https://github.com/nodejs/node/commit/56a6513648)] - **deps**: update nghttp2 to 1.68.0 (nodejs-github-bot) [#61136](https://github.com/nodejs/node/pull/61136)
* \[[`f2692c5534`](https://github.com/nodejs/node/commit/f2692c5534)] - **deps**: remove independent temporal (Chengzhong Wu) [#61072](https://github.com/nodejs/node/pull/61072)
* \[[`3acbf3f129`](https://github.com/nodejs/node/commit/3acbf3f129)] - **deps**: apply cargo vendor (Chengzhong Wu) [#61072](https://github.com/nodejs/node/pull/61072)
* \[[`d2759f4805`](https://github.com/nodejs/node/commit/d2759f4805)] - **deps**: add vendor depenency crate (Chengzhong Wu) [#61072](https://github.com/nodejs/node/pull/61072)
* \[[`6330385174`](https://github.com/nodejs/node/commit/6330385174)] - **deps**: update simdjson to 4.2.4 (Node.js GitHub Bot) [#61056](https://github.com/nodejs/node/pull/61056)
* \[[`9835860115`](https://github.com/nodejs/node/commit/9835860115)] - **deps**: update googletest to 065127f1e4b46c5f14fc73cf8d323c221f9dc68e (Node.js GitHub Bot) [#61055](https://github.com/nodejs/node/pull/61055)
* \[[`d2e6dff2f9`](https://github.com/nodejs/node/commit/d2e6dff2f9)] - **deps**: brotli: cherry-pick e230f474b87 (liujiahui) [#61003](https://github.com/nodejs/node/pull/61003)
* \[[`27da9ca1c7`](https://github.com/nodejs/node/commit/27da9ca1c7)] - **deps**: upgrade npm to 11.7.0 (npm team) [#61011](https://github.com/nodejs/node/pull/61011)
* \[[`398ba68793`](https://github.com/nodejs/node/commit/398ba68793)] - **deps**: V8: cherry-pick 72b0e27bd936 (pthier) [#60706](https://github.com/nodejs/node/pull/60706)
* \[[`a8ae3b9557`](https://github.com/nodejs/node/commit/a8ae3b9557)] - **deps**: update sqlite to 3.51.1 (Node.js GitHub Bot) [#60899](https://github.com/nodejs/node/pull/60899)
* \[[`4e1edae655`](https://github.com/nodejs/node/commit/4e1edae655)] - **deps**: update zlib to 1.3.1-63d7e16 (Node.js GitHub Bot) [#60898](https://github.com/nodejs/node/pull/60898)
* \[[`49b5954e74`](https://github.com/nodejs/node/commit/49b5954e74)] - **deps**: update corepack to 0.34.5 (Node.js GitHub Bot) [#60842](https://github.com/nodejs/node/pull/60842)
* \[[`6ae415361f`](https://github.com/nodejs/node/commit/6ae415361f)] - **deps**: upgrade npm to 11.6.4 (npm team) [#60853](https://github.com/nodejs/node/pull/60853)
* \[[`3cc857001a`](https://github.com/nodejs/node/commit/3cc857001a)] - **deps**: add temporal\_rs 0.1.0 (Chengzhong Wu) [#60703](https://github.com/nodejs/node/pull/60703)
* \[[`660788cd4b`](https://github.com/nodejs/node/commit/660788cd4b)] - **deps**: update sqlite to 3.51.0 (Node.js GitHub Bot) [#60614](https://github.com/nodejs/node/pull/60614)
* \[[`c6d7a7b7cd`](https://github.com/nodejs/node/commit/c6d7a7b7cd)] - **deps**: upgrade npm to 11.6.3 (npm team) [#60785](https://github.com/nodejs/node/pull/60785)
* \[[`062e15bddf`](https://github.com/nodejs/node/commit/062e15bddf)] - **deps**: update brotli to 1.2.0 (Node.js GitHub Bot) [#60540](https://github.com/nodejs/node/pull/60540)
* \[[`db053988db`](https://github.com/nodejs/node/commit/db053988db)] - **deps**: update simdjson to 4.2.2 (Node.js GitHub Bot) [#60740](https://github.com/nodejs/node/pull/60740)
* \[[`ea5deab531`](https://github.com/nodejs/node/commit/ea5deab531)] - **deps**: update googletest to 1b96fa13f549387b7549cc89e1a785cf143a1a50 (Node.js GitHub Bot) [#60739](https://github.com/nodejs/node/pull/60739)
* \[[`c23f40cca4`](https://github.com/nodejs/node/commit/c23f40cca4)] - **deps**: update minimatch to 10.1.1 (Node.js GitHub Bot) [#60543](https://github.com/nodejs/node/pull/60543)
* \[[`479c9290b9`](https://github.com/nodejs/node/commit/479c9290b9)] - **deps**: update corepack to 0.34.4 (Node.js GitHub Bot) [#60643](https://github.com/nodejs/node/pull/60643)
* \[[`e42911eddd`](https://github.com/nodejs/node/commit/e42911eddd)] - **deps**: update inspector\_protocol to 1b1bcbbe060e8c8cd8704f00f78978c50991 (Node.js GitHub Bot) [#60705](https://github.com/nodejs/node/pull/60705)
* \[[`d908c83330`](https://github.com/nodejs/node/commit/d908c83330)] - **deps**: update cjs-module-lexer to 2.1.1 (Node.js GitHub Bot) [#60646](https://github.com/nodejs/node/pull/60646)
* \[[`96530a4ca6`](https://github.com/nodejs/node/commit/96530a4ca6)] - **deps**: update simdjson to 4.2.1 (Node.js GitHub Bot) [#60644](https://github.com/nodejs/node/pull/60644)
* \[[`6b0926ef20`](https://github.com/nodejs/node/commit/6b0926ef20)] - **deps,src**: prepare for cpplint update (Michaël Zasso) [#60901](https://github.com/nodejs/node/pull/60901)
* \[[`5ed71efa3e`](https://github.com/nodejs/node/commit/5ed71efa3e)] - **doc**: fix v25 changelog after security release (Marco Ippolito) [#61371](https://github.com/nodejs/node/pull/61371)
* \[[`c2791069a2`](https://github.com/nodejs/node/commit/c2791069a2)] - **doc**: correct description of `error.stack` accessor behavior (René) [#61090](https://github.com/nodejs/node/pull/61090)
* \[[`134780c035`](https://github.com/nodejs/node/commit/134780c035)] - **doc**: add documentation for process.traceProcessWarnings (Alireza Ebrahimkhani) [#53641](https://github.com/nodejs/node/pull/53641)
* \[[`3b08efcebb`](https://github.com/nodejs/node/commit/3b08efcebb)] - **doc**: add sqlite session disposal method (René) [#61273](https://github.com/nodejs/node/pull/61273)
* \[[`ec1847a097`](https://github.com/nodejs/node/commit/ec1847a097)] - **doc**: fix filename typo (Hardanish Singh) [#61297](https://github.com/nodejs/node/pull/61297)
* \[[`2c651ce460`](https://github.com/nodejs/node/commit/2c651ce460)] - **doc**: fix typos and grammar in `BUILDING.md` & `onboarding.md` (Hardanish Singh) [#61267](https://github.com/nodejs/node/pull/61267)
* \[[`28fe6ea4a8`](https://github.com/nodejs/node/commit/28fe6ea4a8)] - **doc**: mention --newVersion release script (Rafael Gonzaga) [#61255](https://github.com/nodejs/node/pull/61255)
* \[[`2fb35d897d`](https://github.com/nodejs/node/commit/2fb35d897d)] - **doc**: correct typo in BUILDING doc (Mike McCready) [#61261](https://github.com/nodejs/node/pull/61261)
* \[[`8dc2501a25`](https://github.com/nodejs/node/commit/8dc2501a25)] - **doc**: correct typo in api contributing doc (Mike McCready) [#61260](https://github.com/nodejs/node/pull/61260)
* \[[`69e357a9d4`](https://github.com/nodejs/node/commit/69e357a9d4)] - **doc**: add PR-URL requirement for security backports (Rafael Gonzaga) [#61256](https://github.com/nodejs/node/pull/61256)
* \[[`73326ae103`](https://github.com/nodejs/node/commit/73326ae103)] - **doc**: add reusePort error behavior to net module (mag123c) [#61250](https://github.com/nodejs/node/pull/61250)
* \[[`67fbf4d371`](https://github.com/nodejs/node/commit/67fbf4d371)] - **doc**: note corepack package removal in distribution doc (Mike McCready) [#61207](https://github.com/nodejs/node/pull/61207)
* \[[`0792859e49`](https://github.com/nodejs/node/commit/0792859e49)] - **doc**: fix tls.connect() timeout documentation (Azad Gupta) [#61079](https://github.com/nodejs/node/pull/61079)
* \[[`72f42b9985`](https://github.com/nodejs/node/commit/72f42b9985)] - **doc**: missing `passed`, `error` and `passed` properties on `TestContext` (Xavier Stouder) [#61185](https://github.com/nodejs/node/pull/61185)
* \[[`f418fcc635`](https://github.com/nodejs/node/commit/f418fcc635)] - **doc**: clarify threat model for application-level API exposure (Rafael Gonzaga) [#61184](https://github.com/nodejs/node/pull/61184)
* \[[`bd4710769a`](https://github.com/nodejs/node/commit/bd4710769a)] - **doc**: correct options for net.Socket class and socket.connect (Xavier Stouder) [#61179](https://github.com/nodejs/node/pull/61179)
* \[[`387b65ca08`](https://github.com/nodejs/node/commit/387b65ca08)] - **doc**: document error event on readline InterfaceConstructor (Xavier Stouder) [#61170](https://github.com/nodejs/node/pull/61170)
* \[[`6d886e10e4`](https://github.com/nodejs/node/commit/6d886e10e4)] - **doc**: add a smooth scrolling effect to the sidebar (btea) [#59007](https://github.com/nodejs/node/pull/59007)
* \[[`23fb3a64ec`](https://github.com/nodejs/node/commit/23fb3a64ec)] - **doc**: fix test settime docs (Efe) [#61117](https://github.com/nodejs/node/pull/61117)
* \[[`808eb437ee`](https://github.com/nodejs/node/commit/808eb437ee)] - **doc**: correct invalid collaborator profile (JJ) [#61091](https://github.com/nodejs/node/pull/61091)
* \[[`5e8eb5fe6c`](https://github.com/nodejs/node/commit/5e8eb5fe6c)] - **doc**: add a tip about developer mode on Windows (Joyee Cheung) [#61112](https://github.com/nodejs/node/pull/61112)
* \[[`a4248776da`](https://github.com/nodejs/node/commit/a4248776da)] - **doc**: exclude compile-time flag features from security policy (Matteo Collina) [#61109](https://github.com/nodejs/node/pull/61109)
* \[[`44f61dfb92`](https://github.com/nodejs/node/commit/44f61dfb92)] - **doc**: add @avivkeller to collaborators (Aviv Keller) [#61115](https://github.com/nodejs/node/pull/61115)
* \[[`08b5347b41`](https://github.com/nodejs/node/commit/08b5347b41)] - **doc**: warn about short GCM tags visibly (Tobias Nießen) [#61082](https://github.com/nodejs/node/pull/61082)
* \[[`45903ee884`](https://github.com/nodejs/node/commit/45903ee884)] - **doc**: add gurgunday to collaborators (Gürgün Dayıoğlu) [#61094](https://github.com/nodejs/node/pull/61094)
* \[[`ce5d6e22ef`](https://github.com/nodejs/node/commit/ce5d6e22ef)] - **doc**: update MDN links (Livia Medeiros) [#61062](https://github.com/nodejs/node/pull/61062)
* \[[`657cbd4af3`](https://github.com/nodejs/node/commit/657cbd4af3)] - **doc**: mark sync module hooks as release candidate (Joyee Cheung) [#60960](https://github.com/nodejs/node/pull/60960)
* \[[`a46368a82b`](https://github.com/nodejs/node/commit/a46368a82b)] - **doc**: reorganize docs of module customization hooks (Joyee Cheung) [#60960](https://github.com/nodejs/node/pull/60960)
* \[[`9851278e99`](https://github.com/nodejs/node/commit/9851278e99)] - **doc**: mark crypto.hash as stable (Joyee Cheung) [#60994](https://github.com/nodejs/node/pull/60994)
* \[[`77faa14d99`](https://github.com/nodejs/node/commit/77faa14d99)] - **doc**: mark --build-snapshot and --build-snapshot-config as stable (Joyee Cheung) [#60954](https://github.com/nodejs/node/pull/60954)
* \[[`6d5f9ffc6d`](https://github.com/nodejs/node/commit/6d5f9ffc6d)] - **doc**: add File modes cross-references in fs methods (Mohit Raj Saxena) [#60286](https://github.com/nodejs/node/pull/60286)
* \[[`521b25a27d`](https://github.com/nodejs/node/commit/521b25a27d)] - **doc**: add missing `zstd` to mjs example of zlib (Deokjin Kim) [#60915](https://github.com/nodejs/node/pull/60915)
* \[[`9a9bed9b3a`](https://github.com/nodejs/node/commit/9a9bed9b3a)] - **doc**: clarify fileURLToPath security considerations (Rafael Gonzaga) [#60887](https://github.com/nodejs/node/pull/60887)
* \[[`bebb4731b1`](https://github.com/nodejs/node/commit/bebb4731b1)] - **doc**: show the use of string expressions in the SQLTagStore example (schliepa) [#60873](https://github.com/nodejs/node/pull/60873)
* \[[`f247c24cb0`](https://github.com/nodejs/node/commit/f247c24cb0)] - **doc**: replace column with columnNumber in example of `util.getCallSites` (Deokjin Kim) [#60881](https://github.com/nodejs/node/pull/60881)
* \[[`487c1080aa`](https://github.com/nodejs/node/commit/487c1080aa)] - **doc**: correct spelling in BUILDING.md (Rich Trott) [#60875](https://github.com/nodejs/node/pull/60875)
* \[[`5751e3f736`](https://github.com/nodejs/node/commit/5751e3f736)] - **doc**: update debuglog examples to use 'foo-bar' instead of 'foo' (xiaoyao) [#60867](https://github.com/nodejs/node/pull/60867)
* \[[`ec8336b7a0`](https://github.com/nodejs/node/commit/ec8336b7a0)] - **doc**: correct 'event handle' to 'event handler' in Utf8Stream drop event (Riddhi) [#60692](https://github.com/nodejs/node/pull/60692)
* \[[`95ef052751`](https://github.com/nodejs/node/commit/95ef052751)] - **doc**: fix typos in changelogs (Rich Trott) [#60855](https://github.com/nodejs/node/pull/60855)
* \[[`a10b3130c6`](https://github.com/nodejs/node/commit/a10b3130c6)] - **doc**: mark module.register as active development (Chengzhong Wu) [#60849](https://github.com/nodejs/node/pull/60849)
* \[[`bfe8c62a2d`](https://github.com/nodejs/node/commit/bfe8c62a2d)] - **doc**: add fullName property to SuiteContext (PaulyBearCoding) [#60762](https://github.com/nodejs/node/pull/60762)
* \[[`2799f594e3`](https://github.com/nodejs/node/commit/2799f594e3)] - **doc**: add additional codemods for deprecation (Augustin Mauroy) [#60811](https://github.com/nodejs/node/pull/60811)
* \[[`2b51d5d113`](https://github.com/nodejs/node/commit/2b51d5d113)] - **doc**: keep sidebar module visible when navigating docs (Botato) [#60410](https://github.com/nodejs/node/pull/60410)
* \[[`2fa9917b07`](https://github.com/nodejs/node/commit/2fa9917b07)] - **doc**: fix webstorage config file property (Marco Ippolito) [#60798](https://github.com/nodejs/node/pull/60798)
* \[[`a0691d6eb6`](https://github.com/nodejs/node/commit/a0691d6eb6)] - **doc**: correct concurrency wording in test() documentation (Azad Gupta) [#60773](https://github.com/nodejs/node/pull/60773)
* \[[`d26842c523`](https://github.com/nodejs/node/commit/d26842c523)] - **doc**: clarify that CQ only picks up PRs targeting `main` (René) [#60731](https://github.com/nodejs/node/pull/60731)
* \[[`3e84428ffe`](https://github.com/nodejs/node/commit/3e84428ffe)] - **doc**: clarify license section and add contributor note (KaleruMadhu) [#60590](https://github.com/nodejs/node/pull/60590)
* \[[`745ea1d61f`](https://github.com/nodejs/node/commit/745ea1d61f)] - **doc**: correct and expand documentation for SQLTagStore (René) [#60200](https://github.com/nodejs/node/pull/60200)
* \[[`a442c27c0a`](https://github.com/nodejs/node/commit/a442c27c0a)] - **doc**: correct tls ALPNProtocols types (René) [#60143](https://github.com/nodejs/node/pull/60143)
* \[[`d90001a579`](https://github.com/nodejs/node/commit/d90001a579)] - **doc**: remove mention of SMS 2FA (Antoine du Hamel) [#60707](https://github.com/nodejs/node/pull/60707)
* \[[`7525a3fa4b`](https://github.com/nodejs/node/commit/7525a3fa4b)] - **doc**: add info about renamed flag in `cli.md` (Antoine du Hamel) [#60690](https://github.com/nodejs/node/pull/60690)
* \[[`db0a86897b`](https://github.com/nodejs/node/commit/db0a86897b)] - **doc**: fix incorrect slh-dsa oids in crypto.md (Artsiom Malakhau) [#60681](https://github.com/nodejs/node/pull/60681)
* \[[`e5ede89a94`](https://github.com/nodejs/node/commit/e5ede89a94)] - **doc**: `domain.add()` does not accept timer objects (René) [#60675](https://github.com/nodejs/node/pull/60675)
* \[[`36ba9d99ba`](https://github.com/nodejs/node/commit/36ba9d99ba)] - _**Revert**_ "**doc, assert**: correct order of changes entries" (Michaël Zasso) [#60774](https://github.com/nodejs/node/pull/60774)
* \[[`e6e5ed7665`](https://github.com/nodejs/node/commit/e6e5ed7665)] - **doc,test**: add documentation and test on how to use addons in SEA (Joyee Cheung) [#59582](https://github.com/nodejs/node/pull/59582)
* \[[`f12eb28489`](https://github.com/nodejs/node/commit/f12eb28489)] - **esm**: avoid throw when module specifier is not url (Craig Macomber (Microsoft)) [#61000](https://github.com/nodejs/node/pull/61000)
* \[[`a7b92e0677`](https://github.com/nodejs/node/commit/a7b92e0677)] - **esm**: improve error messages for ambiguous module syntax (mag123c) [#60376](https://github.com/nodejs/node/pull/60376)
* \[[`6da85b576b`](https://github.com/nodejs/node/commit/6da85b576b)] - **events**: remove eventtarget custom inspect branding (Efe) [#61128](https://github.com/nodejs/node/pull/61128)
* \[[`aefbe4ba47`](https://github.com/nodejs/node/commit/aefbe4ba47)] - **(SEMVER-MINOR)** **events**: repurpose `events.listenerCount()` to accept EventTargets (René) [#60214](https://github.com/nodejs/node/pull/60214)
* \[[`dc19409f36`](https://github.com/nodejs/node/commit/dc19409f36)] - **fs**: validate statfs path (Efe) [#61230](https://github.com/nodejs/node/pull/61230)
* \[[`206e353a4a`](https://github.com/nodejs/node/commit/206e353a4a)] - **fs**: fix rmSync to handle non-ASCII characters (Yeaseen) [#61108](https://github.com/nodejs/node/pull/61108)
* \[[`feee377b83`](https://github.com/nodejs/node/commit/feee377b83)] - **fs**: remove broken symlinks in rmSync (sangwook) [#61040](https://github.com/nodejs/node/pull/61040)
* \[[`6b577c80bb`](https://github.com/nodejs/node/commit/6b577c80bb)] - **fs**: detect dot files when using globstar (Robin van Wijngaarden) [#61012](https://github.com/nodejs/node/pull/61012)
* \[[`8470e2993b`](https://github.com/nodejs/node/commit/8470e2993b)] - **(SEMVER-MINOR)** **http**: add http.setGlobalProxyFromEnv() (Joyee Cheung) [#60953](https://github.com/nodejs/node/pull/60953)
* \[[`a731463a60`](https://github.com/nodejs/node/commit/a731463a60)] - **http,https**: fix double ERR\_PROXY\_TUNNEL emission (Shima Ryuhei) [#60699](https://github.com/nodejs/node/pull/60699)
* \[[`b2736646b6`](https://github.com/nodejs/node/commit/b2736646b6)] - **http2,zlib**: prefer `call()` over `apply()` if argument list is not array (Livia Medeiros) [#60834](https://github.com/nodejs/node/pull/60834)
* \[[`86bce15e96`](https://github.com/nodejs/node/commit/86bce15e96)] - **lib**: implement all 1-byte encodings in js (Сковорода Никита Андреевич) [#61093](https://github.com/nodejs/node/pull/61093)
* \[[`8156738b97`](https://github.com/nodejs/node/commit/8156738b97)] - **lib**: gbk decoder is gb18030 decoder per spec (Сковорода Никита Андреевич) [#61099](https://github.com/nodejs/node/pull/61099)
* \[[`d8f1dea0d3`](https://github.com/nodejs/node/commit/d8f1dea0d3)] - **lib**: enforce use of `URLParse` (Antoine du Hamel) [#61016](https://github.com/nodejs/node/pull/61016)
* \[[`9023b3f9ce`](https://github.com/nodejs/node/commit/9023b3f9ce)] - **lib**: add lint rules for reflective function calls (Antoine du Hamel) [#60825](https://github.com/nodejs/node/pull/60825)
* \[[`2979113136`](https://github.com/nodejs/node/commit/2979113136)] - **lib**: prefer `call()` over `apply()` if argument list is not array (Livia Medeiros) [#60796](https://github.com/nodejs/node/pull/60796)
* \[[`2b36433f4a`](https://github.com/nodejs/node/commit/2b36433f4a)] - **lib**: add support for readable byte streams to .toWeb() (Hans Klunder) [#58664](https://github.com/nodejs/node/pull/58664)
* \[[`1a0c3dddb9`](https://github.com/nodejs/node/commit/1a0c3dddb9)] - **lib**: use `FastBuffer` for empty buffer allocation (Gürgün Dayıoğlu) [#60558](https://github.com/nodejs/node/pull/60558)
* \[[`9209cf67a4`](https://github.com/nodejs/node/commit/9209cf67a4)] - **lib**: refactor JWK import PQC support check (Filip Skokan) [#60586](https://github.com/nodejs/node/pull/60586)
* \[[`42666c241a`](https://github.com/nodejs/node/commit/42666c241a)] - **lib,src**: isInsideNodeModules should test on the first non-internal frame (Chengzhong Wu) [#60991](https://github.com/nodejs/node/pull/60991)
* \[[`4a22647609`](https://github.com/nodejs/node/commit/4a22647609)] - **lib,src,test**: fix tests without SQLite (Antoine du Hamel) [#60906](https://github.com/nodejs/node/pull/60906)
* \[[`24795530bb`](https://github.com/nodejs/node/commit/24795530bb)] - **lib,test**: enforce use of `assert.fail` via a lint rule (Antoine du Hamel) [#61004](https://github.com/nodejs/node/pull/61004)
* \[[`1977348ae0`](https://github.com/nodejs/node/commit/1977348ae0)] - **lib,test**: fix jsdoc comments (Michaël Zasso) [#60870](https://github.com/nodejs/node/pull/60870)
* \[[`3549cf14ce`](https://github.com/nodejs/node/commit/3549cf14ce)] - **meta**: remove t.js (RafaelGSS) [#61369](https://github.com/nodejs/node/pull/61369)
* \[[`5cf54abad7`](https://github.com/nodejs/node/commit/5cf54abad7)] - **meta**: bump step-security/harden-runner from 2.13.2 to 2.14.0 (dependabot\[bot]) [#61245](https://github.com/nodejs/node/pull/61245)
* \[[`b57bab72e1`](https://github.com/nodejs/node/commit/b57bab72e1)] - **meta**: bump actions/setup-node from 6.0.0 to 6.1.0 (dependabot\[bot]) [#61244](https://github.com/nodejs/node/pull/61244)
* \[[`42117b5069`](https://github.com/nodejs/node/commit/42117b5069)] - **meta**: bump actions/cache from 4.3.0 to 5.0.1 (dependabot\[bot]) [#61243](https://github.com/nodejs/node/pull/61243)
* \[[`fee3edd38e`](https://github.com/nodejs/node/commit/fee3edd38e)] - **meta**: bump actions/download-artifact from 6.0.0 to 7.0.0 (dependabot\[bot]) [#61242](https://github.com/nodejs/node/pull/61242)
* \[[`a96c3160ff`](https://github.com/nodejs/node/commit/a96c3160ff)] - **meta**: bump github/codeql-action from 4.31.6 to 4.31.9 (dependabot\[bot]) [#61241](https://github.com/nodejs/node/pull/61241)
* \[[`b4233e18a9`](https://github.com/nodejs/node/commit/b4233e18a9)] - **meta**: bump codecov/codecov-action from 5.5.1 to 5.5.2 (dependabot\[bot]) [#61240](https://github.com/nodejs/node/pull/61240)
* \[[`c5d7dd3731`](https://github.com/nodejs/node/commit/c5d7dd3731)] - **meta**: bump actions/checkout from 6.0.0 to 6.0.1 (dependabot\[bot]) [#61239](https://github.com/nodejs/node/pull/61239)
* \[[`d83cec1534`](https://github.com/nodejs/node/commit/d83cec1534)] - **meta**: bump actions/upload-artifact from 5.0.0 to 6.0.0 (dependabot\[bot]) [#61238](https://github.com/nodejs/node/pull/61238)
* \[[`d4bfd26f06`](https://github.com/nodejs/node/commit/d4bfd26f06)] - **meta**: bump peter-evans/create-pull-request from 7.0.9 to 8.0.0 (dependabot\[bot]) [#61237](https://github.com/nodejs/node/pull/61237)
* \[[`9246c6ab12`](https://github.com/nodejs/node/commit/9246c6ab12)] - **meta**: bump cachix/install-nix-action from 31.8.4 to 31.9.0 (dependabot\[bot]) [#61236](https://github.com/nodejs/node/pull/61236)
* \[[`1b378cfd5e`](https://github.com/nodejs/node/commit/1b378cfd5e)] - **meta**: move lukekarrys to emeritus (Node.js GitHub Bot) [#60985](https://github.com/nodejs/node/pull/60985)
* \[[`f3bfa68d78`](https://github.com/nodejs/node/commit/f3bfa68d78)] - **meta**: bump actions/setup-python from 6.0.0 to 6.1.0 (dependabot\[bot]) [#60927](https://github.com/nodejs/node/pull/60927)
* \[[`f1935d19e9`](https://github.com/nodejs/node/commit/f1935d19e9)] - **meta**: bump github/codeql-action from 4.31.3 to 4.31.6 (dependabot\[bot]) [#60926](https://github.com/nodejs/node/pull/60926)
* \[[`0a4a4c090d`](https://github.com/nodejs/node/commit/0a4a4c090d)] - **meta**: bump actions/checkout from 5.0.1 to 6.0.0 (dependabot\[bot]) [#60925](https://github.com/nodejs/node/pull/60925)
* \[[`d76f95117b`](https://github.com/nodejs/node/commit/d76f95117b)] - **meta**: bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 (dependabot\[bot]) [#60924](https://github.com/nodejs/node/pull/60924)
* \[[`4dd153f8c3`](https://github.com/nodejs/node/commit/4dd153f8c3)] - **meta**: bump github/codeql-action from 4.31.2 to 4.31.3 (dependabot\[bot]) [#60770](https://github.com/nodejs/node/pull/60770)
* \[[`a90bf3ece1`](https://github.com/nodejs/node/commit/a90bf3ece1)] - **meta**: bump step-security/harden-runner from 2.13.1 to 2.13.2 (dependabot\[bot]) [#60769](https://github.com/nodejs/node/pull/60769)
* \[[`ecc945d7ec`](https://github.com/nodejs/node/commit/ecc945d7ec)] - **meta**: bump cachix/install-nix-action from 31.8.2 to 31.8.4 (dependabot\[bot]) [#60768](https://github.com/nodejs/node/pull/60768)
* \[[`5578327a4f`](https://github.com/nodejs/node/commit/5578327a4f)] - **meta**: bump actions/checkout from 5.0.0 to 5.0.1 (dependabot\[bot]) [#60767](https://github.com/nodejs/node/pull/60767)
* \[[`24384d7438`](https://github.com/nodejs/node/commit/24384d7438)] - **meta**: add Renegade334 to collaborators (Renegade334) [#60714](https://github.com/nodejs/node/pull/60714)
* \[[`2d560e42fa`](https://github.com/nodejs/node/commit/2d560e42fa)] - **module**: fix sync resolve hooks for require with node: prefixes (Joyee Cheung) [#61088](https://github.com/nodejs/node/pull/61088)
* \[[`15c3655b9a`](https://github.com/nodejs/node/commit/15c3655b9a)] - **module**: preserve URL in the parent created by createRequire() (Joyee Cheung) [#60974](https://github.com/nodejs/node/pull/60974)
* \[[`c1acef6d0f`](https://github.com/nodejs/node/commit/c1acef6d0f)] - **module**: mark require(esm) as stable (Joyee Cheung) [#60959](https://github.com/nodejs/node/pull/60959)
* \[[`2e39f3ed6b`](https://github.com/nodejs/node/commit/2e39f3ed6b)] - **module**: mark module compile cache as stable (Joyee Cheung) [#60971](https://github.com/nodejs/node/pull/60971)
* \[[`e6a05cfb4f`](https://github.com/nodejs/node/commit/e6a05cfb4f)] - **(SEMVER-MINOR)** **module**: allow subpath imports that start with `#/` (Jan Martin) [#60864](https://github.com/nodejs/node/pull/60864)
* \[[`1983cd6692`](https://github.com/nodejs/node/commit/1983cd6692)] - **node-api**: add napi\_set\_prototype (siaeyy) [#60711](https://github.com/nodejs/node/pull/60711)
* \[[`350b0ea895`](https://github.com/nodejs/node/commit/350b0ea895)] - **node-api**: fix data race and use-after-free in napi\_threadsafe\_function (Mika Fischer) [#55877](https://github.com/nodejs/node/pull/55877)
* \[[`cb3f79273a`](https://github.com/nodejs/node/commit/cb3f79273a)] - **node-api**: add support for Float16Array (Ilyas Shabi) [#58879](https://github.com/nodejs/node/pull/58879)
* \[[`bdf359b3d1`](https://github.com/nodejs/node/commit/bdf359b3d1)] - **node-api**: support SharedArrayBuffer in napi\_create\_dataview (Kevin Eady) [#60473](https://github.com/nodejs/node/pull/60473)
* \[[`3c5dc03f06`](https://github.com/nodejs/node/commit/3c5dc03f06)] - **os**: freeze signals constant (Xavier Stouder) [#61038](https://github.com/nodejs/node/pull/61038)
* \[[`ca5c4c9752`](https://github.com/nodejs/node/commit/ca5c4c9752)] - **process**: improve process.cwd() error message (TseIan) [#61164](https://github.com/nodejs/node/pull/61164)
* \[[`fa927c31da`](https://github.com/nodejs/node/commit/fa927c31da)] - **(SEMVER-MINOR)** **process**: preserve AsyncLocalStorage in queueMicrotask only when needed (Gürgün Dayıoğlu) [#60913](https://github.com/nodejs/node/pull/60913)
* \[[`571cec49e0`](https://github.com/nodejs/node/commit/571cec49e0)] - **repl**: fix getters triggering side effects during completion (Dario Piotrowicz) [#61043](https://github.com/nodejs/node/pull/61043)
* \[[`377aed336c`](https://github.com/nodejs/node/commit/377aed336c)] - **repl**: tab completion targets `<class>` instead of `new <class>` (Đỗ Trọng Hải) [#60319](https://github.com/nodejs/node/pull/60319)
* \[[`cb8bc3466d`](https://github.com/nodejs/node/commit/cb8bc3466d)] - **sqlite**: improve error messages for tag store (Pramit Sharma) [#61096](https://github.com/nodejs/node/pull/61096)
* \[[`324ea4fa2d`](https://github.com/nodejs/node/commit/324ea4fa2d)] - **sqlite**: make `SQLTagStore.prototype.size` a getter (René) [#60246](https://github.com/nodejs/node/pull/60246)
* \[[`874c50296d`](https://github.com/nodejs/node/commit/874c50296d)] - **src**: dump snapshot source with node:generate\_default\_snapshot\_source (Joyee Cheung) [#61101](https://github.com/nodejs/node/pull/61101)
* \[[`0692b4f014`](https://github.com/nodejs/node/commit/0692b4f014)] - **src**: improve StringBytes::Encode perf on ASCII (Сковорода Никита Андреевич) [#61119](https://github.com/nodejs/node/pull/61119)
* \[[`754271a1f0`](https://github.com/nodejs/node/commit/754271a1f0)] - **src**: add HandleScope to edge loop in heap\_utils (Mert Can Altin) [#60885](https://github.com/nodejs/node/pull/60885)
* \[[`8f46bd9352`](https://github.com/nodejs/node/commit/8f46bd9352)] - **src**: remove redundant CHECK (Tobias Nießen) [#61130](https://github.com/nodejs/node/pull/61130)
* \[[`5e6ffd9aa0`](https://github.com/nodejs/node/commit/5e6ffd9aa0)] - **src**: remove unused private field in `SQLTagStore` (Michaël Zasso) [#61027](https://github.com/nodejs/node/pull/61027)
* \[[`550e8a7a69`](https://github.com/nodejs/node/commit/550e8a7a69)] - **src**: implement Windows-1252 encoding support and update related tests (Mert Can Altin) [#60893](https://github.com/nodejs/node/pull/60893)
* \[[`3f9c0e07b4`](https://github.com/nodejs/node/commit/3f9c0e07b4)] - **src**: fix off-thread cert loading in bundled cert mode (Joyee Cheung) [#60764](https://github.com/nodejs/node/pull/60764)
* \[[`7eaf815341`](https://github.com/nodejs/node/commit/7eaf815341)] - **src**: handle DER decoding errors from system certificates (Joyee Cheung) [#60787](https://github.com/nodejs/node/pull/60787)
* \[[`6e76cec44a`](https://github.com/nodejs/node/commit/6e76cec44a)] - **src**: use static\_cast instead of C-style cast (Michaël Zasso) [#60868](https://github.com/nodejs/node/pull/60868)
* \[[`103e55487e`](https://github.com/nodejs/node/commit/103e55487e)] - **src**: handle indexed properties in `process.env` (Michaël Zasso) [#60826](https://github.com/nodejs/node/pull/60826)
* \[[`83d1f41752`](https://github.com/nodejs/node/commit/83d1f41752)] - **src**: simply uint32 to string as it must not fail (Chengzhong Wu) [#60846](https://github.com/nodejs/node/pull/60846)
* \[[`2dfdc6f01e`](https://github.com/nodejs/node/commit/2dfdc6f01e)] - **src**: mark unused private field as such (Michaël Zasso) [#60802](https://github.com/nodejs/node/pull/60802)
* \[[`920f02539e`](https://github.com/nodejs/node/commit/920f02539e)] - **src**: implicitly enable namespace in config (Marco Ippolito) [#60798](https://github.com/nodejs/node/pull/60798)
* \[[`47c5bd9b7c`](https://github.com/nodejs/node/commit/47c5bd9b7c)] - **src**: add permission flag to config file (Marco Ippolito) [#60798](https://github.com/nodejs/node/pull/60798)
* \[[`d9df3f710d`](https://github.com/nodejs/node/commit/d9df3f710d)] - **src**: add test flag to config file (Marco Ippolito) [#60798](https://github.com/nodejs/node/pull/60798)
* \[[`831256cb92`](https://github.com/nodejs/node/commit/831256cb92)] - **src**: rename config file testRunner to test (Marco Ippolito) [#60798](https://github.com/nodejs/node/pull/60798)
* \[[`6c2b75ba87`](https://github.com/nodejs/node/commit/6c2b75ba87)] - **src**: split inspector protocol domains files (Chengzhong Wu) [#60754](https://github.com/nodejs/node/pull/60754)
* \[[`51cf032a5e`](https://github.com/nodejs/node/commit/51cf032a5e)] - **src**: add permission support to config file (Marco Ippolito) [#60746](https://github.com/nodejs/node/pull/60746)
* \[[`413db7c635`](https://github.com/nodejs/node/commit/413db7c635)] - **src**: build v8 tick processor as built-in source text modules (Joyee Cheung) [#60518](https://github.com/nodejs/node/pull/60518)
* \[[`428d24acf5`](https://github.com/nodejs/node/commit/428d24acf5)] - **src,permission**: fix permission.has on empty param (Rafael Gonzaga) [#60674](https://github.com/nodejs/node/pull/60674)
* \[[`a60aa72a87`](https://github.com/nodejs/node/commit/a60aa72a87)] - **src,permission**: add debug log on is\_tree\_granted (Rafael Gonzaga) [#60668](https://github.com/nodejs/node/pull/60668)
* \[[`bd0942f4f5`](https://github.com/nodejs/node/commit/bd0942f4f5)] - **(SEMVER-MINOR)** **stream**: do not pass `readable.compose()` output via `Readable.from()` (René) [#60907](https://github.com/nodejs/node/pull/60907)
* \[[`90c12a252a`](https://github.com/nodejs/node/commit/90c12a252a)] - **stream**: fix isErrored/isWritable for WritableStreams (René) [#60905](https://github.com/nodejs/node/pull/60905)
* \[[`9ac774c15b`](https://github.com/nodejs/node/commit/9ac774c15b)] - **test**: asserts that import.meta.resolve invokes sync loader hooks (Chengzhong Wu) [#61158](https://github.com/nodejs/node/pull/61158)
* \[[`c08afc5712`](https://github.com/nodejs/node/commit/c08afc5712)] - **test**: check util.parseArgs argv parsing with actual process execution (René) [#61089](https://github.com/nodejs/node/pull/61089)
* \[[`182f2e4b5a`](https://github.com/nodejs/node/commit/182f2e4b5a)] - **test**: update WPT for urlpattern to a2e15ad405 (Node.js GitHub Bot) [#61134](https://github.com/nodejs/node/pull/61134)
* \[[`9f7cc779f5`](https://github.com/nodejs/node/commit/9f7cc779f5)] - **test**: make buffer sizes 32bit-aware in test-internal-util-construct-sab (René) [#61026](https://github.com/nodejs/node/pull/61026)
* \[[`c6a8234963`](https://github.com/nodejs/node/commit/c6a8234963)] - **test**: remove unneccessary repl magic\_mode tests (Dario Piotrowicz) [#61053](https://github.com/nodejs/node/pull/61053)
* \[[`fa2fe0930f`](https://github.com/nodejs/node/commit/fa2fe0930f)] - **test**: skip sea tests on riscv64 (Stewart X Addison) [#61111](https://github.com/nodejs/node/pull/61111)
* \[[`b209f6ba19`](https://github.com/nodejs/node/commit/b209f6ba19)] - **test**: simplify `test-cli-node-options-docs` (Antoine du Hamel) [#61006](https://github.com/nodejs/node/pull/61006)
* \[[`c9153c7d4f`](https://github.com/nodejs/node/commit/c9153c7d4f)] - **test**: mark stringbytes-external-max flaky on AIX (Stewart X Addison) [#60995](https://github.com/nodejs/node/pull/60995)
* \[[`2cbddfefb7`](https://github.com/nodejs/node/commit/2cbddfefb7)] - **test**: update test426 fixtures (Rich Trott) [#60982](https://github.com/nodejs/node/pull/60982)
* \[[`c7190e6876`](https://github.com/nodejs/node/commit/c7190e6876)] - **test**: update WPT for urlpattern to aed1f3d244 (Node.js GitHub Bot) [#60642](https://github.com/nodejs/node/pull/60642)
* \[[`92649e2873`](https://github.com/nodejs/node/commit/92649e2873)] - **test**: deflake `test-repl-paste-big-data` (Livia Medeiros) [#60975](https://github.com/nodejs/node/pull/60975)
* \[[`e4bc345442`](https://github.com/nodejs/node/commit/e4bc345442)] - **test**: skip tests not passing without `NODE_OPTIONS` support (Antoine du Hamel) [#60912](https://github.com/nodejs/node/pull/60912)
* \[[`63299a47ec`](https://github.com/nodejs/node/commit/63299a47ec)] - **test**: improve config-file permission test coverage (Rafael Gonzaga) [#60929](https://github.com/nodejs/node/pull/60929)
* \[[`9a0c420a33`](https://github.com/nodejs/node/commit/9a0c420a33)] - **test**: skip SEA inspect test if inspector is not available (Livia Medeiros) [#60872](https://github.com/nodejs/node/pull/60872)
* \[[`e97daea17c`](https://github.com/nodejs/node/commit/e97daea17c)] - **test**: update WPT for WebCryptoAPI to 1e4933113d (Node.js GitHub Bot) [#60896](https://github.com/nodejs/node/pull/60896)
* \[[`ac367b3550`](https://github.com/nodejs/node/commit/ac367b3550)] - **test**: lint more `assert(regexp.test(...))` cases (René) [#60878](https://github.com/nodejs/node/pull/60878)
* \[[`ca5720e7b5`](https://github.com/nodejs/node/commit/ca5720e7b5)] - **test**: use `assert.match` for non-literal regexp tests (René) [#60879](https://github.com/nodejs/node/pull/60879)
* \[[`5d30d3fc2d`](https://github.com/nodejs/node/commit/5d30d3fc2d)] - **test**: fix embedtest in debug windows (Vladimir Morozov) [#60806](https://github.com/nodejs/node/pull/60806)
* \[[`8caeb03a52`](https://github.com/nodejs/node/commit/8caeb03a52)] - **test**: skip failing tests when compiled without amaro (Yuki Okita) [#60815](https://github.com/nodejs/node/pull/60815)
* \[[`242e20bf9a`](https://github.com/nodejs/node/commit/242e20bf9a)] - **test**: fix debug test crashes caused by sea tests (Vladimir Morozov) [#60807](https://github.com/nodejs/node/pull/60807)
* \[[`b890362e1a`](https://github.com/nodejs/node/commit/b890362e1a)] - **test**: add lint rule to forbid use of `assert.ok(/regex/.test(…))` (Antoine du Hamel) [#60832](https://github.com/nodejs/node/pull/60832)
* \[[`b08cb5657e`](https://github.com/nodejs/node/commit/b08cb5657e)] - **test**: replace deprecated regex test assertions in http trailers test (Aditya Chopra) [#60831](https://github.com/nodejs/node/pull/60831)
* \[[`47ed95965e`](https://github.com/nodejs/node/commit/47ed95965e)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60761](https://github.com/nodejs/node/pull/60761)
* \[[`79d48f9441`](https://github.com/nodejs/node/commit/79d48f9441)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60759](https://github.com/nodejs/node/pull/60759)
* \[[`585e200b40`](https://github.com/nodejs/node/commit/585e200b40)] - **test**: prefer major GC in cppgc-object teardown (sangwook) [#60672](https://github.com/nodejs/node/pull/60672)
* \[[`9426ff6b08`](https://github.com/nodejs/node/commit/9426ff6b08)] - **test**: add basic temporal presence check (Chengzhong Wu) [#60703](https://github.com/nodejs/node/pull/60703)
* \[[`ffebf8e55c`](https://github.com/nodejs/node/commit/ffebf8e55c)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60726](https://github.com/nodejs/node/pull/60726)
* \[[`adc6776c6a`](https://github.com/nodejs/node/commit/adc6776c6a)] - **test**: ensure assertions are reached on HTTP2 tests (Antoine du Hamel) [#60730](https://github.com/nodejs/node/pull/60730)
* \[[`3dae49c6ce`](https://github.com/nodejs/node/commit/3dae49c6ce)] - **test**: ensure assertions are reached on HTTP tests (Antoine du Hamel) [#60729](https://github.com/nodejs/node/pull/60729)
* \[[`5203b09fea`](https://github.com/nodejs/node/commit/5203b09fea)] - **test**: skip test that cause timeout on IBM i (SRAVANI GUNDEPALLI) [#60700](https://github.com/nodejs/node/pull/60700)
* \[[`6d2fe36747`](https://github.com/nodejs/node/commit/6d2fe36747)] - **test**: add missing r.close() calls in REPL multiline tests (sangwook) [#60226](https://github.com/nodejs/node/pull/60226)
* \[[`bbee2ef5e0`](https://github.com/nodejs/node/commit/bbee2ef5e0)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60634](https://github.com/nodejs/node/pull/60634)
* \[[`a2764d450d`](https://github.com/nodejs/node/commit/a2764d450d)] - **test**: update WPT for WebCryptoAPI to c58b6f4e0e (Node.js GitHub Bot) [#60702](https://github.com/nodejs/node/pull/60702)
* \[[`1176fe43a7`](https://github.com/nodejs/node/commit/1176fe43a7)] - **test**: fix test-buffer-zero-fill-cli to be effective (Сковорода Никита Андреевич) [#60623](https://github.com/nodejs/node/pull/60623)
* \[[`1a66dc1292`](https://github.com/nodejs/node/commit/1a66dc1292)] - **test**: limit the concurrency of WPTRunner for RISC-V (Levi Zim) [#60591](https://github.com/nodejs/node/pull/60591)
* \[[`36076846d4`](https://github.com/nodejs/node/commit/36076846d4)] - **test**: fix test-strace-openat-openssl for RISC-V (Levi Zim) [#60588](https://github.com/nodejs/node/pull/60588)
* \[[`5a976cb507`](https://github.com/nodejs/node/commit/5a976cb507)] - **test**: split test-runner-run-watch.mjs (Joyee Cheung) [#60653](https://github.com/nodejs/node/pull/60653)
* \[[`8f611b9bce`](https://github.com/nodejs/node/commit/8f611b9bce)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60641](https://github.com/nodejs/node/pull/60641)
* \[[`3e550d30d6`](https://github.com/nodejs/node/commit/3e550d30d6)] - **test\_runner**: fix lazy `test.assert` accessor (René) [#61097](https://github.com/nodejs/node/pull/61097)
* \[[`ec142be1ed`](https://github.com/nodejs/node/commit/ec142be1ed)] - **test\_runner**: propagate V8 options to child process (Pietro Marchini) [#60999](https://github.com/nodejs/node/pull/60999)
* \[[`3127a2b1e7`](https://github.com/nodejs/node/commit/3127a2b1e7)] - **test\_runner**: fix line feed escaping in JUnit (Aliaksandr) [#60274](https://github.com/nodejs/node/pull/60274)
* \[[`08fb6c9ba4`](https://github.com/nodejs/node/commit/08fb6c9ba4)] - **test\_runner**: simplify code and make it more consistent (Antoine du Hamel) [#60777](https://github.com/nodejs/node/pull/60777)
* \[[`102b217cf3`](https://github.com/nodejs/node/commit/102b217cf3)] - **tools**: bump the eslint group in /tools/eslint with 2 updates (dependabot\[bot]) [#61246](https://github.com/nodejs/node/pull/61246)
* \[[`97b6b61165`](https://github.com/nodejs/node/commit/97b6b61165)] - **tools**: unpin ngtcp2 version updates (Michaël Zasso) [#61155](https://github.com/nodejs/node/pull/61155)
* \[[`7e95edc3de`](https://github.com/nodejs/node/commit/7e95edc3de)] - **tools**: only report commit validation failure on Slack (Antoine du Hamel) [#61124](https://github.com/nodejs/node/pull/61124)
* \[[`3a7ed257a3`](https://github.com/nodejs/node/commit/3a7ed257a3)] - **tools**: use sparse-checkout in linter jobs (Antoine du Hamel) [#61123](https://github.com/nodejs/node/pull/61123)
* \[[`b655edf1bf`](https://github.com/nodejs/node/commit/b655edf1bf)] - **tools**: simplify `notify-on-push` (Antoine du Hamel) [#61050](https://github.com/nodejs/node/pull/61050)
* \[[`230155749d`](https://github.com/nodejs/node/commit/230155749d)] - **tools**: fix update-nghttp2 signature verification (Richard Lau) [#61035](https://github.com/nodejs/node/pull/61035)
* \[[`e8646a7d10`](https://github.com/nodejs/node/commit/e8646a7d10)] - **tools**: improve log output of `create-release-proposal` (Antoine du Hamel) [#61028](https://github.com/nodejs/node/pull/61028)
* \[[`a4b2614912`](https://github.com/nodejs/node/commit/a4b2614912)] - **tools**: fix `vcbuild test` when path contain spaces (stduhpf) [#56481](https://github.com/nodejs/node/pull/56481)
* \[[`9769c359f8`](https://github.com/nodejs/node/commit/9769c359f8)] - **tools**: do not run `test-linux` workflow for changes on `vcbuild.bat` (Antoine du Hamel) [#60979](https://github.com/nodejs/node/pull/60979)
* \[[`2ceaf6eb3c`](https://github.com/nodejs/node/commit/2ceaf6eb3c)] - **tools**: add some options and comments to `shell.nix` (Antoine du Hamel) [#60911](https://github.com/nodejs/node/pull/60911)
* \[[`611135abdc`](https://github.com/nodejs/node/commit/611135abdc)] - **tools**: bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /tools/doc (dependabot\[bot]) [#60930](https://github.com/nodejs/node/pull/60930)
* \[[`b4bad20a6c`](https://github.com/nodejs/node/commit/b4bad20a6c)] - **tools**: ignore more paths in GHA CI (Antoine du Hamel) [#60920](https://github.com/nodejs/node/pull/60920)
* \[[`47b7cb4e9e`](https://github.com/nodejs/node/commit/47b7cb4e9e)] - **tools**: run tests `--without-amaro` on test-shared macOS (Antoine du Hamel) [#60902](https://github.com/nodejs/node/pull/60902)
* \[[`b0ec8c9c2a`](https://github.com/nodejs/node/commit/b0ec8c9c2a)] - **tools**: replace deprecated eslint-plugin-markdown (Michaël Zasso) [#60908](https://github.com/nodejs/node/pull/60908)
* \[[`46dacf686e`](https://github.com/nodejs/node/commit/46dacf686e)] - **tools**: remove deprecated ESLint plugins (Michaël Zasso) [#60908](https://github.com/nodejs/node/pull/60908)
* \[[`1a4ec6e830`](https://github.com/nodejs/node/commit/1a4ec6e830)] - **tools**: update ESLint dependencies (Michaël Zasso) [#60908](https://github.com/nodejs/node/pull/60908)
* \[[`4e442b286d`](https://github.com/nodejs/node/commit/4e442b286d)] - **tools**: refloat 10 Node.js patches to cpplint.py (Michaël Zasso) [#60901](https://github.com/nodejs/node/pull/60901)
* \[[`fa90d09de6`](https://github.com/nodejs/node/commit/fa90d09de6)] - **tools**: update cpplint to 2.0.2 (Michaël Zasso) [#60901](https://github.com/nodejs/node/pull/60901)
* \[[`4d944c5198`](https://github.com/nodejs/node/commit/4d944c5198)] - **tools**: disable some new cpplint rules before update (Michaël Zasso) [#60901](https://github.com/nodejs/node/pull/60901)
* \[[`eaebae1eed`](https://github.com/nodejs/node/commit/eaebae1eed)] - **tools**: don't fetch V8 deps in the source tree (Richard Lau) [#60883](https://github.com/nodejs/node/pull/60883)
* \[[`256770944a`](https://github.com/nodejs/node/commit/256770944a)] - **tools**: add temporal updater (Chengzhong Wu) [#60828](https://github.com/nodejs/node/pull/60828)
* \[[`1c38f808bd`](https://github.com/nodejs/node/commit/1c38f808bd)] - **tools**: dump config.gypi as json (Chengzhong Wu) [#60794](https://github.com/nodejs/node/pull/60794)
* \[[`ed89b35291`](https://github.com/nodejs/node/commit/ed89b35291)] - **tools**: bump js-yaml from 4.1.0 to 4.1.1 in /tools/lint-md (dependabot\[bot]) [#60781](https://github.com/nodejs/node/pull/60781)
* \[[`c98c0881c5`](https://github.com/nodejs/node/commit/c98c0881c5)] - **tools**: fix linter warning in `test-shared.yml` (Antoine du Hamel) [#60772](https://github.com/nodejs/node/pull/60772)
* \[[`aa44406ed7`](https://github.com/nodejs/node/commit/aa44406ed7)] - **tools**: bump js-yaml from 4.1.0 to 4.1.1 in /tools/doc in the doc group (dependabot\[bot]) [#60766](https://github.com/nodejs/node/pull/60766)
* \[[`b756154ed9`](https://github.com/nodejs/node/commit/b756154ed9)] - **tools**: fix `paths-ignore` in gha files (Antoine du Hamel) [#60753](https://github.com/nodejs/node/pull/60753)
* \[[`18ed53fb7a`](https://github.com/nodejs/node/commit/18ed53fb7a)] - **tools**: update install\_tools.bat old echo from 2019 to 2022 (David Hidalgo) [#60736](https://github.com/nodejs/node/pull/60736)
* \[[`cf79940d5c`](https://github.com/nodejs/node/commit/cf79940d5c)] - **tools**: remove unsupported `cooldown` from Dependabot config (Antoine du Hamel) [#60747](https://github.com/nodejs/node/pull/60747)
* \[[`8ea73ffd64`](https://github.com/nodejs/node/commit/8ea73ffd64)] - **tools**: update sccache to v0.12.0 (Michaël Zasso) [#60723](https://github.com/nodejs/node/pull/60723)
* \[[`578f8bdfa0`](https://github.com/nodejs/node/commit/578f8bdfa0)] - **tools**: update x64 macOS runner (Antoine du Hamel) [#60676](https://github.com/nodejs/node/pull/60676)
* \[[`3b6cf316c0`](https://github.com/nodejs/node/commit/3b6cf316c0)] - **tools**: update gyp-next to 0.21.0 (Node.js GitHub Bot) [#60645](https://github.com/nodejs/node/pull/60645)
* \[[`7d55b8c00f`](https://github.com/nodejs/node/commit/7d55b8c00f)] - **tools,doc**: fix format-md files list (Stefan Stojanovic) [#61147](https://github.com/nodejs/node/pull/61147)
* \[[`a617942a4a`](https://github.com/nodejs/node/commit/a617942a4a)] - **url**: add fast path to getPathFromURL decoder (Gürgün Dayıoğlu) [#60749](https://github.com/nodejs/node/pull/60749)
* \[[`a6ac8bd2a5`](https://github.com/nodejs/node/commit/a6ac8bd2a5)] - **url**: remove array.reduce usage (Gürgün Dayıoğlu) [#60748](https://github.com/nodejs/node/pull/60748)
* \[[`09b5396523`](https://github.com/nodejs/node/commit/09b5396523)] - **util**: optimize toASCIILower function using V8s native toLowerCase (Mert Can Altin) [#61107](https://github.com/nodejs/node/pull/61107)
* \[[`1dd15c9502`](https://github.com/nodejs/node/commit/1dd15c9502)] - **util**: limit `inspect` to only show own properties (Ruben Bridgewater) [#61032](https://github.com/nodejs/node/pull/61032)
* \[[`5051d90100`](https://github.com/nodejs/node/commit/5051d90100)] - **(SEMVER-MINOR)** **util**: add convertProcessSignalToExitCode utility (Erick Wendel) [#60963](https://github.com/nodejs/node/pull/60963)
* \[[`98b6dc1181`](https://github.com/nodejs/node/commit/98b6dc1181)] - **util**: fix parseArgs skipping positional arg with --eval and --print (azadgupta1) [#60814](https://github.com/nodejs/node/pull/60814)
* \[[`862eaf8a09`](https://github.com/nodejs/node/commit/862eaf8a09)] - **util**: assert getCallSites does not invoke Error.prepareStackTrace (Chengzhong Wu) [#60922](https://github.com/nodejs/node/pull/60922)
* \[[`c2e79aa5fb`](https://github.com/nodejs/node/commit/c2e79aa5fb)] - **util**: improve textencoder encodeInto performance (Yagiz Nizipli) [#60843](https://github.com/nodejs/node/pull/60843)
* \[[`b6903aaf8d`](https://github.com/nodejs/node/commit/b6903aaf8d)] - **util**: safely inspect getter errors whose message throws (Yves M.) [#60684](https://github.com/nodejs/node/pull/60684)
* \[[`408f024906`](https://github.com/nodejs/node/commit/408f024906)] - **v8**: mark v8.queryObjects() as stable (Joyee Cheung) [#60957](https://github.com/nodejs/node/pull/60957)
* \[[`b00ee5222c`](https://github.com/nodejs/node/commit/b00ee5222c)] - **worker**: update code examples for `node:worker_threads` module (fisker Cheung) [#58264](https://github.com/nodejs/node/pull/58264)
* \[[`2409839f19`](https://github.com/nodejs/node/commit/2409839f19)] - **worker**: remove not implemented declarations (Artur Gawlik) [#60655](https://github.com/nodejs/node/pull/60655)
* \[[`c09417a2b1`](https://github.com/nodejs/node/commit/c09417a2b1)] - **zlib**: add CHECK to validate fast path input (Matteo Collina) [#61175](https://github.com/nodejs/node/pull/61175)

<a id="25.3.0"></a>

## 2026-01-13, Version 25.3.0 (Current), @RafaelGSS

This is a security release.

### Notable Changes

* (CVE-2025-59465) add TLSSocket default error handler (RafaelGSS) <https://github.com/nodejs-private/node-private/pull/750>
* (CVE-2026-21636) add network check on pipe\_wrap connect (RafaelGSS) <https://github.com/nodejs-private/node-private/pull/784>
* (CVE-2025-55130) require full read and write to symlink APIs (RafaelGSS) <https://github.com/nodejs-private/node-private/pull/760>
* (CVE-2025-55132) disable futimes when permission model is enabled (RafaelGSS) <https://github.com/nodejs-private/node-private/pull/748>
* (CVE-2025-59466) rethrow stack overflow exceptions in async\_hooks (Matteo Collina) <https://github.com/nodejs-private/node-private/pull/773>
* (CVE-2025-55131) refactor unsafe buffer creation to remove zero-fill toggle (Сковорода Никита Андреевич) <https://github.com/nodejs-private/node-private/pull/759>
* (CVE-2026-21637) route callback exceptions through error handlers (Matteo Collina) <https://github.com/nodejs-private/node-private/pull/790>

### Commits

* \[[`a6a74b89a7`](https://github.com/nodejs/node/commit/a6a74b89a7)] - **deps**: update c-ares to v1.34.6 (Node.js GitHub Bot) [#60997](https://github.com/nodejs/node/pull/60997)
* \[[`5100614e26`](https://github.com/nodejs/node/commit/5100614e26)] - **deps**: update undici to 7.18.2 (Node.js GitHub Bot) [#61283](https://github.com/nodejs/node/pull/61283)
* \[[`f0a8916887`](https://github.com/nodejs/node/commit/f0a8916887)] - **(CVE-2025-59465)** **lib**: add TLSSocket default error handler (RafaelGSS) [nodejs-private/node-private#750](https://github.com/nodejs-private/node-private/pull/750)
* \[[`b4b887c5f7`](https://github.com/nodejs/node/commit/b4b887c5f7)] - **(CVE-2025-55132)** **lib**: disable futimes when permission model is enabled (RafaelGSS) [nodejs-private/node-private#748](https://github.com/nodejs-private/node-private/pull/748)
* \[[`26be208039`](https://github.com/nodejs/node/commit/26be208039)] - **(CVE-2025-55130)** **lib,permission**: require full read and write to symlink APIs (RafaelGSS) [nodejs-private/node-private#760](https://github.com/nodejs-private/node-private/pull/760)
* \[[`bdf5873d44`](https://github.com/nodejs/node/commit/bdf5873d44)] - **(CVE-2026-21636)** **permission**: add network check on pipe\_wrap connect (RafaelGSS) [nodejs-private/node-private#784](https://github.com/nodejs-private/node-private/pull/784)
* \[[`0578e3e921`](https://github.com/nodejs/node/commit/0578e3e921)] - **(CVE-2025-59466)** **src**: rethrow stack overflow exceptions in async\_hooks (Matteo Collina) [nodejs-private/node-private#773](https://github.com/nodejs-private/node-private/pull/773)
* \[[`4d6b55a6d1`](https://github.com/nodejs/node/commit/4d6b55a6d1)] - **(CVE-2025-55131)** **src,lib**: refactor unsafe buffer creation to remove zero-fill toggle (Сковорода Никита Андреевич) [nodejs-private/node-private#759](https://github.com/nodejs-private/node-private/pull/759)
* \[[`c357a39e14`](https://github.com/nodejs/node/commit/c357a39e14)] - **(CVE-2026-21637)** **tls**: route callback exceptions through error handlers (Matteo Collina) [nodejs-private/node-private#790](https://github.com/nodejs-private/node-private/pull/790)

<a id="25.2.1"></a>

## 2025-11-17, Version 25.2.1 (Current), @aduh95

### Notable Changes

### Commits

* \[[`ff89b7b6c7`](https://github.com/nodejs/node/commit/ff89b7b6c7)] - **crypto**: ensure documented RSA-PSS saltLength default is used (Filip Skokan) [#60662](https://github.com/nodejs/node/pull/60662)
* \[[`5316b580eb`](https://github.com/nodejs/node/commit/5316b580eb)] - **deps**: V8: backport 2e4c5cf9b112 (Michaël Zasso) [#60654](https://github.com/nodejs/node/pull/60654)
* \[[`ca878bc90e`](https://github.com/nodejs/node/commit/ca878bc90e)] - **doc,src,lib**: clarify experimental status of Web Storage support (Antoine du Hamel) [#60708](https://github.com/nodejs/node/pull/60708)
* \[[`a4dee613fd`](https://github.com/nodejs/node/commit/a4dee613fd)] - _**Revert**_ "**lib**: throw from localStorage getter on missing storage path" (Antoine du Hamel) [#60750](https://github.com/nodejs/node/pull/60750)

<a id="25.2.0"></a>

## 2025-11-11, Version 25.2.0 (Current), @aduh95

### Notable Changes

* \[[`a37c01e6a1`](https://github.com/nodejs/node/commit/a37c01e6a1)] - **(SEMVER-MINOR)** **lib**: add options to util.deprecate (Rafael Gonzaga) [#59982](https://github.com/nodejs/node/pull/59982)
* \[[`4fbb1ab101`](https://github.com/nodejs/node/commit/4fbb1ab101)] - **lib**: throw from localStorage getter on missing storage path (René) [#60351](https://github.com/nodejs/node/pull/60351)
* \[[`727560a96d`](https://github.com/nodejs/node/commit/727560a96d)] - **(SEMVER-MINOR)** **module**: mark type stripping as stable (Marco Ippolito) [#60600](https://github.com/nodejs/node/pull/60600)
* \[[`506b79e888`](https://github.com/nodejs/node/commit/506b79e888)] - **(SEMVER-MINOR)** **net**: increase network family autoselection timeout to 500ms (Rod Vagg) [#60334](https://github.com/nodejs/node/pull/60334)
* \[[`166c72ec02`](https://github.com/nodejs/node/commit/166c72ec02)] - **(SEMVER-MINOR)** **node-api**: add napi\_create\_object\_with\_properties (Miguel Marcondes Filho) [#59953](https://github.com/nodejs/node/pull/59953)
* \[[`399b340022`](https://github.com/nodejs/node/commit/399b340022)] - **(SEMVER-MINOR)** **v8**: adding total\_allocated\_bytes to HeapStatistics (Caio Lima) [#60573](https://github.com/nodejs/node/pull/60573)

### Commits

* \[[`d5158a0a2d`](https://github.com/nodejs/node/commit/d5158a0a2d)] - **benchmark**: focus on import.meta intialization in import-meta benchmark (Joyee Cheung) [#60603](https://github.com/nodejs/node/pull/60603)
* \[[`26a5305fa9`](https://github.com/nodejs/node/commit/26a5305fa9)] - **benchmark**: add per-suite setup option (Joyee Cheung) [#60574](https://github.com/nodejs/node/pull/60574)
* \[[`4810e4b82d`](https://github.com/nodejs/node/commit/4810e4b82d)] - **buffer**: speed up concat via TypedArray#set (Gürgün Dayıoğlu) [#60399](https://github.com/nodejs/node/pull/60399)
* \[[`94a94a6b3a`](https://github.com/nodejs/node/commit/94a94a6b3a)] - **console**: optimize single-string logging (Gürgün Dayıoğlu) [#60422](https://github.com/nodejs/node/pull/60422)
* \[[`ad376c31db`](https://github.com/nodejs/node/commit/ad376c31db)] - **crypto**: fix argument validation in crypto.timingSafeEqual fast path (Joyee Cheung) [#60538](https://github.com/nodejs/node/pull/60538)
* \[[`dc38a45a55`](https://github.com/nodejs/node/commit/dc38a45a55)] - **debugger**: fix event listener leak in the run command (Joyee Cheung) [#60464](https://github.com/nodejs/node/pull/60464)
* \[[`a61e5d8e05`](https://github.com/nodejs/node/commit/a61e5d8e05)] - **deps**: call OPENSSL\_free after ANS1\_STRING\_to\_UTF8 (Rafael Gonzaga) [#60609](https://github.com/nodejs/node/pull/60609)
* \[[`51e5030afa`](https://github.com/nodejs/node/commit/51e5030afa)] - **deps**: nghttp2: revert 7784fa979d0b (Antoine du Hamel) [#59790](https://github.com/nodejs/node/pull/59790)
* \[[`eef838f499`](https://github.com/nodejs/node/commit/eef838f499)] - **deps**: update nghttp2 to 1.67.1 (nodejs-github-bot) [#59790](https://github.com/nodejs/node/pull/59790)
* \[[`13120a43d4`](https://github.com/nodejs/node/commit/13120a43d4)] - **deps**: update simdjson to 4.1.0 (Node.js GitHub Bot) [#60542](https://github.com/nodejs/node/pull/60542)
* \[[`6e1b23dab8`](https://github.com/nodejs/node/commit/6e1b23dab8)] - **deps**: update corepack to 0.34.2 (Node.js GitHub Bot) [#60550](https://github.com/nodejs/node/pull/60550)
* \[[`a02e05c486`](https://github.com/nodejs/node/commit/a02e05c486)] - **deps**: update amaro to 1.1.5 (Node.js GitHub Bot) [#60541](https://github.com/nodejs/node/pull/60541)
* \[[`b9ba3a7947`](https://github.com/nodejs/node/commit/b9ba3a7947)] - **deps**: V8: backport fe81545e6d14 (Caio Lima) [#60429](https://github.com/nodejs/node/pull/60429)
* \[[`07bcd28494`](https://github.com/nodejs/node/commit/07bcd28494)] - **deps**: V8: cherry-pick 7ef6a001762 (Xiao-Tao) [#60259](https://github.com/nodejs/node/pull/60259)
* \[[`3e11658243`](https://github.com/nodejs/node/commit/3e11658243)] - **doc**: update Collaborators list to reflect hybrist handle change (Antoine du Hamel) [#60650](https://github.com/nodejs/node/pull/60650)
* \[[`b8e40e4d38`](https://github.com/nodejs/node/commit/b8e40e4d38)] - **doc**: fix link in `--env-file=file` section (N. Bighetti) [#60563](https://github.com/nodejs/node/pull/60563)
* \[[`9558c1c0df`](https://github.com/nodejs/node/commit/9558c1c0df)] - **doc**: fix linter issues (Antoine du Hamel) [#60636](https://github.com/nodejs/node/pull/60636)
* \[[`cdf70de563`](https://github.com/nodejs/node/commit/cdf70de563)] - **doc**: add missing history entry for `sqlite.md` (Antoine du Hamel) [#60607](https://github.com/nodejs/node/pull/60607)
* \[[`e3c5dcf1ea`](https://github.com/nodejs/node/commit/e3c5dcf1ea)] - **doc**: correct values/references for buffer.kMaxLength (René) [#60305](https://github.com/nodejs/node/pull/60305)
* \[[`a25d76c924`](https://github.com/nodejs/node/commit/a25d76c924)] - **doc**: recommend events.once to manage 'close' event (Dan Fabulich) [#60017](https://github.com/nodejs/node/pull/60017)
* \[[`795f32bf91`](https://github.com/nodejs/node/commit/795f32bf91)] - **doc**: highlight module loading difference between import and require (Ajay A) [#59815](https://github.com/nodejs/node/pull/59815)
* \[[`212775410b`](https://github.com/nodejs/node/commit/212775410b)] - **doc**: add CJS code snippets in `sqlite.md` (Allon Murienik) [#60395](https://github.com/nodejs/node/pull/60395)
* \[[`263c06096d`](https://github.com/nodejs/node/commit/263c06096d)] - **doc**: fix typo in `process.unref` documentation (우혁) [#59698](https://github.com/nodejs/node/pull/59698)
* \[[`356bdae408`](https://github.com/nodejs/node/commit/356bdae408)] - **doc**: add some entries to `glossary.md` (Mohataseem Khan) [#59277](https://github.com/nodejs/node/pull/59277)
* \[[`9632c398de`](https://github.com/nodejs/node/commit/9632c398de)] - **doc**: improve agent.createConnection docs for http and https agents (JaeHo Jang) [#58205](https://github.com/nodejs/node/pull/58205)
* \[[`f72880dbe3`](https://github.com/nodejs/node/commit/f72880dbe3)] - **doc**: fix pseudo code in modules.md (chirsz) [#57677](https://github.com/nodejs/node/pull/57677)
* \[[`a9c70cefe8`](https://github.com/nodejs/node/commit/a9c70cefe8)] - **doc**: add missing variable in code snippet (Koushil Mankali) [#55478](https://github.com/nodejs/node/pull/55478)
* \[[`2892d151d4`](https://github.com/nodejs/node/commit/2892d151d4)] - **doc**: add missing word in `single-executable-applications.md` (Konstantin Tsabolov) [#53864](https://github.com/nodejs/node/pull/53864)
* \[[`9c99ab6571`](https://github.com/nodejs/node/commit/9c99ab6571)] - **doc**: fix typo in http.md (Michael Solomon) [#59354](https://github.com/nodejs/node/pull/59354)
* \[[`3446cf375f`](https://github.com/nodejs/node/commit/3446cf375f)] - **doc**: update devcontainer.json and add documentation (Joyee Cheung) [#60472](https://github.com/nodejs/node/pull/60472)
* \[[`519c537875`](https://github.com/nodejs/node/commit/519c537875)] - **doc**: add haramj as triager (Haram Jeong) [#60348](https://github.com/nodejs/node/pull/60348)
* \[[`62889d7e99`](https://github.com/nodejs/node/commit/62889d7e99)] - **doc**: clarify require(esm) description (dynst) [#60520](https://github.com/nodejs/node/pull/60520)
* \[[`0b9ef68705`](https://github.com/nodejs/node/commit/0b9ef68705)] - **doc**: instantiate resolver object (Donghoon Nam) [#60476](https://github.com/nodejs/node/pull/60476)
* \[[`cd5c1ad29f`](https://github.com/nodejs/node/commit/cd5c1ad29f)] - **doc**: correct module loading descriptions (Joyee Cheung) [#60346](https://github.com/nodejs/node/pull/60346)
* \[[`74719dad7a`](https://github.com/nodejs/node/commit/74719dad7a)] - **doc**: clarify Linux runtime requirements for >=25 (Joyee Cheung) [#60484](https://github.com/nodejs/node/pull/60484)
* \[[`ca39540785`](https://github.com/nodejs/node/commit/ca39540785)] - **doc**: clarify --use-system-ca support status (Joyee Cheung) [#60340](https://github.com/nodejs/node/pull/60340)
* \[[`dbf204c714`](https://github.com/nodejs/node/commit/dbf204c714)] - **doc,crypto**: link keygen to supported types (Filip Skokan) [#60585](https://github.com/nodejs/node/pull/60585)
* \[[`3bcf86d56d`](https://github.com/nodejs/node/commit/3bcf86d56d)] - **esm**: use sync loading/resolving on non-loader-hook thread (Joyee Cheung) [#60380](https://github.com/nodejs/node/pull/60380)
* \[[`69b3d2c845`](https://github.com/nodejs/node/commit/69b3d2c845)] - **http**: replace startsWith with strict equality (btea) [#59394](https://github.com/nodejs/node/pull/59394)
* \[[`a38e2f5975`](https://github.com/nodejs/node/commit/a38e2f5975)] - **http2**: add diagnostics channels for client stream request body (Darshan Sen) [#60480](https://github.com/nodejs/node/pull/60480)
* \[[`c047e73a00`](https://github.com/nodejs/node/commit/c047e73a00)] - **inspector**: inspect HTTP response body (Chengzhong Wu) [#60572](https://github.com/nodejs/node/pull/60572)
* \[[`d2087bae92`](https://github.com/nodejs/node/commit/d2087bae92)] - **inspector**: support inspecting HTTP/2 request and response bodies (Darshan Sen) [#60483](https://github.com/nodejs/node/pull/60483)
* \[[`003121c475`](https://github.com/nodejs/node/commit/003121c475)] - **inspector**: fix crash when receiving non json message (Shima Ryuhei) [#60388](https://github.com/nodejs/node/pull/60388)
* \[[`a37c01e6a1`](https://github.com/nodejs/node/commit/a37c01e6a1)] - **(SEMVER-MINOR)** **lib**: add options to util.deprecate (Rafael Gonzaga) [#59982](https://github.com/nodejs/node/pull/59982)
* \[[`219d2e978d`](https://github.com/nodejs/node/commit/219d2e978d)] - **lib**: replace global SharedArrayBuffer constructor with bound method (Renegade334) [#60497](https://github.com/nodejs/node/pull/60497)
* \[[`4fbb1ab101`](https://github.com/nodejs/node/commit/4fbb1ab101)] - **lib**: throw from localStorage getter on missing storage path (René) [#60351](https://github.com/nodejs/node/pull/60351)
* \[[`ca8934f44d`](https://github.com/nodejs/node/commit/ca8934f44d)] - **meta**: bump cachix/install-nix-action from 31.6.1 to 31.8.2 (dependabot\[bot]) [#60534](https://github.com/nodejs/node/pull/60534)
* \[[`166490230a`](https://github.com/nodejs/node/commit/166490230a)] - **meta**: bump github/codeql-action from 3.30.5 to 4.31.2 (dependabot\[bot]) [#60533](https://github.com/nodejs/node/pull/60533)
* \[[`b722236a12`](https://github.com/nodejs/node/commit/b722236a12)] - **meta**: bump actions/download-artifact from 5.0.0 to 6.0.0 (dependabot\[bot]) [#60532](https://github.com/nodejs/node/pull/60532)
* \[[`3314b0bc60`](https://github.com/nodejs/node/commit/3314b0bc60)] - **meta**: bump actions/upload-artifact from 4.6.2 to 5.0.0 (dependabot\[bot]) [#60531](https://github.com/nodejs/node/pull/60531)
* \[[`d1d9891feb`](https://github.com/nodejs/node/commit/d1d9891feb)] - **meta**: bump actions/github-script from 7.0.1 to 8.0.0 (dependabot\[bot]) [#60530](https://github.com/nodejs/node/pull/60530)
* \[[`995596a34f`](https://github.com/nodejs/node/commit/995596a34f)] - **meta**: bump actions/setup-node from 5.0.0 to 6.0.0 (dependabot\[bot]) [#60529](https://github.com/nodejs/node/pull/60529)
* \[[`b60157a0fe`](https://github.com/nodejs/node/commit/b60157a0fe)] - **meta**: bump actions/stale from 10.0.0 to 10.1.0 (dependabot\[bot]) [#60528](https://github.com/nodejs/node/pull/60528)
* \[[`07fa6c9081`](https://github.com/nodejs/node/commit/07fa6c9081)] - **meta**: call `create-release-post.yml` post release (Aviv Keller) [#60366](https://github.com/nodejs/node/pull/60366)
* \[[`727560a96d`](https://github.com/nodejs/node/commit/727560a96d)] - **(SEMVER-MINOR)** **module**: mark type stripping as stable (Marco Ippolito) [#60600](https://github.com/nodejs/node/pull/60600)
* \[[`506b79e888`](https://github.com/nodejs/node/commit/506b79e888)] - **(SEMVER-MINOR)** **net**: increase network family autoselection timeout to 500ms (Rod Vagg) [#60334](https://github.com/nodejs/node/pull/60334)
* \[[`166c72ec02`](https://github.com/nodejs/node/commit/166c72ec02)] - **(SEMVER-MINOR)** **node-api**: add napi\_create\_object\_with\_properties (Miguel Marcondes Filho) [#59953](https://github.com/nodejs/node/pull/59953)
* \[[`6ab83cf979`](https://github.com/nodejs/node/commit/6ab83cf979)] - **node-api**: use local files for instanceof test (Vladimir Morozov) [#60190](https://github.com/nodejs/node/pull/60190)
* \[[`3671851879`](https://github.com/nodejs/node/commit/3671851879)] - **perf\_hooks**: move non-standard performance properties to perf\_hooks (Chengzhong Wu) [#60370](https://github.com/nodejs/node/pull/60370)
* \[[`6ddee4a7ed`](https://github.com/nodejs/node/commit/6ddee4a7ed)] - **repl**: fix pasting after moving the cursor to the left (Ruben Bridgewater) [#60470](https://github.com/nodejs/node/pull/60470)
* \[[`edc3033905`](https://github.com/nodejs/node/commit/edc3033905)] - **sqlite,doc**: fix StatementSync section (Edy Silva) [#60474](https://github.com/nodejs/node/pull/60474)
* \[[`e9b68e60d4`](https://github.com/nodejs/node/commit/e9b68e60d4)] - **src**: move import.meta initializer to native land (Joyee Cheung) [#60603](https://github.com/nodejs/node/pull/60603)
* \[[`0ebf839a4f`](https://github.com/nodejs/node/commit/0ebf839a4f)] - **src**: use CP\_UTF8 for wide file names on win32 (Fedor Indutny) [#60575](https://github.com/nodejs/node/pull/60575)
* \[[`a31ad37714`](https://github.com/nodejs/node/commit/a31ad37714)] - **src**: show original file name in FileHandle GC close errors (Anna Henningsen) [#60593](https://github.com/nodejs/node/pull/60593)
* \[[`a6c221324b`](https://github.com/nodejs/node/commit/a6c221324b)] - **src**: avoid C strings in more C++ exception throws (Anna Henningsen) [#60592](https://github.com/nodejs/node/pull/60592)
* \[[`fdff838ce3`](https://github.com/nodejs/node/commit/fdff838ce3)] - **src**: add internal binding for constructing SharedArrayBuffers (Renegade334) [#60497](https://github.com/nodejs/node/pull/60497)
* \[[`4385b0b65f`](https://github.com/nodejs/node/commit/4385b0b65f)] - **src**: move `napi_addon_register_func` to `node_api_types.h` (Anna Henningsen) [#60512](https://github.com/nodejs/node/pull/60512)
* \[[`de78da7887`](https://github.com/nodejs/node/commit/de78da7887)] - **src**: move Node-API version detection to where it is used (Anna Henningsen) [#60512](https://github.com/nodejs/node/pull/60512)
* \[[`b606d46c3f`](https://github.com/nodejs/node/commit/b606d46c3f)] - **src**: remove unconditional NAPI\_EXPERIMENTAL in node.h (Chengzhong Wu) [#60345](https://github.com/nodejs/node/pull/60345)
* \[[`5941341889`](https://github.com/nodejs/node/commit/5941341889)] - **src**: clean up generic counter implementation (Anna Henningsen) [#60447](https://github.com/nodejs/node/pull/60447)
* \[[`7015f30e62`](https://github.com/nodejs/node/commit/7015f30e62)] - **src**: add enum handle for ToStringHelper + formatting (Burkov Egor) [#56829](https://github.com/nodejs/node/pull/56829)
* \[[`39dfcbad6e`](https://github.com/nodejs/node/commit/39dfcbad6e)] - **stream**: don't try to read more if reading (Robert Nagy) [#60454](https://github.com/nodejs/node/pull/60454)
* \[[`ee333c9177`](https://github.com/nodejs/node/commit/ee333c9177)] - **test**: deflake test-perf-hooks-timerify-histogram-sync (Joyee Cheung) [#60639](https://github.com/nodejs/node/pull/60639)
* \[[`f0d81c91e7`](https://github.com/nodejs/node/commit/f0d81c91e7)] - **test**: apply a delay to `watch-mode-kill-signal` tests (Joyee Cheung) [#60610](https://github.com/nodejs/node/pull/60610)
* \[[`68791e2ccc`](https://github.com/nodejs/node/commit/68791e2ccc)] - **test**: async iife in repl (Tony Gorez) [#44878](https://github.com/nodejs/node/pull/44878)
* \[[`c4eb9c3383`](https://github.com/nodejs/node/commit/c4eb9c3383)] - **test**: parallelize sea tests when there's enough disk space (Joyee Cheung) [#60604](https://github.com/nodejs/node/pull/60604)
* \[[`be8c4172d9`](https://github.com/nodejs/node/commit/be8c4172d9)] - **test**: only show overridden env in child process failures (Joyee Cheung) [#60556](https://github.com/nodejs/node/pull/60556)
* \[[`8cae858f88`](https://github.com/nodejs/node/commit/8cae858f88)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60498](https://github.com/nodejs/node/pull/60498)
* \[[`759d69331e`](https://github.com/nodejs/node/commit/759d69331e)] - **test**: ensure assertions are reachable in `test/es-module` (Antoine du Hamel) [#60501](https://github.com/nodejs/node/pull/60501)
* \[[`6aaf18c333`](https://github.com/nodejs/node/commit/6aaf18c333)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60485](https://github.com/nodejs/node/pull/60485)
* \[[`bc41acf087`](https://github.com/nodejs/node/commit/bc41acf087)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60500](https://github.com/nodejs/node/pull/60500)
* \[[`22fd621daf`](https://github.com/nodejs/node/commit/22fd621daf)] - **test**: split test-perf-hooks-timerify (Joyee Cheung) [#60568](https://github.com/nodejs/node/pull/60568)
* \[[`5efe4f722e`](https://github.com/nodejs/node/commit/5efe4f722e)] - **test**: add more logs to test-esm-loader-hooks-inspect-wait (Joyee Cheung) [#60466](https://github.com/nodejs/node/pull/60466)
* \[[`2a57268f34`](https://github.com/nodejs/node/commit/2a57268f34)] - **test**: mark stringbytes-external-exceed-max tests as flaky on AIX (Joyee Cheung) [#60565](https://github.com/nodejs/node/pull/60565)
* \[[`2c199f7f61`](https://github.com/nodejs/node/commit/2c199f7f61)] - **test**: split test-esm-wasm.js (Joyee Cheung) [#60491](https://github.com/nodejs/node/pull/60491)
* \[[`bc8f7db5bb`](https://github.com/nodejs/node/commit/bc8f7db5bb)] - **test**: correct conditional secure heap flags test (Shelley Vohr) [#60385](https://github.com/nodejs/node/pull/60385)
* \[[`3bf42a5dd3`](https://github.com/nodejs/node/commit/3bf42a5dd3)] - **test**: spin longer on flaky platforms for test-worker-prof (Joyee Cheung) [#60492](https://github.com/nodejs/node/pull/60492)
* \[[`eca6227e7e`](https://github.com/nodejs/node/commit/eca6227e7e)] - **test**: ensure assertions are reachable in `test/internet` (Antoine du Hamel) [#60513](https://github.com/nodejs/node/pull/60513)
* \[[`313983453b`](https://github.com/nodejs/node/commit/313983453b)] - **test**: fix flaky test-watch-mode-kill-signal-\* (Joyee Cheung) [#60443](https://github.com/nodejs/node/pull/60443)
* \[[`ccc26377b5`](https://github.com/nodejs/node/commit/ccc26377b5)] - **test**: capture stack trace in debugger timeout errors (Joyee Cheung) [#60457](https://github.com/nodejs/node/pull/60457)
* \[[`12e9213a24`](https://github.com/nodejs/node/commit/12e9213a24)] - **test**: ensure assertions are reachable in `test/sequential` (Antoine du Hamel) [#60412](https://github.com/nodejs/node/pull/60412)
* \[[`781a2661de`](https://github.com/nodejs/node/commit/781a2661de)] - **test**: ensure assertions are reachable in more folders (Antoine du Hamel) [#60411](https://github.com/nodejs/node/pull/60411)
* \[[`1e979e6eb7`](https://github.com/nodejs/node/commit/1e979e6eb7)] - **test**: split test-runner-watch-mode (Joyee Cheung) [#60391](https://github.com/nodejs/node/pull/60391)
* \[[`8c31cbb99b`](https://github.com/nodejs/node/commit/8c31cbb99b)] - **test**: move test-runner-watch-mode helper into common (Joyee Cheung) [#60391](https://github.com/nodejs/node/pull/60391)
* \[[`c94c6555cc`](https://github.com/nodejs/node/commit/c94c6555cc)] - **test,crypto**: handle a few more BoringSSL tests (Shelley Vohr) [#59030](https://github.com/nodejs/node/pull/59030)
* \[[`fd63c27444`](https://github.com/nodejs/node/commit/fd63c27444)] - **test,crypto**: update x448 and ed448 expectation when on boringssl (Shelley Vohr) [#60387](https://github.com/nodejs/node/pull/60387)
* \[[`bf0de92446`](https://github.com/nodejs/node/commit/bf0de92446)] - **tls**: fix leak on invalid protocol method (Shelley Vohr) [#60427](https://github.com/nodejs/node/pull/60427)
* \[[`7e8373b378`](https://github.com/nodejs/node/commit/7e8373b378)] - **tools**: replace invalid expression in dependabot config (Riddhi) [#60649](https://github.com/nodejs/node/pull/60649)
* \[[`ac08760547`](https://github.com/nodejs/node/commit/ac08760547)] - **tools**: extract Nix dependency lists to separate files (Antoine du Hamel) [#60495](https://github.com/nodejs/node/pull/60495)
* \[[`ae91a6cc3a`](https://github.com/nodejs/node/commit/ae91a6cc3a)] - **tools**: only add test reporter args when node:test is used (Joyee Cheung) [#60551](https://github.com/nodejs/node/pull/60551)
* \[[`97ed560222`](https://github.com/nodejs/node/commit/97ed560222)] - **tools**: skip unaffected GHA jobs for changes in `test/internet` (Antoine du Hamel) [#60517](https://github.com/nodejs/node/pull/60517)
* \[[`44ca97b404`](https://github.com/nodejs/node/commit/44ca97b404)] - **tools**: fix update-icu script (Michaël Zasso) [#60521](https://github.com/nodejs/node/pull/60521)
* \[[`07b0b5a5ba`](https://github.com/nodejs/node/commit/07b0b5a5ba)] - **tools**: fix linter for semver-major release proposals (Antoine du Hamel) [#60481](https://github.com/nodejs/node/pull/60481)
* \[[`97d74224c3`](https://github.com/nodejs/node/commit/97d74224c3)] - **tools**: fix failing release-proposal linter for LTS transitions (Antoine du Hamel) [#60465](https://github.com/nodejs/node/pull/60465)
* \[[`019af5bc27`](https://github.com/nodejs/node/commit/019af5bc27)] - **tools**: skip running test-shared on deps changes (Antoine du Hamel) [#60433](https://github.com/nodejs/node/pull/60433)
* \[[`3ec9764151`](https://github.com/nodejs/node/commit/3ec9764151)] - **tools**: pin OpenSSL to 3.5.4 on test-shared workflow (Antoine du Hamel) [#60428](https://github.com/nodejs/node/pull/60428)
* \[[`fe2d6d44d4`](https://github.com/nodejs/node/commit/fe2d6d44d4)] - **tools**: remove undici from daily wpt.fyi job (Filip Skokan) [#60444](https://github.com/nodejs/node/pull/60444)
* \[[`d09ba98398`](https://github.com/nodejs/node/commit/d09ba98398)] - **tools**: document that nixpkgs updates should not be backported (Antoine du Hamel) [#60431](https://github.com/nodejs/node/pull/60431)
* \[[`7fc99319e7`](https://github.com/nodejs/node/commit/7fc99319e7)] - **tools**: do not use short hashes for deps versioning to avoid collision (Antoine du Hamel) [#60407](https://github.com/nodejs/node/pull/60407)
* \[[`815edb0c3a`](https://github.com/nodejs/node/commit/815edb0c3a)] - **tools,doc**: update JavaScript primitive types to match MDN Web Docs (JustApple) [#60581](https://github.com/nodejs/node/pull/60581)
* \[[`6877139a2d`](https://github.com/nodejs/node/commit/6877139a2d)] - **util**: fix stylize of special properties in inspect (Ge Gao) [#60479](https://github.com/nodejs/node/pull/60479)
* \[[`399b340022`](https://github.com/nodejs/node/commit/399b340022)] - **(SEMVER-MINOR)** **v8**: adding total\_allocated\_bytes to HeapStatistics (Caio Lima) [#60573](https://github.com/nodejs/node/pull/60573)
* \[[`d64795b318`](https://github.com/nodejs/node/commit/d64795b318)] - **watch**: fix interaction with multiple env files (Marco Ippolito) [#60605](https://github.com/nodejs/node/pull/60605)

<a id="25.1.0"></a>

## 2025-10-28, Version 25.1.0 (Current), @aduh95

### Notable Changes

* \[[`4395fe14b9`](https://github.com/nodejs/node/commit/4395fe14b9)] - **(SEMVER-MINOR)** **http**: add optimizeEmptyRequests server option (Rafael Gonzaga) [#59778](https://github.com/nodejs/node/pull/59778)
* \[[`2e55c6ad04`](https://github.com/nodejs/node/commit/2e55c6ad04)] - **(SEMVER-MINOR)** **sqlite**: allow setting defensive flag (Bart Louwers) [#60217](https://github.com/nodejs/node/pull/60217)
* \[[`f437204491`](https://github.com/nodejs/node/commit/f437204491)] - **(SEMVER-MINOR)** **src**: add watch config namespace (Marco Ippolito) [#60178](https://github.com/nodejs/node/pull/60178)

### Commits

* \[[`bb27766bd5`](https://github.com/nodejs/node/commit/bb27766bd5)] - **benchmark**: improve cpu.sh for safety and usability (Nam Yooseong) [#60162](https://github.com/nodejs/node/pull/60162)
* \[[`e600711c20`](https://github.com/nodejs/node/commit/e600711c20)] - **benchmark**: add benchmark for leaf source text modules (Joyee Cheung) [#60205](https://github.com/nodejs/node/pull/60205)
* \[[`1bbcdf9039`](https://github.com/nodejs/node/commit/1bbcdf9039)] - **benchmark**: add vm.SourceTextModule benchmark (Joyee Cheung) [#59396](https://github.com/nodejs/node/pull/59396)
* \[[`22fa6bd28b`](https://github.com/nodejs/node/commit/22fa6bd28b)] - **build**: ibmi follow aix visibility (SRAVANI GUNDEPALLI) [#60360](https://github.com/nodejs/node/pull/60360)
* \[[`931028400e`](https://github.com/nodejs/node/commit/931028400e)] - **build**: use call command when calling python configure (Jacob Nichols) [#60098](https://github.com/nodejs/node/pull/60098)
* \[[`17fde3f3d1`](https://github.com/nodejs/node/commit/17fde3f3d1)] - **build**: build v8 with -fvisibility=hidden -fvisibility-inlines-hidden (Joyee Cheung) [#56290](https://github.com/nodejs/node/pull/56290)
* \[[`04cc7aae5e`](https://github.com/nodejs/node/commit/04cc7aae5e)] - **build**: remove V8\_COMPRESS\_POINTERS\_IN\_ISOLATE\_CAGE defs (Joyee Cheung) [#60296](https://github.com/nodejs/node/pull/60296)
* \[[`8a2053060d`](https://github.com/nodejs/node/commit/8a2053060d)] - **crypto**: update root certificates to NSS 3.116 (Node.js GitHub Bot) [#59956](https://github.com/nodejs/node/pull/59956)
* \[[`fe91c0f755`](https://github.com/nodejs/node/commit/fe91c0f755)] - **deps**: update simdjson to 4.0.7 (Node.js GitHub Bot) [#59883](https://github.com/nodejs/node/pull/59883)
* \[[`aacfc0d212`](https://github.com/nodejs/node/commit/aacfc0d212)] - **deps**: update corepack to 0.34.1 (Node.js GitHub Bot) [#60314](https://github.com/nodejs/node/pull/60314)
* \[[`8596891a71`](https://github.com/nodejs/node/commit/8596891a71)] - **deps**: update inspector\_protocol to af7f5a8173fdbc29f0835ec94395932e328b (Node.js GitHub Bot) [#60312](https://github.com/nodejs/node/pull/60312)
* \[[`21bcd0eb2f`](https://github.com/nodejs/node/commit/21bcd0eb2f)] - **deps**: V8: cherry-pick 3d0f462a17ff (Joyee Cheung) [#59396](https://github.com/nodejs/node/pull/59396)
* \[[`673558501c`](https://github.com/nodejs/node/commit/673558501c)] - **deps**: update googletest to 279f847 (Node.js GitHub Bot) [#60219](https://github.com/nodejs/node/pull/60219)
* \[[`425a1879b1`](https://github.com/nodejs/node/commit/425a1879b1)] - **doc**: mention more codemods in `deprecations.md` (Augustin Mauroy) [#60243](https://github.com/nodejs/node/pull/60243)
* \[[`563e1317f3`](https://github.com/nodejs/node/commit/563e1317f3)] - **doc**: remove unnecessary statement of web storage (Deokjin Kim) [#60363](https://github.com/nodejs/node/pull/60363)
* \[[`064c8c5cfd`](https://github.com/nodejs/node/commit/064c8c5cfd)] - **doc**: add missing CAA type to dns.resolveAny() & dnsPromises.resolveAny() (Jimmy Leung) [#58899](https://github.com/nodejs/node/pull/58899)
* \[[`99e357af35`](https://github.com/nodejs/node/commit/99e357af35)] - **doc**: use `any` for `worker_threads.Worker` 'error' event argument `err` (Jonas Geiler) [#60300](https://github.com/nodejs/node/pull/60300)
* \[[`8ccff0d934`](https://github.com/nodejs/node/commit/8ccff0d934)] - **doc**: update decorator documentation to reflect actual policy (Muhammad Salman Aziz) [#60288](https://github.com/nodejs/node/pull/60288)
* \[[`bac70c6ef3`](https://github.com/nodejs/node/commit/bac70c6ef3)] - **doc**: document wildcard supported by tools/test.py (Joyee Cheung) [#60265](https://github.com/nodejs/node/pull/60265)
* \[[`8492bc6a88`](https://github.com/nodejs/node/commit/8492bc6a88)] - **doc**: add --heap-snapshot-on-oom to useful v8 flag (jakecastelli) [#60260](https://github.com/nodejs/node/pull/60260)
* \[[`0f0d3c0e47`](https://github.com/nodejs/node/commit/0f0d3c0e47)] - **doc**: fix `blob.bytes()` heading level (XTY) [#60252](https://github.com/nodejs/node/pull/60252)
* \[[`8c8525cf93`](https://github.com/nodejs/node/commit/8c8525cf93)] - **doc**: fix not working code example in vm docs (Artur Gawlik) [#60224](https://github.com/nodejs/node/pull/60224)
* \[[`8a6de3866c`](https://github.com/nodejs/node/commit/8a6de3866c)] - **doc, assert**: correct order of changes entries (Gerhard Stöbich) [#60304](https://github.com/nodejs/node/pull/60304)
* \[[`6bacb6555a`](https://github.com/nodejs/node/commit/6bacb6555a)] - **doc, module**: change async customization hooks to experimental (Gerhard Stöbich) [#60302](https://github.com/nodejs/node/pull/60302)
* \[[`6f3b16df16`](https://github.com/nodejs/node/commit/6f3b16df16)] - **esm**: use index-based resolution callbacks (Joyee Cheung) [#59396](https://github.com/nodejs/node/pull/59396)
* \[[`95644a432c`](https://github.com/nodejs/node/commit/95644a432c)] - **http**: lazy allocate cookies array (Robert Nagy) [#59734](https://github.com/nodejs/node/pull/59734)
* \[[`4395fe14b9`](https://github.com/nodejs/node/commit/4395fe14b9)] - **(SEMVER-MINOR)** **http**: add optimizeEmptyRequests server option (Rafael Gonzaga) [#59778](https://github.com/nodejs/node/pull/59778)
* \[[`f1aa1eaaf5`](https://github.com/nodejs/node/commit/f1aa1eaaf5)] - **inspector**: add network payload buffer size limits (Chengzhong Wu) [#60236](https://github.com/nodejs/node/pull/60236)
* \[[`64fc625bf9`](https://github.com/nodejs/node/commit/64fc625bf9)] - **inspector**: support handshake response for websocket inspection (Shima Ryuhei) [#60225](https://github.com/nodejs/node/pull/60225)
* \[[`0ecbb806a8`](https://github.com/nodejs/node/commit/0ecbb806a8)] - **lib**: fix typo in createBlobReaderStream (SeokHun) [#60132](https://github.com/nodejs/node/pull/60132)
* \[[`ffec5927fd`](https://github.com/nodejs/node/commit/ffec5927fd)] - **meta**: fix typo in test-shared workflow name (Ronit Sabhaya) [#60321](https://github.com/nodejs/node/pull/60321)
* \[[`a02897e157`](https://github.com/nodejs/node/commit/a02897e157)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#60325](https://github.com/nodejs/node/pull/60325)
* \[[`59223a7831`](https://github.com/nodejs/node/commit/59223a7831)] - **meta**: loop userland-migrations in deprecations (Chengzhong Wu) [#60299](https://github.com/nodejs/node/pull/60299)
* \[[`2d48d17696`](https://github.com/nodejs/node/commit/2d48d17696)] - **module**: refactor and clarify async loader hook customizations (Joyee Cheung) [#60278](https://github.com/nodejs/node/pull/60278)
* \[[`be1b84fd93`](https://github.com/nodejs/node/commit/be1b84fd93)] - **module**: handle null source from async loader hooks in sync hooks (Joyee Cheung) [#59929](https://github.com/nodejs/node/pull/59929)
* \[[`063fbd87d3`](https://github.com/nodejs/node/commit/063fbd87d3)] - **msi**: fix WiX warnings (Stefan Stojanovic) [#60251](https://github.com/nodejs/node/pull/60251)
* \[[`2e55c6ad04`](https://github.com/nodejs/node/commit/2e55c6ad04)] - **(SEMVER-MINOR)** **sqlite**: allow setting defensive flag (Bart Louwers) [#60217](https://github.com/nodejs/node/pull/60217)
* \[[`dc93d6988a`](https://github.com/nodejs/node/commit/dc93d6988a)] - **src**: fix timing of snapshot serialize callback (Joyee Cheung) [#60434](https://github.com/nodejs/node/pull/60434)
* \[[`267e1b3817`](https://github.com/nodejs/node/commit/267e1b3817)] - **src**: add COUNT\_GENERIC\_USAGE utility for tests (Joyee Cheung) [#60434](https://github.com/nodejs/node/pull/60434)
* \[[`4a5d7a4c2a`](https://github.com/nodejs/node/commit/4a5d7a4c2a)] - **src**: conditionally disable source phase imports by default (Shelley Vohr) [#60364](https://github.com/nodejs/node/pull/60364)
* \[[`f437204491`](https://github.com/nodejs/node/commit/f437204491)] - **(SEMVER-MINOR)** **src**: add watch config namespace (Marco Ippolito) [#60178](https://github.com/nodejs/node/pull/60178)
* \[[`36837fa0f9`](https://github.com/nodejs/node/commit/36837fa0f9)] - **src**: use cached primordials\_string (Sohyeon Kim) [#60255](https://github.com/nodejs/node/pull/60255)
* \[[`df8396ad37`](https://github.com/nodejs/node/commit/df8396ad37)] - **src**: replace Environment::GetCurrent with args.GetIsolate (Sohyeon Kim) [#60256](https://github.com/nodejs/node/pull/60256)
* \[[`5dd670b2b9`](https://github.com/nodejs/node/commit/5dd670b2b9)] - **src**: initial enablement of IsolateGroups (James M Snell) [#60254](https://github.com/nodejs/node/pull/60254)
* \[[`afdb362933`](https://github.com/nodejs/node/commit/afdb362933)] - **src**: use `Utf8Value` and `TwoByteValue` instead of V8 helpers (Anna Henningsen) [#60244](https://github.com/nodejs/node/pull/60244)
* \[[`a40e533e72`](https://github.com/nodejs/node/commit/a40e533e72)] - **src**: add a default branch for module phase (Chengzhong Wu) [#60261](https://github.com/nodejs/node/pull/60261)
* \[[`42729f07ee`](https://github.com/nodejs/node/commit/42729f07ee)] - **src**: stop using deprecated v8::Context::GetIsolate (Michaël Zasso) [#60223](https://github.com/nodejs/node/pull/60223)
* \[[`7a6542c205`](https://github.com/nodejs/node/commit/7a6542c205)] - **test**: skip failing test on macOS 15.7+ (Antoine du Hamel) [#60419](https://github.com/nodejs/node/pull/60419)
* \[[`29a5855a4f`](https://github.com/nodejs/node/commit/29a5855a4f)] - **test**: ensure assertions are reachable in `test/addons` (Antoine du Hamel) [#60142](https://github.com/nodejs/node/pull/60142)
* \[[`12773d19c4`](https://github.com/nodejs/node/commit/12773d19c4)] - **test**: increase debugger waitFor timeout on macOS (Chengzhong Wu) [#60367](https://github.com/nodejs/node/pull/60367)
* \[[`0b38de3e9e`](https://github.com/nodejs/node/commit/0b38de3e9e)] - **test**: put helper in test-runner-output into common (Joyee Cheung) [#60330](https://github.com/nodejs/node/pull/60330)
* \[[`6de2407c44`](https://github.com/nodejs/node/commit/6de2407c44)] - **test**: fix small compile warning in test\_network\_requests\_buffer.cc (xiaocainiao633) [#60281](https://github.com/nodejs/node/pull/60281)
* \[[`4b23ac8613`](https://github.com/nodejs/node/commit/4b23ac8613)] - **test**: fix status when compiled without inspector (Antoine du Hamel) [#60289](https://github.com/nodejs/node/pull/60289)
* \[[`a07f32e326`](https://github.com/nodejs/node/commit/a07f32e326)] - **test**: split test-runner-watch-mode-kill-signal (Joyee Cheung) [#60298](https://github.com/nodejs/node/pull/60298)
* \[[`30451d32d7`](https://github.com/nodejs/node/commit/30451d32d7)] - **test**: fix incorrect calculation in test-perf-hooks.js (Joyee Cheung) [#60271](https://github.com/nodejs/node/pull/60271)
* \[[`e3c3b48f1c`](https://github.com/nodejs/node/commit/e3c3b48f1c)] - **test**: ignore EPIPE errors in https proxy invalid URL test (Joyee Cheung) [#60269](https://github.com/nodejs/node/pull/60269)
* \[[`405a9c4c5f`](https://github.com/nodejs/node/commit/405a9c4c5f)] - **test**: parallelize test-without-async-context-frame correctly (Joyee Cheung) [#60273](https://github.com/nodejs/node/pull/60273)
* \[[`ffeebebc71`](https://github.com/nodejs/node/commit/ffeebebc71)] - **test**: make test-worker-prof more tolerant (Joyee Cheung) [#60272](https://github.com/nodejs/node/pull/60272)
* \[[`26b01bf170`](https://github.com/nodejs/node/commit/26b01bf170)] - **test**: skip sea tests on x64 macOS (Joyee Cheung) [#60250](https://github.com/nodejs/node/pull/60250)
* \[[`8caae1a05b`](https://github.com/nodejs/node/commit/8caae1a05b)] - **test**: move sea tests into test/sea (Joyee Cheung) [#60250](https://github.com/nodejs/node/pull/60250)
* \[[`3d183e3e9f`](https://github.com/nodejs/node/commit/3d183e3e9f)] - **test,crypto**: fix conditional SHA3-\* skip on BoringSSL (Filip Skokan) [#60379](https://github.com/nodejs/node/pull/60379)
* \[[`e83dbcba94`](https://github.com/nodejs/node/commit/e83dbcba94)] - **test,crypto**: sha3 algorithms aren't supported with BoringSSL (Shelley Vohr) [#60374](https://github.com/nodejs/node/pull/60374)
* \[[`3d89331496`](https://github.com/nodejs/node/commit/3d89331496)] - **test\_runner**: use module.registerHooks in module mocks (Joyee Cheung) [#60326](https://github.com/nodejs/node/pull/60326)
* \[[`377e8ce85a`](https://github.com/nodejs/node/commit/377e8ce85a)] - **tls**: avoid external memory leak on invalid protocol versions (Shelley Vohr) [#60390](https://github.com/nodejs/node/pull/60390)
* \[[`ae4858c1f6`](https://github.com/nodejs/node/commit/ae4858c1f6)] - **tools**: add an option to generate lighter archives (Antoine du Hamel) [#60294](https://github.com/nodejs/node/pull/60294)
* \[[`cb615b1a2e`](https://github.com/nodejs/node/commit/cb615b1a2e)] - **tools**: skip test-shared workflow for draft PRs (Michaël Zasso) [#60365](https://github.com/nodejs/node/pull/60365)
* \[[`03b034731e`](https://github.com/nodejs/node/commit/03b034731e)] - **tools**: disable inspector on macOS-shared to reduce flakiness (Antoine du Hamel) [#60320](https://github.com/nodejs/node/pull/60320)
* \[[`f402b4e1d1`](https://github.com/nodejs/node/commit/f402b4e1d1)] - **tools**: show diff alongside the error in Nix linter (Antoine du Hamel) [#60301](https://github.com/nodejs/node/pull/60301)
* \[[`5d5c8483fb`](https://github.com/nodejs/node/commit/5d5c8483fb)] - **tools**: run CI with shared libs on GHA (Antoine du Hamel) [#60121](https://github.com/nodejs/node/pull/60121)
* \[[`e8fdd8d2e8`](https://github.com/nodejs/node/commit/e8fdd8d2e8)] - **tools**: update gyp-next to 0.20.5 (Node.js GitHub Bot) [#60313](https://github.com/nodejs/node/pull/60313)
* \[[`6e8b029a21`](https://github.com/nodejs/node/commit/6e8b029a21)] - **tools**: limit inspector protocol PR title length (Chengzhong Wu) [#60324](https://github.com/nodejs/node/pull/60324)
* \[[`a5073086c6`](https://github.com/nodejs/node/commit/a5073086c6)] - **tools**: fix inspector\_protocol updater (Chengzhong Wu) [#60277](https://github.com/nodejs/node/pull/60277)
* \[[`47fa765bff`](https://github.com/nodejs/node/commit/47fa765bff)] - **tools**: optimize wildcard execution in tools/test.py (Joyee Cheung) [#60266](https://github.com/nodejs/node/pull/60266)
* \[[`11ebb0447d`](https://github.com/nodejs/node/commit/11ebb0447d)] - **tools**: add C++ lint rule to avoid using `String::Utf8Value` (Anna Henningsen) [#60244](https://github.com/nodejs/node/pull/60244)
* \[[`14f3189670`](https://github.com/nodejs/node/commit/14f3189670)] - **tools**: add inspector\_protocol updater (Chengzhong Wu) [#60245](https://github.com/nodejs/node/pull/60245)
* \[[`ef4c596fc6`](https://github.com/nodejs/node/commit/ef4c596fc6)] - **typings**: add missing properties and method in Worker (Woohyun Sung) [#60257](https://github.com/nodejs/node/pull/60257)
* \[[`09ae6fc065`](https://github.com/nodejs/node/commit/09ae6fc065)] - **typings**: add missing properties in HTTPParser (Woohyun Sung) [#60257](https://github.com/nodejs/node/pull/60257)
* \[[`9ecaf41f8e`](https://github.com/nodejs/node/commit/9ecaf41f8e)] - **typings**: delete undefined property in ConfigBinding (Woohyun Sung) [#60257](https://github.com/nodejs/node/pull/60257)
* \[[`4a86016e86`](https://github.com/nodejs/node/commit/4a86016e86)] - **util**: use more defensive code when inspecting error objects (Antoine du Hamel) [#60139](https://github.com/nodejs/node/pull/60139)
* \[[`9e6d6cec59`](https://github.com/nodejs/node/commit/9e6d6cec59)] - **util**: mark special properties when inspecting them (Ruben Bridgewater) [#60131](https://github.com/nodejs/node/pull/60131)
* \[[`79b2387fd9`](https://github.com/nodejs/node/commit/79b2387fd9)] - **vm**: make vm.Module.evaluate() conditionally synchronous (Joyee Cheung) [#60205](https://github.com/nodejs/node/pull/60205)
* \[[`e5559f3be3`](https://github.com/nodejs/node/commit/e5559f3be3)] - **win**: upgrade Visual Studio workload from 2019 to 2022 (Jiawen Geng) [#60318](https://github.com/nodejs/node/pull/60318)

<a id="25.0.0"></a>

## 2025-10-15, Version 25.0.0 (Current), @RafaelGSS

Node.js 25 is here! We have upgraded V8 to **14.1**, bringing major `JSON.stringify`
performance improvements, built-in `Uint8Array` base64/hex conversion, and ongoing
WebAssembly and JIT pipeline optimizations.

This release doubles down on secure-by-default apps and web-standard APIs: the permission
model gains `--allow-net`, Web Storage is enabled by default, and `ErrorEvent` is now a global.

We’ve also removed or finalized long-deprecated APIs such as SlowBuffer,
and added quality-of-life improvements like a portable compile cache and JSPI for WebAssembly.

### Notable Changes

* \[[`8bc7dfd16f`](https://github.com/nodejs/node/commit/8bc7dfd16f)] - **build**: test on Python 3.14 release candidate 3 (Christian Clauss) [#59983](https://github.com/nodejs/node/pull/59983)
* \[[`663554abdf`](https://github.com/nodejs/node/commit/663554abdf)] - **(SEMVER-MAJOR)** **lib**: expose global ErrorEvent (Richie Bendall) [#58920](https://github.com/nodejs/node/pull/58920)
* \[[`3312e4e946`](https://github.com/nodejs/node/commit/3312e4e946)] - **(SEMVER-MAJOR)** **src**: unflag --experimental-webstorage by default (Daniel M Brasil) [#57666](https://github.com/nodejs/node/pull/57666)
* \[[`462c74181d`](https://github.com/nodejs/node/commit/462c74181d)] - **(SEMVER-MAJOR)** **src,permission**: add --allow-net permission (Rafael Gonzaga) [#58517](https://github.com/nodejs/node/pull/58517)

### Deprecations and Removals

* \[[`d33f4b539a`](https://github.com/nodejs/node/commit/d33f4b539a)] - **(SEMVER-MAJOR)** **assert**: move assert.fail with multiple arguments to eol (James M Snell) [#58532](https://github.com/nodejs/node/pull/58532)
* \[[`b21574d63b`](https://github.com/nodejs/node/commit/b21574d63b)] - **(SEMVER-MAJOR)** **assert**: move CallTracker to EOL (James M Snell) [#58006](https://github.com/nodejs/node/pull/58006)
* \[[`308b6bc6de`](https://github.com/nodejs/node/commit/308b6bc6de)] - **(SEMVER-MAJOR)** **async\_hooks**: move `asyncResource` property on bound function to EOL (James M Snell) [#58618](https://github.com/nodejs/node/pull/58618)
* \[[`daced4ab98`](https://github.com/nodejs/node/commit/daced4ab98)] - **(SEMVER-MAJOR)** **buffer**: move SlowBuffer to EOL (Filip Skokan) [#58220](https://github.com/nodejs/node/pull/58220)
* \[[`df16f0fd8d`](https://github.com/nodejs/node/commit/df16f0fd8d)] - **(SEMVER-MAJOR)** **child\_process**: move \_channel to end-of-life (James M Snell) [#58527](https://github.com/nodejs/node/pull/58527)
* \[[`a472745958`](https://github.com/nodejs/node/commit/a472745958)] - **(SEMVER-MAJOR)** **crypto**: runtime-deprecate default shake128/256 output lengths (Filip Skokan) [#59008](https://github.com/nodejs/node/pull/59008)
* \[[`c3b986853c`](https://github.com/nodejs/node/commit/c3b986853c)] - **(SEMVER-MAJOR)** **crypto**: move deprecated hash and mgf1Hash options to EOL (James M Snell) [#58706](https://github.com/nodejs/node/pull/58706)
* \[[`66632648ba`](https://github.com/nodejs/node/commit/66632648ba)] - **(SEMVER-MAJOR)** **crypto**: runtime deprecate ECDH.setPublicKey() (James M Snell) [#58620](https://github.com/nodejs/node/pull/58620)
* \[[`a5f9ca1f77`](https://github.com/nodejs/node/commit/a5f9ca1f77)] - **(SEMVER-MAJOR)** **dns**: move falsy hostname in lookup to end-of-life (James M Snell) [#58619](https://github.com/nodejs/node/pull/58619)
* \[[`2bb7667475`](https://github.com/nodejs/node/commit/2bb7667475)] - **(SEMVER-MAJOR)** **fs**: move FileHandle close on GC to EOL (James M Snell) [#58536](https://github.com/nodejs/node/pull/58536)
* \[[`eec0302088`](https://github.com/nodejs/node/commit/eec0302088)] - **(SEMVER-MAJOR)** **fs**: move rmdir recursive option to end-of-life (James M Snell) [#58616](https://github.com/nodejs/node/pull/58616)
* \[[`25dd206c29`](https://github.com/nodejs/node/commit/25dd206c29)] - **(SEMVER-MAJOR)** **fs**: remove `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia Medeiros) [#55862](https://github.com/nodejs/node/pull/55862)
* \[[`91dadf2897`](https://github.com/nodejs/node/commit/91dadf2897)] - **(SEMVER-MAJOR)** **http**: deprecate writeHeader (Sebastian Beltran) [#59060](https://github.com/nodejs/node/pull/59060)
* \[[`4e06a648ff`](https://github.com/nodejs/node/commit/4e06a648ff)] - **(SEMVER-MAJOR)** **perf\_hooks**: move deprecated accessors to EOF (James M Snell) [#58531](https://github.com/nodejs/node/pull/58531)
* \[[`a3dfca90d1`](https://github.com/nodejs/node/commit/a3dfca90d1)] - **(SEMVER-MAJOR)** **process**: move multipleResolves event to EOL (James M Snell) [#58707](https://github.com/nodejs/node/pull/58707)
* \[[`790acc8689`](https://github.com/nodejs/node/commit/790acc8689)] - **(SEMVER-MAJOR)** **tls**: move IP-address servername deprecation to eol (James M Snell) [#58533](https://github.com/nodejs/node/pull/58533)
* \[[`3aaa2ebe19`](https://github.com/nodejs/node/commit/3aaa2ebe19)] - **(SEMVER-MAJOR)** **url**: move bad port deprecation in legacy url to end-of-life (James M Snell) [#58617](https://github.com/nodejs/node/pull/58617)

### Semver-Major Commits

* \[[`7c9fbc15bc`](https://github.com/nodejs/node/commit/7c9fbc15bc)] - **(SEMVER-MAJOR)** **assert,util**: fail promise comparison in deep equal checks (Ruben Bridgewater) [#59448](https://github.com/nodejs/node/pull/59448)
* \[[`11222f1a27`](https://github.com/nodejs/node/commit/11222f1a27)] - **(SEMVER-MAJOR)** **assert,util**: handle invalid dates as equal in deep comparison (Ruben Bridgewater) [#57627](https://github.com/nodejs/node/pull/57627)
* \[[`acce2e8f87`](https://github.com/nodejs/node/commit/acce2e8f87)] - **(SEMVER-MAJOR)** **build**: reset embedder string to "-node.0" (Michaël Zasso) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`8a87ba031b`](https://github.com/nodejs/node/commit/8a87ba031b)] - **(SEMVER-MAJOR)** **build**: bump minimum Clang version to 19 (Michaël Zasso) [#59048](https://github.com/nodejs/node/pull/59048)
* \[[`21b131e93a`](https://github.com/nodejs/node/commit/21b131e93a)] - **(SEMVER-MAJOR)** **build**: reset embedder string to "-node.0" (Michaël Zasso) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`f31c88021b`](https://github.com/nodejs/node/commit/f31c88021b)] - **(SEMVER-MAJOR)** **build**: stop distributing Corepack (Antoine du Hamel) [#57617](https://github.com/nodejs/node/pull/57617)
* \[[`b3238442d8`](https://github.com/nodejs/node/commit/b3238442d8)] - **(SEMVER-MAJOR)** **deps**: patch V8 for illumos (Dan McDonald) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`2a1da3260d`](https://github.com/nodejs/node/commit/2a1da3260d)] - **(SEMVER-MAJOR)** **deps**: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) [#54077](https://github.com/nodejs/node/pull/54077)
* \[[`7772a2df9d`](https://github.com/nodejs/node/commit/7772a2df9d)] - **(SEMVER-MAJOR)** **deps**: update V8 to 14.1.146.11 (Michaël Zasso) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`6d61175db0`](https://github.com/nodejs/node/commit/6d61175db0)] - **(SEMVER-MAJOR)** **deps**: V8: backport 1d3362c55396 (Shu-yu Guo) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`974773572e`](https://github.com/nodejs/node/commit/974773572e)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick 4f38995c8295 (Shu-yu Guo) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`70bfc398e9`](https://github.com/nodejs/node/commit/70bfc398e9)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick 044b9b6f589d (Rezvan Mahdavi Hezaveh) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`6bfc525cf0`](https://github.com/nodejs/node/commit/6bfc525cf0)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick d2ad518a0b57 (Joyee Cheung) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`754d28e34f`](https://github.com/nodejs/node/commit/754d28e34f)] - **(SEMVER-MAJOR)** **deps**: V8: revert 6d6c1e680c7b (Michaël Zasso) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`8c508b9399`](https://github.com/nodejs/node/commit/8c508b9399)] - **(SEMVER-MAJOR)** **deps**: V8: revert e3cddbedb205 (Michaël Zasso) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`88ca8287b6`](https://github.com/nodejs/node/commit/88ca8287b6)] - **(SEMVER-MAJOR)** **deps**: use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`838e2332a5`](https://github.com/nodejs/node/commit/838e2332a5)] - **(SEMVER-MAJOR)** **deps**: patch V8 for illumos (Dan McDonald) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`3522731d9a`](https://github.com/nodejs/node/commit/3522731d9a)] - **(SEMVER-MAJOR)** **deps**: remove problematic comment from v8-internal (Michaël Zasso) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`d234475a33`](https://github.com/nodejs/node/commit/d234475a33)] - **(SEMVER-MAJOR)** **deps**: define V8\_PRESERVE\_MOST as no-op on Windows (Stefan Stojanovic) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`a738eb4a7f`](https://github.com/nodejs/node/commit/a738eb4a7f)] - **(SEMVER-MAJOR)** **deps**: fix FP16 bitcasts.h (Stefan Stojanovic) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`1744c7d991`](https://github.com/nodejs/node/commit/1744c7d991)] - **(SEMVER-MAJOR)** **deps**: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`fff0d1554d`](https://github.com/nodejs/node/commit/fff0d1554d)] - **(SEMVER-MAJOR)** **deps**: update V8 to 13.7.152.9 (Michaël Zasso) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`968e2f47c8`](https://github.com/nodejs/node/commit/968e2f47c8)] - **(SEMVER-MAJOR)** **dgram**: move deprecated APIs to EOL (James M Snell) [#58474](https://github.com/nodejs/node/pull/58474)
* \[[`5623194a6b`](https://github.com/nodejs/node/commit/5623194a6b)] - **(SEMVER-MAJOR)** **doc,src,test**: replace use of deprecated `GetIsolate` (Michaël Zasso) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`823ca6991f`](https://github.com/nodejs/node/commit/823ca6991f)] - **(SEMVER-MAJOR)** **fs**: make `processReadResult()` and `readSyncRecursive()` private (Livia Medeiros) [#58672](https://github.com/nodejs/node/pull/58672)
* \[[`a273674dee`](https://github.com/nodejs/node/commit/a273674dee)] - **(SEMVER-MAJOR)** **fs**: move fs stream open method to eol (James M Snell) [#58529](https://github.com/nodejs/node/pull/58529)
* \[[`39d73036e7`](https://github.com/nodejs/node/commit/39d73036e7)] - **(SEMVER-MAJOR)** **lib**: use validators for argument validation (Nam Yooseong) [#59416](https://github.com/nodejs/node/pull/59416)
* \[[`cd68e35704`](https://github.com/nodejs/node/commit/cd68e35704)] - **(SEMVER-MAJOR)** **lib**: deprecate `_stream_*` modules (Dario Piotrowicz) [#58337](https://github.com/nodejs/node/pull/58337)
* \[[`a822a1cbe7`](https://github.com/nodejs/node/commit/a822a1cbe7)] - **(SEMVER-MAJOR)** **lib**: deprecate \_tls\_common and \_tls\_wrap (Dario Piotrowicz) [#57643](https://github.com/nodejs/node/pull/57643)
* \[[`705bcc2a00`](https://github.com/nodejs/node/commit/705bcc2a00)] - **(SEMVER-MAJOR)** **module**: move Module.\_debug to end-of-life (James M Snell) [#58473](https://github.com/nodejs/node/pull/58473)
* \[[`5fe7800683`](https://github.com/nodejs/node/commit/5fe7800683)] - **(SEMVER-MAJOR)** **node-api**: add warning for NAPI\_EXPERIMENTAL (Miguel Marcondes Filho) [#58280](https://github.com/nodejs/node/pull/58280)
* \[[`e1d4d6ab49`](https://github.com/nodejs/node/commit/e1d4d6ab49)] - **(SEMVER-MAJOR)** **repl**: eol deprecate instantiating without new (Aviv Keller) [#59495](https://github.com/nodejs/node/pull/59495)
* \[[`ed94bc48f3`](https://github.com/nodejs/node/commit/ed94bc48f3)] - **(SEMVER-MAJOR)** **src**: update crypto.getCipherInfo() to use DictionaryTemplate (James M Snell) [#60036](https://github.com/nodejs/node/pull/60036)
* \[[`37a3df3556`](https://github.com/nodejs/node/commit/37a3df3556)] - **(SEMVER-MAJOR)** **src**: fix calls to v8::Object::wrap (Andreas Haas) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`801ae26fa3`](https://github.com/nodejs/node/commit/801ae26fa3)] - **(SEMVER-MAJOR)** **src**: update NODE\_MODULE\_VERSION to 141 (Michaël Zasso) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`10df38a38b`](https://github.com/nodejs/node/commit/10df38a38b)] - **(SEMVER-MAJOR)** **src**: improve performance of dotenv ToObject (James M Snell) [#60038](https://github.com/nodejs/node/pull/60038)
* \[[`075936b413`](https://github.com/nodejs/node/commit/075936b413)] - **(SEMVER-MAJOR)** **src**: use std::string\_view from node\_report (iknoom) [#60006](https://github.com/nodejs/node/pull/60006)
* \[[`234c26cca3`](https://github.com/nodejs/node/commit/234c26cca3)] - **(SEMVER-MAJOR)** **src**: store `Local` for `CallbackScope` on stack (Anna Henningsen) [#59705](https://github.com/nodejs/node/pull/59705)
* \[[`708fd1945b`](https://github.com/nodejs/node/commit/708fd1945b)] - **(SEMVER-MAJOR)** **src**: remove node.h APIs to make callback without an async context (Chengzhong Wu) [#58471](https://github.com/nodejs/node/pull/58471)
* \[[`56989d33f5`](https://github.com/nodejs/node/commit/56989d33f5)] - **(SEMVER-MAJOR)** **src**: remove deprecated node::EmitBeforeExit and node::EmitExit (Chengzhong Wu) [#58469](https://github.com/nodejs/node/pull/58469)
* \[[`d429aa2d17`](https://github.com/nodejs/node/commit/d429aa2d17)] - **(SEMVER-MAJOR)** **src**: remove deprecated node::CreatePlatform and node::FreePlatform (Chengzhong Wu) [#58470](https://github.com/nodejs/node/pull/58470)
* \[[`e0ae14ce73`](https://github.com/nodejs/node/commit/e0ae14ce73)] - **(SEMVER-MAJOR)** **src**: remove deprecated node::InitializeNodeWithArgs (Chengzhong Wu) [#58470](https://github.com/nodejs/node/pull/58470)
* \[[`db1700e4b5`](https://github.com/nodejs/node/commit/db1700e4b5)] - **(SEMVER-MAJOR)** **src**: update NODE\_MODULE\_VERSION to 138 (Michaël Zasso) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`0a87084150`](https://github.com/nodejs/node/commit/0a87084150)] - **(SEMVER-MAJOR)** **test**: update cppgc-object addon config (StefanStojanovic) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`7dd49d7da4`](https://github.com/nodejs/node/commit/7dd49d7da4)] - **(SEMVER-MAJOR)** **test**: spin longer for sequential/test-worker-prof (Michaël Zasso) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`faba50df96`](https://github.com/nodejs/node/commit/faba50df96)] - **(SEMVER-MAJOR)** **test**: remove `--always-turbofan` flag (Michaël Zasso) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`496f12dec6`](https://github.com/nodejs/node/commit/496f12dec6)] - **(SEMVER-MAJOR)** **test**: update snapshot for V8 14.1 (Michaël Zasso) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`05aa3a1c70`](https://github.com/nodejs/node/commit/05aa3a1c70)] - **(SEMVER-MAJOR)** **test,win**: split addon tests (StefanStojanovic) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`308de27255`](https://github.com/nodejs/node/commit/308de27255)] - **(SEMVER-MAJOR)** **tools**: update V8 gypfiles for 14.0 (Michaël Zasso) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`b736370c07`](https://github.com/nodejs/node/commit/b736370c07)] - **(SEMVER-MAJOR)** **tools**: update V8 gypfiles for 13.9 (Michaël Zasso) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`085a94ac9b`](https://github.com/nodejs/node/commit/085a94ac9b)] - **(SEMVER-MAJOR)** **tools**: update V8 gypfiles for 13.8 (Michaël Zasso) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`a71ae18ac8`](https://github.com/nodejs/node/commit/a71ae18ac8)] - **(SEMVER-MAJOR)** **tools**: enable leaptiering for aix/ibmi (Abdirahim Musse) [#59805](https://github.com/nodejs/node/pull/59805)
* \[[`a8217a9eb8`](https://github.com/nodejs/node/commit/a8217a9eb8)] - **(SEMVER-MAJOR)** **tools**: update V8 gypfiles for 13.7 (Michaël Zasso) [#58064](https://github.com/nodejs/node/pull/58064)
* \[[`fdef0725de`](https://github.com/nodejs/node/commit/fdef0725de)] - **(SEMVER-MAJOR)** **util,console**: colorize regexp groups, character classes, etc (Ruben Bridgewater) [#59710](https://github.com/nodejs/node/pull/59710)
* \[[`411cc42d22`](https://github.com/nodejs/node/commit/411cc42d22)] - **(SEMVER-MAJOR)** **worker**: move terminate callback to end-of-life (James M Snell) [#58528](https://github.com/nodejs/node/pull/58528)

### Semver-Minor Commits

* \[[`94422e8a40`](https://github.com/nodejs/node/commit/94422e8a40)] - **(SEMVER-MINOR)** **src**: add an option to make compile cache portable (Aditi) [#58797](https://github.com/nodejs/node/pull/58797)
* \[[`29738c7b42`](https://github.com/nodejs/node/commit/29738c7b42)] - **(SEMVER-MINOR)** **src,permission**: add --allow-inspector ability (Rafael Gonzaga) [#59711](https://github.com/nodejs/node/pull/59711)
* \[[`f9fcc746f3`](https://github.com/nodejs/node/commit/f9fcc746f3)] - **(SEMVER-MINOR)** **v8**: add cpu profile (theanarkh) [#59807](https://github.com/nodejs/node/pull/59807)
* \[[`4396cf2d45`](https://github.com/nodejs/node/commit/4396cf2d45)] - **(SEMVER-MINOR)** **wasm**: enable JSPI (Guy Bedford) [#59941](https://github.com/nodejs/node/pull/59941)

### Semver-Patch Commits

* \[[`91f035e597`](https://github.com/nodejs/node/commit/91f035e597)] - **assert**: resolve TODO and rename function (Antoine du Hamel) [#59451](https://github.com/nodejs/node/pull/59451)
* \[[`2e675c4fa3`](https://github.com/nodejs/node/commit/2e675c4fa3)] - **benchmark**: use non-deprecated WriteUtf8V2 method (Michaël Zasso) [#60173](https://github.com/nodejs/node/pull/60173)
* \[[`0fb040603b`](https://github.com/nodejs/node/commit/0fb040603b)] - **build**: upgrade Python linter ruff, add rules ASYNC,PERF (Christian Clauss) [#59984](https://github.com/nodejs/node/pull/59984)
* \[[`f468b6c72b`](https://github.com/nodejs/node/commit/f468b6c72b)] - **build**: update minimum Xcode version to 16.4 (Michaël Zasso) [#60079](https://github.com/nodejs/node/pull/60079)
* \[[`0eda17ba20`](https://github.com/nodejs/node/commit/0eda17ba20)] - **build**: fix flags for ngtcp2 on IBM i (SRAVANI GUNDEPALLI) [#60073](https://github.com/nodejs/node/pull/60073)
* \[[`22a864a275`](https://github.com/nodejs/node/commit/22a864a275)] - **build**: remove corepack from release tarballs (Jordan Harband) [#59835](https://github.com/nodejs/node/pull/59835)
* \[[`7079041e0a`](https://github.com/nodejs/node/commit/7079041e0a)] - **build**: only mention Apple when on Apple (Michaël Zasso) [#59385](https://github.com/nodejs/node/pull/59385)
* \[[`954d3f44ef`](https://github.com/nodejs/node/commit/954d3f44ef)] - **build**: check Apple clang version in configure script (Michaël Zasso) [#59358](https://github.com/nodejs/node/pull/59358)
* \[[`2b4a09ef8b`](https://github.com/nodejs/node/commit/2b4a09ef8b)] - **build**: fix OpenSSL version detection (Richard Lau) [#59353](https://github.com/nodejs/node/pull/59353)
* \[[`af77e4bf2f`](https://github.com/nodejs/node/commit/af77e4bf2f)] - **build**: update macOS runner and Xcode (Michaël Zasso) [#59238](https://github.com/nodejs/node/pull/59238)
* \[[`86bfdb5528`](https://github.com/nodejs/node/commit/86bfdb5528)] - **build**: remove `nocorepack` `vcbuild` flag (Antoine du Hamel) [#57772](https://github.com/nodejs/node/pull/57772)
* \[[`b13f24c2da`](https://github.com/nodejs/node/commit/b13f24c2da)] - **build, src**: fix include paths for vtune files (Rahul) [#59999](https://github.com/nodejs/node/pull/59999)
* \[[`2216a3b1d5`](https://github.com/nodejs/node/commit/2216a3b1d5)] - **deps**: V8: cherry-pick 1e190bbb0396 (Richard Lau) [#60206](https://github.com/nodejs/node/pull/60206)
* \[[`1b22f6049a`](https://github.com/nodejs/node/commit/1b22f6049a)] - **deps**: upgrade npm to 11.6.2 (npm team) [#60168](https://github.com/nodejs/node/pull/60168)
* \[[`a1b73fe430`](https://github.com/nodejs/node/commit/a1b73fe430)] - **deps**: V8: cherry-pick 2abc61361dd4 (Richard Lau) [#60177](https://github.com/nodejs/node/pull/60177)
* \[[`4eb6e6fd79`](https://github.com/nodejs/node/commit/4eb6e6fd79)] - **deps**: V8: cherry-pick 87356585659b (Joyee Cheung) [#60069](https://github.com/nodejs/node/pull/60069)
* \[[`c0b8c80164`](https://github.com/nodejs/node/commit/c0b8c80164)] - **deps**: define V8\_PRESERVE\_MOST as no-op on Windows (Stefan Stojanovic) [#56238](https://github.com/nodejs/node/pull/56238)
* \[[`65a32bac18`](https://github.com/nodejs/node/commit/65a32bac18)] - **deps**: add ngtcp2 test binaries (James M Snell) [#59946](https://github.com/nodejs/node/pull/59946)
* \[[`ebfc28a037`](https://github.com/nodejs/node/commit/ebfc28a037)] - **deps**: update nghttp3 to 1.11.0 (James M Snell) [#59249](https://github.com/nodejs/node/pull/59249)
* \[[`dceb1fca40`](https://github.com/nodejs/node/commit/dceb1fca40)] - **deps**: update ngtcp2 to 1.14.0 (James M Snell) [#59249](https://github.com/nodejs/node/pull/59249)
* \[[`ee36b86ba3`](https://github.com/nodejs/node/commit/ee36b86ba3)] - **deps**: patch V8 to 13.7.152.19 (Node.js GitHub Bot) [#58713](https://github.com/nodejs/node/pull/58713)
* \[[`0b3fc0d7a8`](https://github.com/nodejs/node/commit/0b3fc0d7a8)] - **deps**: patch V8 to 13.7.152.14 (Node.js GitHub Bot) [#58631](https://github.com/nodejs/node/pull/58631)
* \[[`91b3bd3fe6`](https://github.com/nodejs/node/commit/91b3bd3fe6)] - **deps**: patch V8 to 13.7.152.13 (Node.js GitHub Bot) [#58539](https://github.com/nodejs/node/pull/58539)
* \[[`f77a96cd76`](https://github.com/nodejs/node/commit/f77a96cd76)] - **deps**: patch V8 to 13.7.152.10 (Node.js GitHub Bot) [#58446](https://github.com/nodejs/node/pull/58446)
* \[[`1cd16e5355`](https://github.com/nodejs/node/commit/1cd16e5355)] - **doc**: improve code snippet alternative of url.parse() using WHATWG URL (Steven) [#60209](https://github.com/nodejs/node/pull/60209)
* \[[`d54e6aec9e`](https://github.com/nodejs/node/commit/d54e6aec9e)] - **doc**: `createSQLTagStore` -> `createTagStore` (Aviv Keller) [#60182](https://github.com/nodejs/node/pull/60182)
* \[[`aef3fc37eb`](https://github.com/nodejs/node/commit/aef3fc37eb)] - **doc**: use markdown when branch-diff major release (Rafael Gonzaga) [#60179](https://github.com/nodejs/node/pull/60179)
* \[[`a2f088d516`](https://github.com/nodejs/node/commit/a2f088d516)] - **doc**: update teams in collaborator-guide.md and add links (Bart Louwers) [#60065](https://github.com/nodejs/node/pull/60065)
* \[[`75a6fff6be`](https://github.com/nodejs/node/commit/75a6fff6be)] - **doc**: disambiguate top-level `worker_threads` module exports (René) [#59890](https://github.com/nodejs/node/pull/59890)
* \[[`51df7b92bc`](https://github.com/nodejs/node/commit/51df7b92bc)] - **doc**: update macOS version used to build releases (Michaël Zasso) [#60080](https://github.com/nodejs/node/pull/60080)
* \[[`910c8796f9`](https://github.com/nodejs/node/commit/910c8796f9)] - **doc**: update BUILDING to reflect Clang 19 changes (Michaël Zasso) [#59782](https://github.com/nodejs/node/pull/59782)
* \[[`34f9b7eab9`](https://github.com/nodejs/node/commit/34f9b7eab9)] - **doc**: reserve NMV 140 for Electron 39 (David Sanders) [#59627](https://github.com/nodejs/node/pull/59627)
* \[[`3f6f6db43f`](https://github.com/nodejs/node/commit/3f6f6db43f)] - **doc**: update minimum Xcode and VS versions (Michaël Zasso) [#59358](https://github.com/nodejs/node/pull/59358)
* \[[`d9fe28bd6b`](https://github.com/nodejs/node/commit/d9fe28bd6b)] - **doc**: fix `CHANGELOG.md` version listing (Antoine du Hamel) [#59299](https://github.com/nodejs/node/pull/59299)
* \[[`0ab50c2768`](https://github.com/nodejs/node/commit/0ab50c2768)] - **doc**: reserve NMV 139 for Electron 38 (Calvin) [#58779](https://github.com/nodejs/node/pull/58779)
* \[[`516b4ebd3c`](https://github.com/nodejs/node/commit/516b4ebd3c)] - **doc**: mark Node.js 23 as End-of-Life (Antoine du Hamel) [#58563](https://github.com/nodejs/node/pull/58563)
* \[[`59b70e5fe3`](https://github.com/nodejs/node/commit/59b70e5fe3)] - **http**: fix http client leaky with double response (theanarkh) [#60062](https://github.com/nodejs/node/pull/60062)
* \[[`5cf3c3e24c`](https://github.com/nodejs/node/commit/5cf3c3e24c)] - **http2**: rename variable to additionalPseudoHeaders (Tobias Nießen) [#60208](https://github.com/nodejs/node/pull/60208)
* \[[`535efea962`](https://github.com/nodejs/node/commit/535efea962)] - **http2**: do not crash on mismatched ping buffer length (René) [#60135](https://github.com/nodejs/node/pull/60135)
* \[[`4bfa387f6d`](https://github.com/nodejs/node/commit/4bfa387f6d)] - **lib**: fix constructor in \_errnoException stack tree (SeokHun) [#60156](https://github.com/nodejs/node/pull/60156)
* \[[`4daeec11b9`](https://github.com/nodejs/node/commit/4daeec11b9)] - **lib**: fix typo in QuicSessionStats (SeokHun) [#60155](https://github.com/nodejs/node/pull/60155)
* \[[`15278252bb`](https://github.com/nodejs/node/commit/15278252bb)] - **lib**: remove redundant destroyHook checks (Gürgün Dayıoğlu) [#60120](https://github.com/nodejs/node/pull/60120)
* \[[`83052ff9ad`](https://github.com/nodejs/node/commit/83052ff9ad)] - **lib**: add `node:` prefix in sys module deprecation warning (Dario Piotrowicz) [#58442](https://github.com/nodejs/node/pull/58442)
* \[[`d5abfbf582`](https://github.com/nodejs/node/commit/d5abfbf582)] - **lib**: add module to use in module deprecation warnings (Dario Piotrowicz) [#58442](https://github.com/nodejs/node/pull/58442)
* \[[`db0121bedd`](https://github.com/nodejs/node/commit/db0121bedd)] - **module**: fix directory option in the enableCompileCache() API (Joyee Cheung) [#59931](https://github.com/nodejs/node/pull/59931)
* \[[`822a8c3244`](https://github.com/nodejs/node/commit/822a8c3244)] - **perf\_hooks**: fix stack overflow error (Antoine du Hamel) [#60084](https://github.com/nodejs/node/pull/60084)
* \[[`d52cd04591`](https://github.com/nodejs/node/commit/d52cd04591)] - **quic**: continue working on quic api bits (James M Snell) [#60123](https://github.com/nodejs/node/pull/60123)
* \[[`b4af647920`](https://github.com/nodejs/node/commit/b4af647920)] - **quic**: reduce boilerplate and other minor cleanups (James M Snell) [#59342](https://github.com/nodejs/node/pull/59342)
* \[[`cd9fd09a27`](https://github.com/nodejs/node/commit/cd9fd09a27)] - **quic**: multiple fixups and updates (James M Snell) [#59342](https://github.com/nodejs/node/pull/59342)
* \[[`a6c5d27739`](https://github.com/nodejs/node/commit/a6c5d27739)] - **quic**: update more of the quic to the new compile guard (James M Snell) [#59342](https://github.com/nodejs/node/pull/59342)
* \[[`ee7b8ab29c`](https://github.com/nodejs/node/commit/ee7b8ab29c)] - **quic**: few additional small comment edits in cid.h (James M Snell) [#59342](https://github.com/nodejs/node/pull/59342)
* \[[`c8b64bd023`](https://github.com/nodejs/node/commit/c8b64bd023)] - **quic**: fixup NO\_ERROR macro conflict on windows (James M Snell) [#59381](https://github.com/nodejs/node/pull/59381)
* \[[`e2fefd78e2`](https://github.com/nodejs/node/commit/e2fefd78e2)] - **quic**: fixup windows coverage compile error (James M Snell) [#59381](https://github.com/nodejs/node/pull/59381)
* \[[`99c80e3a45`](https://github.com/nodejs/node/commit/99c80e3a45)] - **quic**: update the guard to check openssl version (James M Snell) [#59249](https://github.com/nodejs/node/pull/59249)
* \[[`0e754fa5d1`](https://github.com/nodejs/node/commit/0e754fa5d1)] - **quic**: start re-enabling quic with openssl 3.5 (James M Snell) [#59249](https://github.com/nodejs/node/pull/59249)
* \[[`200fe9e7f4`](https://github.com/nodejs/node/commit/200fe9e7f4)] - **repl**: move completion logic to internal module (Dario Piotrowicz) [#59889](https://github.com/nodejs/node/pull/59889)
* \[[`3ac88a7a66`](https://github.com/nodejs/node/commit/3ac88a7a66)] - **src**: use string\_view in `WriteReport()` (Anna Henningsen) [#60201](https://github.com/nodejs/node/pull/60201)
* \[[`a1244f04de`](https://github.com/nodejs/node/commit/a1244f04de)] - **src**: make additional cleanups in node locks impl (James M Snell) [#60061](https://github.com/nodejs/node/pull/60061)
* \[[`fdb6e66227`](https://github.com/nodejs/node/commit/fdb6e66227)] - **src**: update locks to use DictionaryTemplate (James M Snell) [#60061](https://github.com/nodejs/node/pull/60061)
* \[[`367bcce6a6`](https://github.com/nodejs/node/commit/367bcce6a6)] - **src**: fix usage of deprecated V8 API (Michaël Zasso) [#60174](https://github.com/nodejs/node/pull/60174)
* \[[`23fa18444f`](https://github.com/nodejs/node/commit/23fa18444f)] - **src**: fix small compile warning in quic/streams.cc (James M Snell) [#60118](https://github.com/nodejs/node/pull/60118)
* \[[`0ec1d186f4`](https://github.com/nodejs/node/commit/0ec1d186f4)] - **src**: always use strong reference to `napi_async_context` resource (Anna Henningsen) [#59828](https://github.com/nodejs/node/pull/59828)
* \[[`ce748f6cae`](https://github.com/nodejs/node/commit/ce748f6cae)] - **src**: use `Global` for storing resource in Node-API callback scope (Anna Henningsen) [#59828](https://github.com/nodejs/node/pull/59828)
* \[[`36256230b4`](https://github.com/nodejs/node/commit/36256230b4)] - **src**: cleanup quic TransportParams class (James M Snell) [#59884](https://github.com/nodejs/node/pull/59884)
* \[[`985e2fb383`](https://github.com/nodejs/node/commit/985e2fb383)] - _**Revert**_ "**test**: ensure message event fires in worker message port test" (Luigi Pinca) [#60126](https://github.com/nodejs/node/pull/60126)
* \[[`da9cd745c8`](https://github.com/nodejs/node/commit/da9cd745c8)] - **test**: ensure assertions are reachable in `test/client-proxy` (Antoine du Hamel) [#60175](https://github.com/nodejs/node/pull/60175)
* \[[`e105e821e9`](https://github.com/nodejs/node/commit/e105e821e9)] - **test**: skip quic tests that IBM i does not support (SRAVANI GUNDEPALLI) [#60160](https://github.com/nodejs/node/pull/60160)
* \[[`bfc81ca228`](https://github.com/nodejs/node/commit/bfc81ca228)] - **test**: ensure assertions are reachable in `test/async-hooks` (Antoine du Hamel) [#60150](https://github.com/nodejs/node/pull/60150)
* \[[`712cee951c`](https://github.com/nodejs/node/commit/712cee951c)] - **test**: skip tests that cause timeouts on IBM i (SRAVANI GUNDEPALLI) [#60148](https://github.com/nodejs/node/pull/60148)
* \[[`f8a43f6f34`](https://github.com/nodejs/node/commit/f8a43f6f34)] - **test**: deflake test-fs-promises-watch-iterator (Luigi Pinca) [#60060](https://github.com/nodejs/node/pull/60060)
* \[[`1f95d39997`](https://github.com/nodejs/node/commit/1f95d39997)] - **test**: prepare junit file attribute normalization (sangwook) [#59432](https://github.com/nodejs/node/pull/59432)
* \[[`eb159a8cfd`](https://github.com/nodejs/node/commit/eb159a8cfd)] - **test**: remove duplicated allocUnsafeSlow test (Michaël Zasso) [#58524](https://github.com/nodejs/node/pull/58524)
* \[[`d93cff5af3`](https://github.com/nodejs/node/commit/d93cff5af3)] - _**Revert**_ "**test**: fix watch tests not including completion messages" (Joyee Cheung) [#58190](https://github.com/nodejs/node/pull/58190)
* \[[`6102159fa1`](https://github.com/nodejs/node/commit/6102159fa1)] - **test**: fix watch tests not including completion messages (Dario Piotrowicz) [#58183](https://github.com/nodejs/node/pull/58183)
* \[[`ad2c1bf62e`](https://github.com/nodejs/node/commit/ad2c1bf62e)] - **test,doc**: skip --max-old-space-size-percentage on 32-bit platforms (Asaf Federman) [#60144](https://github.com/nodejs/node/pull/60144)
* \[[`6dbf7086bb`](https://github.com/nodejs/node/commit/6dbf7086bb)] - **test\_runner**: fix suite timeout (Moshe Atlow) [#59853](https://github.com/nodejs/node/pull/59853)
* \[[`f0aa073907`](https://github.com/nodejs/node/commit/f0aa073907)] - **test\_runner**: add junit file attribute support (sangwook) [#59432](https://github.com/nodejs/node/pull/59432)
* \[[`cff138c6b1`](https://github.com/nodejs/node/commit/cff138c6b1)] - **tests**: start adding quic test server utilities (James M Snell) [#59946](https://github.com/nodejs/node/pull/59946)
* \[[`20dc4b514a`](https://github.com/nodejs/node/commit/20dc4b514a)] - **tools**: use cooldown property correctly (Rafael Gonzaga) [#60134](https://github.com/nodejs/node/pull/60134)
* \[[`ec26b1c01a`](https://github.com/nodejs/node/commit/ec26b1c01a)] - **tools**: add lint rule to ensure assertions are reached (Antoine du Hamel) [#60125](https://github.com/nodejs/node/pull/60125)
* \[[`bab752d4db`](https://github.com/nodejs/node/commit/bab752d4db)] - **typings**: add buffer internalBinding typing (방진혁) [#60163](https://github.com/nodejs/node/pull/60163)
* \[[`1986ee4b65`](https://github.com/nodejs/node/commit/1986ee4b65)] - **vm**: hint module identifier in instantiate errors (Chengzhong Wu) [#60199](https://github.com/nodejs/node/pull/60199)
* \[[`23b834058c`](https://github.com/nodejs/node/commit/23b834058c)] - **wasm**: revert enable JSPI as already enabled (Guy Bedford) [#60014](https://github.com/nodejs/node/pull/60014)
* \[[`4bfcad1ac5`](https://github.com/nodejs/node/commit/4bfcad1ac5)] - _**Revert**_ "**watch**: fix watch args not being properly filtered" (Joyee Cheung) [#58190](https://github.com/nodejs/node/pull/58190)
* \[[`4acb854039`](https://github.com/nodejs/node/commit/4acb854039)] - **watch**: fix watch args not being properly filtered (Dario Piotrowicz) [#57936](https://github.com/nodejs/node/pull/57936)
