# Node.js 26 ChangeLog

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

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

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

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

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

### Notable Changes

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

### Commits

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

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

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

### Notable Changes

#### Experimental `node:ffi` module

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

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

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

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

#### Other Notable Changes

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

### Commits

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

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

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

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

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

### Notable Changes

#### Temporal API

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

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

#### V8 14.6

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

This version also includes:

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

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

#### Undici 8

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

#### Deprecations and Removals

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

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

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

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

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

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

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

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

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

### Semver-Major Commits

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

### Semver-Minor Commits

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

### Semver-Patch Commits

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