diff --git a/apps/site/pages/en/blog/release/v24.20.0.md b/apps/site/pages/en/blog/release/v24.20.0.md new file mode 100644 index 0000000000000..5ca096e09916a --- /dev/null +++ b/apps/site/pages/en/blog/release/v24.20.0.md @@ -0,0 +1,479 @@ +--- +date: '2026-08-26T14:29:42.505Z' +category: release +title: Node.js 24.20.0 (LTS) +layout: blog-post +author: Antoine du Hamel +--- + +## 2026-08-26, Version 24.20.0 'Krypton' (LTS), @aduh95 + +### Notable Changes + +- \[[`b12bcc9ae1`](https://github.com/nodejs/node/commit/b12bcc9ae1)] - **(SEMVER-MINOR)** **async\_hooks**: add `using` scopes to `AsyncLocalStorage` (Stephen Belanger) [#61674](https://github.com/nodejs/node/pull/61674) +- \[[`e2eb88b36b`](https://github.com/nodejs/node/commit/e2eb88b36b)] - **(SEMVER-MINOR)** **buffer**: add `end` parameter (Robert Nagy) [#62390](https://github.com/nodejs/node/pull/62390) +- \[[`1fefdda18e`](https://github.com/nodejs/node/commit/1fefdda18e)] - **crypto**: update root certificates to NSS 3.125 (Node.js GitHub Bot) [#64746](https://github.com/nodejs/node/pull/64746) +- \[[`4a158cf1ab`](https://github.com/nodejs/node/commit/4a158cf1ab)] - **doc**: add MikeMcC399 as collaborator (Mike McCready) [#64656](https://github.com/nodejs/node/pull/64656) +- \[[`d4cafce076`](https://github.com/nodejs/node/commit/d4cafce076)] - **(SEMVER-MINOR)** **lib,permission**: add `permission.drop` (Rafael Gonzaga) [#62672](https://github.com/nodejs/node/pull/62672) +- \[[`b3cfb55267`](https://github.com/nodejs/node/commit/b3cfb55267)] - **(SEMVER-MINOR)** **loader**: implement package maps (Maël Nison) [#62239](https://github.com/nodejs/node/pull/62239) +- \[[`cd1eb3e60b`](https://github.com/nodejs/node/commit/cd1eb3e60b)] - **(SEMVER-MINOR)** **src,permission**: add `--permission-audit` (RafaelGSS) [#61869](https://github.com/nodejs/node/pull/61869) +- \[[`28dc85d8d2`](https://github.com/nodejs/node/commit/28dc85d8d2)] - **(SEMVER-MINOR)** **stream**: add `node:stream/iter` implementation (James M Snell) [#62066](https://github.com/nodejs/node/pull/62066) +- \[[`d31c168740`](https://github.com/nodejs/node/commit/d31c168740)] - **(SEMVER-MINOR)** **test\_runner**: add `context.log()` and test:log event (Moshe Atlow) [#64389](https://github.com/nodejs/node/pull/64389) +- \[[`add1edbc42`](https://github.com/nodejs/node/commit/add1edbc42)] - **(SEMVER-MINOR)** **test\_runner**: report `entryFile` in `TestStream` events (Moshe Atlow) [#64309](https://github.com/nodejs/node/pull/64309) +- \[[`d937c8c6cd`](https://github.com/nodejs/node/commit/d937c8c6cd)] - **(SEMVER-MINOR)** **wasm**: enable JSPI (Guy Bedford) [#59941](https://github.com/nodejs/node/pull/59941) + +### Commits + +- \[[`1822c0f335`](https://github.com/nodejs/node/commit/1822c0f335)] - **assert,util**: fix TypeError on Maps with null keys (Paul Bouchon) [#64441](https://github.com/nodejs/node/pull/64441) +- \[[`b12bcc9ae1`](https://github.com/nodejs/node/commit/b12bcc9ae1)] - **(SEMVER-MINOR)** **async\_hooks**: add using scopes to AsyncLocalStorage (Stephen Belanger) [#61674](https://github.com/nodejs/node/pull/61674) +- \[[`984260bf44`](https://github.com/nodejs/node/commit/984260bf44)] - **async\_hooks**: use validateBoolean for trackPromises (Soul Lee) [#64731](https://github.com/nodejs/node/pull/64731) +- \[[`ba2612cca2`](https://github.com/nodejs/node/commit/ba2612cca2)] - **benchmark**: fix calibrate-n option handling (Luan Muniz) [#64146](https://github.com/nodejs/node/pull/64146) +- \[[`236dc4d2d7`](https://github.com/nodejs/node/commit/236dc4d2d7)] - **benchmark**: add bytes variant to webstreams async-iterator (Matteo Collina) [#64291](https://github.com/nodejs/node/pull/64291) +- \[[`b022a1419c`](https://github.com/nodejs/node/commit/b022a1419c)] - **benchmark**: respect stream/iter broadcast backpressure (Trivikram Kamat) [#63314](https://github.com/nodejs/node/pull/63314) +- \[[`a290f51f15`](https://github.com/nodejs/node/commit/a290f51f15)] - **(SEMVER-MINOR)** **benchmark**: add benchmarks for experimental stream/iter (James M Snell) [#62066](https://github.com/nodejs/node/pull/62066) +- \[[`465f2bfb74`](https://github.com/nodejs/node/commit/465f2bfb74)] - **buffer**: use Clamp conversion in Blob slice (Donghoon Kang) [#64739](https://github.com/nodejs/node/pull/64739) +- \[[`74a22cd0c5`](https://github.com/nodejs/node/commit/74a22cd0c5)] - **buffer**: validate copyArrayBuffer offsets against buffer length (Ilia Alshanetsky) [#63904](https://github.com/nodejs/node/pull/63904) +- \[[`21e24208dc`](https://github.com/nodejs/node/commit/21e24208dc)] - **buffer**: normalize lone "\r" in Blob native line endings (Daijiro Wachi) [#64115](https://github.com/nodejs/node/pull/64115) +- \[[`ddacb3ff10`](https://github.com/nodejs/node/commit/ddacb3ff10)] - **buffer**: fix Blob.stream() leaking source buffer (semimikoh) [#63577](https://github.com/nodejs/node/pull/63577) +- \[[`49198d2313`](https://github.com/nodejs/node/commit/49198d2313)] - **buffer**: fix end parameter bugs in indexOf/lastIndexOf (Robert Nagy) [#62711](https://github.com/nodejs/node/pull/62711) +- \[[`e2eb88b36b`](https://github.com/nodejs/node/commit/e2eb88b36b)] - **(SEMVER-MINOR)** **buffer**: add end parameter (Robert Nagy) [#62390](https://github.com/nodejs/node/pull/62390) +- \[[`e2e5c4fe88`](https://github.com/nodejs/node/commit/e2e5c4fe88)] - **build**: update binary-upload to use correct tarball name (Stewart X Addison) [#65282](https://github.com/nodejs/node/pull/65282) +- \[[`b78a212553`](https://github.com/nodejs/node/commit/b78a212553)] - **build**: pin envinfo versions in github actions (Joyee Cheung) [#64117](https://github.com/nodejs/node/pull/64117) +- \[[`094fb840aa`](https://github.com/nodejs/node/commit/094fb840aa)] - **build**: add QUIC CI job for PRs matching QUIC related paths (Tim Perry) [#63875](https://github.com/nodejs/node/pull/63875) +- \[[`91f5003cad`](https://github.com/nodejs/node/commit/91f5003cad)] - **build**: fix flags for ngtcp2 on IBM i (SRAVANI GUNDEPALLI) [#60073](https://github.com/nodejs/node/pull/60073) +- \[[`e83648effd`](https://github.com/nodejs/node/commit/e83648effd)] - **build,test**: add tests for binary linked with shared libnode (Joyee Cheung) [#61463](https://github.com/nodejs/node/pull/61463) +- \[[`4a425b41d9`](https://github.com/nodejs/node/commit/4a425b41d9)] - **build,tools**: fix shared library cross-compile (Kirill Saied) [#63963](https://github.com/nodejs/node/pull/63963) +- \[[`fe8fa45ff2`](https://github.com/nodejs/node/commit/fe8fa45ff2)] - **cli**: style node --help output with util.styleText (Adrián Estrada) [#64484](https://github.com/nodejs/node/pull/64484) +- \[[`3cd1576cb2`](https://github.com/nodejs/node/commit/3cd1576cb2)] - **crypto**: preserve OpenSSL errors from KDF failures (Filip Skokan) [#64776](https://github.com/nodejs/node/pull/64776) +- \[[`74b3023565`](https://github.com/nodejs/node/commit/74b3023565)] - **crypto**: handle XOF output allocation failure (Filip Skokan) [#64851](https://github.com/nodejs/node/pull/64851) +- \[[`fea0666a1b`](https://github.com/nodejs/node/commit/fea0666a1b)] - **crypto**: clarify missing cipher error (Filip Skokan) [#64852](https://github.com/nodejs/node/pull/64852) +- \[[`33fec91b54`](https://github.com/nodejs/node/commit/33fec91b54)] - **crypto**: reuse X509 issuer result (Filip Skokan) [#64852](https://github.com/nodejs/node/pull/64852) +- \[[`44c1473348`](https://github.com/nodejs/node/commit/44c1473348)] - **crypto**: validate key generation options (Filip Skokan) [#64852](https://github.com/nodejs/node/pull/64852) +- \[[`c2c53a18e5`](https://github.com/nodejs/node/commit/c2c53a18e5)] - **crypto**: fix Argon2 validation errors (Filip Skokan) [#64852](https://github.com/nodejs/node/pull/64852) +- \[[`edc1f2126d`](https://github.com/nodejs/node/commit/edc1f2126d)] - **crypto**: initialize KeyObjectData mutex eagerly (Filip Skokan) [#64851](https://github.com/nodejs/node/pull/64851) +- \[[`be8237240c`](https://github.com/nodejs/node/commit/be8237240c)] - **crypto**: handle DH operation failures (Filip Skokan) [#64851](https://github.com/nodejs/node/pull/64851) +- \[[`b65a8f3875`](https://github.com/nodejs/node/commit/b65a8f3875)] - **crypto**: preserve RSA-PSS legacy pubkey DER (Filip Skokan) [#64547](https://github.com/nodejs/node/pull/64547) +- \[[`49f2ae204b`](https://github.com/nodejs/node/commit/49f2ae204b)] - **crypto**: cleanse provider private key copies (Filip Skokan) [#64547](https://github.com/nodejs/node/pull/64547) +- \[[`a5d4ac8208`](https://github.com/nodejs/node/commit/a5d4ac8208)] - **crypto**: handle incomplete RSA private keys (Filip Skokan) [#64547](https://github.com/nodejs/node/pull/64547) +- \[[`b72c0b9616`](https://github.com/nodejs/node/commit/b72c0b9616)] - **crypto**: retain legacy DH validation (Filip Skokan) [#64547](https://github.com/nodejs/node/pull/64547) +- \[[`24a1be5886`](https://github.com/nodejs/node/commit/24a1be5886)] - **crypto**: limit KangarooTwelveParams customization to 512 bytes (Filip Skokan) [#64557](https://github.com/nodejs/node/pull/64557) +- \[[`0290e0a61e`](https://github.com/nodejs/node/commit/0290e0a61e)] - **crypto**: split OpenSSL 3, BoringSSL, and legacy backends (Filip Skokan) [#64211](https://github.com/nodejs/node/pull/64211) +- \[[`ba27e72ff8`](https://github.com/nodejs/node/commit/ba27e72ff8)] - **crypto**: fix Argon2 bypassing FIPS mode (Filip Skokan) [#64776](https://github.com/nodejs/node/pull/64776) +- \[[`1fefdda18e`](https://github.com/nodejs/node/commit/1fefdda18e)] - **crypto**: update root certificates to NSS 3.125 (Node.js GitHub Bot) [#64746](https://github.com/nodejs/node/pull/64746) +- \[[`c0dd022081`](https://github.com/nodejs/node/commit/c0dd022081)] - **crypto**: use user-facing error for output encoding changes (Archkon) [#64692](https://github.com/nodejs/node/pull/64692) +- \[[`ff485a9410`](https://github.com/nodejs/node/commit/ff485a9410)] - **crypto**: make --use-system-ca per-env rather than per-process (Aditi) [#60678](https://github.com/nodejs/node/pull/60678) +- \[[`1329d9b9f1`](https://github.com/nodejs/node/commit/1329d9b9f1)] - **debugger**: preserve overlapping CDP request state (Trivikram Kamat) [#64467](https://github.com/nodejs/node/pull/64467) +- \[[`82a02336aa`](https://github.com/nodejs/node/commit/82a02336aa)] - **deps**: V8: backport d259a9e2ead7 (Leszek Swirski) [#63865](https://github.com/nodejs/node/pull/63865) +- \[[`f0fc82d404`](https://github.com/nodejs/node/commit/f0fc82d404)] - **deps**: update ngtcp2 to 1.25.0 (Node.js GitHub Bot) [#64944](https://github.com/nodejs/node/pull/64944) +- \[[`c4e02f0fbc`](https://github.com/nodejs/node/commit/c4e02f0fbc)] - **deps**: upgrade npm to 11.19.0 (npm team) [#64883](https://github.com/nodejs/node/pull/64883) +- \[[`d5a57ed4dd`](https://github.com/nodejs/node/commit/d5a57ed4dd)] - **deps**: update nghttp3 to 1.18.0 (Node.js GitHub Bot) [#64943](https://github.com/nodejs/node/pull/64943) +- \[[`51d413150a`](https://github.com/nodejs/node/commit/51d413150a)] - **deps**: update minimatch to 10.2.6 (Node.js GitHub Bot) [#64945](https://github.com/nodejs/node/pull/64945) +- \[[`21f79ce140`](https://github.com/nodejs/node/commit/21f79ce140)] - **deps**: update simdjson to 4.6.6 (Node.js GitHub Bot) [#64942](https://github.com/nodejs/node/pull/64942) +- \[[`7a4960d6a9`](https://github.com/nodejs/node/commit/7a4960d6a9)] - **deps**: update acorn to 8.18.0 (Node.js GitHub Bot) [#64941](https://github.com/nodejs/node/pull/64941) +- \[[`5c423aa113`](https://github.com/nodejs/node/commit/5c423aa113)] - **deps**: update googletest to 1b6f64d659944658a4c685b7bd9f04c1c3b8a39b (Node.js GitHub Bot) [#64940](https://github.com/nodejs/node/pull/64940) +- \[[`40561e61b0`](https://github.com/nodejs/node/commit/40561e61b0)] - **deps**: update nghttp2 to 1.70.0 (Node.js GitHub Bot) [#64939](https://github.com/nodejs/node/pull/64939) +- \[[`51090925b0`](https://github.com/nodejs/node/commit/51090925b0)] - **deps**: update zlib to 1.3.2.1-motley-42c2f19 (Node.js GitHub Bot) [#64744](https://github.com/nodejs/node/pull/64744) +- \[[`7c534bf8e5`](https://github.com/nodejs/node/commit/7c534bf8e5)] - **deps**: V8: backport 5177b10891e6 (avivkeller) [#64631](https://github.com/nodejs/node/pull/64631) +- \[[`7b1898a341`](https://github.com/nodejs/node/commit/7b1898a341)] - **deps**: update ada to 4.0.0 (Node.js GitHub Bot) [#64790](https://github.com/nodejs/node/pull/64790) +- \[[`9209cc4095`](https://github.com/nodejs/node/commit/9209cc4095)] - **deps**: update sqlite to 3.53.4 (Node.js GitHub Bot) [#64745](https://github.com/nodejs/node/pull/64745) +- \[[`3833fceff6`](https://github.com/nodejs/node/commit/3833fceff6)] - **deps**: update googletest to fa005b296f90faec4f352d7ab382287bf6548c8d (Node.js GitHub Bot) [#64587](https://github.com/nodejs/node/pull/64587) +- \[[`bc7ce488d1`](https://github.com/nodejs/node/commit/bc7ce488d1)] - **deps**: histogram: cherry-pick 62ea52b07ee9b195 (StefanStojanovic) [#64296](https://github.com/nodejs/node/pull/64296) +- \[[`e3fa05841d`](https://github.com/nodejs/node/commit/e3fa05841d)] - **deps**: update histogram to 0.11.10 (Node.js GitHub Bot) [#64296](https://github.com/nodejs/node/pull/64296) +- \[[`e75bdb9bbe`](https://github.com/nodejs/node/commit/e75bdb9bbe)] - **deps**: update amaro to 1.1.11 (Node.js GitHub Bot) [#64586](https://github.com/nodejs/node/pull/64586) +- \[[`1e034e6e40`](https://github.com/nodejs/node/commit/1e034e6e40)] - **deps**: update timezone to 2026c (Node.js GitHub Bot) [#64588](https://github.com/nodejs/node/pull/64588) +- \[[`2b8f1f27bd`](https://github.com/nodejs/node/commit/2b8f1f27bd)] - **deps**: update googletest to 8240fa7d62f73e01c7af27d61ed965d6d66698fa (Node.js GitHub Bot) [#64439](https://github.com/nodejs/node/pull/64439) +- \[[`241ece0417`](https://github.com/nodejs/node/commit/241ece0417)] - **deps**: enable OpenSSL asm support for riscv64 (Jamie Magee) [#62606](https://github.com/nodejs/node/pull/62606) +- \[[`215105eb90`](https://github.com/nodejs/node/commit/215105eb90)] - **deps**: update c-ares to 1.34.8 (Node.js GitHub Bot) [#64330](https://github.com/nodejs/node/pull/64330) +- \[[`7ac97fc84e`](https://github.com/nodejs/node/commit/7ac97fc84e)] - **deps**: upgrade npm to 11.18.0 (npm team) [#64199](https://github.com/nodejs/node/pull/64199) +- \[[`8d4cb9ae46`](https://github.com/nodejs/node/commit/8d4cb9ae46)] - **deps**: update zlib to 1.3.2.1-motley-8b3aa8a (Node.js GitHub Bot) [#64295](https://github.com/nodejs/node/pull/64295) +- \[[`564c0f4592`](https://github.com/nodejs/node/commit/564c0f4592)] - **deps**: update ngtcp2 to 1.24.0 (Node.js GitHub Bot) [#64297](https://github.com/nodejs/node/pull/64297) +- \[[`e3304cd31a`](https://github.com/nodejs/node/commit/e3304cd31a)] - **deps**: update nghttp3 to 1.17.0 (Node.js GitHub Bot) [#64182](https://github.com/nodejs/node/pull/64182) +- \[[`345d6ad4eb`](https://github.com/nodejs/node/commit/345d6ad4eb)] - **deps**: update ngtcp2 to 1.23.0 (Node.js GitHub Bot) [#63777](https://github.com/nodejs/node/pull/63777) +- \[[`a53db015e6`](https://github.com/nodejs/node/commit/a53db015e6)] - **deps**: update nghttp3 to 1.16.0 (Node.js GitHub Bot) [#63776](https://github.com/nodejs/node/pull/63776) +- \[[`1f4a5c1c76`](https://github.com/nodejs/node/commit/1f4a5c1c76)] - **deps**: update ngtcp2 to 1.22.1 (Node.js GitHub Bot) [#62812](https://github.com/nodejs/node/pull/62812) +- \[[`080c4d7cda`](https://github.com/nodejs/node/commit/080c4d7cda)] - **deps**: update ngtcp2 to 1.22.0 (Node.js GitHub Bot) [#62595](https://github.com/nodejs/node/pull/62595) +- \[[`4309e7c82f`](https://github.com/nodejs/node/commit/4309e7c82f)] - **deps**: update ngtcp2 to 1.21.0 (Node.js GitHub Bot) [#62051](https://github.com/nodejs/node/pull/62051) +- \[[`90cf11cfb5`](https://github.com/nodejs/node/commit/90cf11cfb5)] - **deps**: update nghttp3 to 1.15.0 (Node.js GitHub Bot) [#61512](https://github.com/nodejs/node/pull/61512) +- \[[`e1f315a554`](https://github.com/nodejs/node/commit/e1f315a554)] - **deps**: update ngtcp2 to 1.20.0 (Node.js GitHub Bot) [#61511](https://github.com/nodejs/node/pull/61511) +- \[[`9a3f690c9d`](https://github.com/nodejs/node/commit/9a3f690c9d)] - **deps**: update ngtcp2 to 1.19.0 (Node.js GitHub Bot) [#61156](https://github.com/nodejs/node/pull/61156) +- \[[`fe88f31764`](https://github.com/nodejs/node/commit/fe88f31764)] - **deps**: add ngtcp2 test binaries (James M Snell) [#59946](https://github.com/nodejs/node/pull/59946) +- \[[`6d60fce138`](https://github.com/nodejs/node/commit/6d60fce138)] - **diagnostics\_channel**: grow native channel storage (Stephen Belanger) [#64497](https://github.com/nodejs/node/pull/64497) +- \[[`30ae8ab091`](https://github.com/nodejs/node/commit/30ae8ab091)] - **doc**: document --permission-audit audit mode behavior (Adrián Estrada) [#64791](https://github.com/nodejs/node/pull/64791) +- \[[`8cefc6efa8`](https://github.com/nodejs/node/commit/8cefc6efa8)] - **doc**: fix guaranteed typo (lilianakatrina684-a11y) [#62374](https://github.com/nodejs/node/pull/62374) +- \[[`2e78e4b120`](https://github.com/nodejs/node/commit/2e78e4b120)] - **doc**: add throwIfNoEntry version history to fs.stat (kovan) [#62204](https://github.com/nodejs/node/pull/62204) +- \[[`c7a04401cb`](https://github.com/nodejs/node/commit/c7a04401cb)] - **doc**: fix grammar and punctuation in dgram documentation (Kamal Rawal) [#64957](https://github.com/nodejs/node/pull/64957) +- \[[`331e5e8f62`](https://github.com/nodejs/node/commit/331e5e8f62)] - **doc**: fix grammar and editorial issues in addons documentation (Kamal Rawal) [#64952](https://github.com/nodejs/node/pull/64952) +- \[[`232287fcc6`](https://github.com/nodejs/node/commit/232287fcc6)] - **doc**: formalize fn/name as part of TestOptions API (Christopher Hiller) [#64946](https://github.com/nodejs/node/pull/64946) +- \[[`7f9efeb445`](https://github.com/nodejs/node/commit/7f9efeb445)] - **doc**: remove references to `ca`/`crl` as per-context QuicSession options (René) [#64769](https://github.com/nodejs/node/pull/64769) +- \[[`b54aa83cc6`](https://github.com/nodejs/node/commit/b54aa83cc6)] - **doc**: fix typo in maintaining-dependencies.md (greenhead) [#64896](https://github.com/nodejs/node/pull/64896) +- \[[`f4e427803c`](https://github.com/nodejs/node/commit/f4e427803c)] - **doc**: add RafaelGSS as last security release stewards (Rafael Gonzaga) [#64843](https://github.com/nodejs/node/pull/64843) +- \[[`f2cd6df3f3`](https://github.com/nodejs/node/commit/f2cd6df3f3)] - **doc**: fix typos in documentation (greenhead) [#64900](https://github.com/nodejs/node/pull/64900) +- \[[`d5627162bd`](https://github.com/nodejs/node/commit/d5627162bd)] - **doc**: improve TestContext hook descriptions (Kamal Rawal) [#64899](https://github.com/nodejs/node/pull/64899) +- \[[`72ee03bd2e`](https://github.com/nodejs/node/commit/72ee03bd2e)] - **doc**: document stream.isDestroyed() (YspritanHyzygy) [#64789](https://github.com/nodejs/node/pull/64789) +- \[[`995141eb81`](https://github.com/nodejs/node/commit/995141eb81)] - **doc**: add contributing detail for git Signed-off-by trailer (Mike McCready) [#64862](https://github.com/nodejs/node/pull/64862) +- \[[`dc30379310`](https://github.com/nodejs/node/commit/dc30379310)] - **doc**: fix duplicated word in test snapshot docs (Kamal Rawal) [#64837](https://github.com/nodejs/node/pull/64837) +- \[[`205d4d0472`](https://github.com/nodejs/node/commit/205d4d0472)] - **doc**: remove obsolete cctest node.gyp instructions (Soul Lee) [#64814](https://github.com/nodejs/node/pull/64814) +- \[[`108b883d0b`](https://github.com/nodejs/node/commit/108b883d0b)] - **doc**: report proper return type on url.format (Brian Muenzenmeyer) [#64806](https://github.com/nodejs/node/pull/64806) +- \[[`b03bd3a8ed`](https://github.com/nodejs/node/commit/b03bd3a8ed)] - **doc**: clarify tlsSocket.authorized on resumption (soreavis) [#64584](https://github.com/nodejs/node/pull/64584) +- \[[`093098ad7f`](https://github.com/nodejs/node/commit/093098ad7f)] - **doc**: stabilize --disable-warning (Jean Michelet) [#64742](https://github.com/nodejs/node/pull/64742) +- \[[`2de1d76d80`](https://github.com/nodejs/node/commit/2de1d76d80)] - **doc**: add MDN links for explicit resource management in fs (lluisemper) [#59557](https://github.com/nodejs/node/pull/59557) +- \[[`2e0f36a891`](https://github.com/nodejs/node/commit/2e0f36a891)] - **doc**: mention constructor check in deepStrictEqual (Sumit Kumar Das) [#62010](https://github.com/nodejs/node/pull/62010) +- \[[`1c9d354d09`](https://github.com/nodejs/node/commit/1c9d354d09)] - **doc**: update technical priorities (Jacob Smith) [#64505](https://github.com/nodejs/node/pull/64505) +- \[[`30c99bf08f`](https://github.com/nodejs/node/commit/30c99bf08f)] - **doc**: deprecation add more codemod (Augustin Mauroy) [#63175](https://github.com/nodejs/node/pull/63175) +- \[[`8a971a09eb`](https://github.com/nodejs/node/commit/8a971a09eb)] - **doc**: run license-builder (Node.js GitHub Bot) [#63918](https://github.com/nodejs/node/pull/63918) +- \[[`707f6eacfc`](https://github.com/nodejs/node/commit/707f6eacfc)] - **doc**: clarify rules for adding new built-in modules (Antoine du Hamel) [#64648](https://github.com/nodejs/node/pull/64648) +- \[[`928208cffc`](https://github.com/nodejs/node/commit/928208cffc)] - **doc**: mention DEPENDENCY custom field for H1 reports (Rafael Gonzaga) [#64634](https://github.com/nodejs/node/pull/64634) +- \[[`ee593cadf5`](https://github.com/nodejs/node/commit/ee593cadf5)] - **doc**: fix dnsPromises.lookup verbatim default (Shivam S) [#64658](https://github.com/nodejs/node/pull/64658) +- \[[`9c228b32d1`](https://github.com/nodejs/node/commit/9c228b32d1)] - **doc**: fix typo in releases guide (Jihwan) [#64621](https://github.com/nodejs/node/pull/64621) +- \[[`4a158cf1ab`](https://github.com/nodejs/node/commit/4a158cf1ab)] - **doc**: add MikeMcC399 as collaborator (Mike McCready) [#64656](https://github.com/nodejs/node/pull/64656) +- \[[`8125809853`](https://github.com/nodejs/node/commit/8125809853)] - **doc**: use promote wording in release guide (Md Muhtasim Munif Fahim) [#64371](https://github.com/nodejs/node/pull/64371) +- \[[`2a2effadf6`](https://github.com/nodejs/node/commit/2a2effadf6)] - **doc**: fix import.meta example for vm.SourceTextModule (Muhammad Zeeshan) [#64112](https://github.com/nodejs/node/pull/64112) +- \[[`c879f912bf`](https://github.com/nodejs/node/commit/c879f912bf)] - **doc**: mention crypto.hash() for better perf (Steven) [#63420](https://github.com/nodejs/node/pull/63420) +- \[[`634afda904`](https://github.com/nodejs/node/commit/634afda904)] - **doc**: update sea example by fixing wrong code example (Maxence Robinet) [#64025](https://github.com/nodejs/node/pull/64025) +- \[[`bced1433a3`](https://github.com/nodejs/node/commit/bced1433a3)] - **doc**: fix socket.readyState state descriptions (YuSheng Chen) [#64468](https://github.com/nodejs/node/pull/64468) +- \[[`4b2c18938f`](https://github.com/nodejs/node/commit/4b2c18938f)] - **doc**: replace large tables in crypto.md and webcrypto.md with lists (Filip Skokan) [#64582](https://github.com/nodejs/node/pull/64582) +- \[[`5207231996`](https://github.com/nodejs/node/commit/5207231996)] - **doc**: note --env-file is not applied to --run (Paul Bouchon) [#64442](https://github.com/nodejs/node/pull/64442) +- \[[`329a2884fd`](https://github.com/nodejs/node/commit/329a2884fd)] - **doc**: fix typo in embedding.md (greenhead) [#64425](https://github.com/nodejs/node/pull/64425) +- \[[`fab3f56aa1`](https://github.com/nodejs/node/commit/fab3f56aa1)] - **doc**: fix typos in contributing docs (Donghoon Kang) [#64520](https://github.com/nodejs/node/pull/64520) +- \[[`cbc2bed4e8`](https://github.com/nodejs/node/commit/cbc2bed4e8)] - **doc**: document TLS alpnProtocol and servername fields (Tim Perry) [#64362](https://github.com/nodejs/node/pull/64362) +- \[[`dada3ae60e`](https://github.com/nodejs/node/commit/dada3ae60e)] - **doc**: fix spelling in devcontainer guide (한만욱) [#64459](https://github.com/nodejs/node/pull/64459) +- \[[`71343b28aa`](https://github.com/nodejs/node/commit/71343b28aa)] - **doc**: clarify PEM format for signing keys (Harjoth Khara) [#64404](https://github.com/nodejs/node/pull/64404) +- \[[`0544ec1c78`](https://github.com/nodejs/node/commit/0544ec1c78)] - **doc**: fix typo in tls.md (Daijiro Wachi) [#64458](https://github.com/nodejs/node/pull/64458) +- \[[`8fe58078e7`](https://github.com/nodejs/node/commit/8fe58078e7)] - **doc**: document net Socket server property (Efe Karasakal) [#64364](https://github.com/nodejs/node/pull/64364) +- \[[`d54fd03fa4`](https://github.com/nodejs/node/commit/d54fd03fa4)] - **doc**: update a Dispatcher undici doc link (Filip Skokan) [#64358](https://github.com/nodejs/node/pull/64358) +- \[[`1bdebecd41`](https://github.com/nodejs/node/commit/1bdebecd41)] - **doc**: fix typos in documentation (Jungwon Sohn) [#64466](https://github.com/nodejs/node/pull/64466) +- \[[`86bca58641`](https://github.com/nodejs/node/commit/86bca58641)] - **doc**: clarify fixes and refs trailer guidance (Trivikram Kamat) [#64421](https://github.com/nodejs/node/pull/64421) +- \[[`b5b84c9394`](https://github.com/nodejs/node/commit/b5b84c9394)] - **doc**: add scope overview tables for TestsStream events (Moshe Atlow) [#64386](https://github.com/nodejs/node/pull/64386) +- \[[`004238d77c`](https://github.com/nodejs/node/commit/004238d77c)] - **doc**: clarify proxy threat model (Matteo Collina) [#64366](https://github.com/nodejs/node/pull/64366) +- \[[`6851b8d55f`](https://github.com/nodejs/node/commit/6851b8d55f)] - **doc**: add note about restricted CI to pull-requests.md (Stewart X Addison) [#64321](https://github.com/nodejs/node/pull/64321) +- \[[`662e33714a`](https://github.com/nodejs/node/commit/662e33714a)] - **doc**: various updates to releases.md (Stewart X Addison) [#64198](https://github.com/nodejs/node/pull/64198) +- \[[`949bc3cfd3`](https://github.com/nodejs/node/commit/949bc3cfd3)] - **doc**: remove obsolete --napi-modules doc entry (Chengzhong Wu) [#64220](https://github.com/nodejs/node/pull/64220) +- \[[`830d16067f`](https://github.com/nodejs/node/commit/830d16067f)] - **doc**: clarify QUIC stream state wording (EduardF1) [#63660](https://github.com/nodejs/node/pull/63660) +- \[[`79b6704630`](https://github.com/nodejs/node/commit/79b6704630)] - **doc**: fix typo in node-config-schema.json (Hamid Reza Ghavami) [#64188](https://github.com/nodejs/node/pull/64188) +- \[[`9f5bf554db`](https://github.com/nodejs/node/commit/9f5bf554db)] - **doc**: fix broken link (Antoine du Hamel) [#65078](https://github.com/nodejs/node/pull/65078) +- \[[`42b27ed428`](https://github.com/nodejs/node/commit/42b27ed428)] - **doc**: remove unsupported syntax from `stream_iter.md` (Antoine du Hamel) [#64649](https://github.com/nodejs/node/pull/64649) +- \[[`f1a9df7f22`](https://github.com/nodejs/node/commit/f1a9df7f22)] - **doc**: clarify fromReadable() duck-typed contract (Trivikram Kamat) [#63682](https://github.com/nodejs/node/pull/63682) +- \[[`c7a3d450ac`](https://github.com/nodejs/node/commit/c7a3d450ac)] - **doc**: improve quic documentation (James M Snell) [#63157](https://github.com/nodejs/node/pull/63157) +- \[[`cc425bc659`](https://github.com/nodejs/node/commit/cc425bc659)] - **doc**: fix promise nomenclature in `stream_iter.md` (Antoine du Hamel) [#63406](https://github.com/nodejs/node/pull/63406) +- \[[`859a02da96`](https://github.com/nodejs/node/commit/859a02da96)] - **doc**: minor structural stream/iter edits (René) [#63089](https://github.com/nodejs/node/pull/63089) +- \[[`630b15eb20`](https://github.com/nodejs/node/commit/630b15eb20)] - **doc**: fix doubled word typo in stream\_iter.md (Daijiro Wachi) [#62916](https://github.com/nodejs/node/pull/62916) +- \[[`50791fa8fa`](https://github.com/nodejs/node/commit/50791fa8fa)] - **doc,test**: widen fsPromises.appendFile()'s data type, add missing tests (Jimmy Leung) [#64279](https://github.com/nodejs/node/pull/64279) +- \[[`9e39360a09`](https://github.com/nodejs/node/commit/9e39360a09)] - **esm**: improve ERR\_REQUIRE\_ASYNC\_MODULE (Joyee Cheung) [#64260](https://github.com/nodejs/node/pull/64260) +- \[[`d2b02e443a`](https://github.com/nodejs/node/commit/d2b02e443a)] - **esm**: print required top-level await locations without evaluating (Joyee Cheung) [#64154](https://github.com/nodejs/node/pull/64154) +- \[[`e8c153f3f4`](https://github.com/nodejs/node/commit/e8c153f3f4)] - **events**: avoid retaining removed event names (Matteo Collina) [#64475](https://github.com/nodejs/node/pull/64475) +- \[[`73e1701bad`](https://github.com/nodejs/node/commit/73e1701bad)] - **events**: optimize once() and removeListener() (Matteo Collina) [#64373](https://github.com/nodejs/node/pull/64373) +- \[[`12f7fc0558`](https://github.com/nodejs/node/commit/12f7fc0558)] - **fs**: key glob matcher cache by platform (Archkon) [#64571](https://github.com/nodejs/node/pull/64571) +- \[[`e5af022302`](https://github.com/nodejs/node/commit/e5af022302)] - **fs**: add pattern cache for matchGlobPattern() (bq) [#63915](https://github.com/nodejs/node/pull/63915) +- \[[`63321eeb11`](https://github.com/nodejs/node/commit/63321eeb11)] - **fs**: fix cp symlink and EEXIST handling on Windows (Kirill Saied) [#64353](https://github.com/nodejs/node/pull/64353) +- \[[`0ad55e5618`](https://github.com/nodejs/node/commit/0ad55e5618)] - **http**: fix writableFinished and 'finish' after write errors (Tim Perry) [#64847](https://github.com/nodejs/node/pull/64847) +- \[[`ee54d9d4d2`](https://github.com/nodejs/node/commit/ee54d9d4d2)] - **http**: avoid aborting IncomingMessage signal on normal close (Archkon) [#64392](https://github.com/nodejs/node/pull/64392) +- \[[`14cb8b0a06`](https://github.com/nodejs/node/commit/14cb8b0a06)] - **http**: guard invalid timeout values in checkConnections (Efe Karasakal) [#64506](https://github.com/nodejs/node/pull/64506) +- \[[`f24177ccc6`](https://github.com/nodejs/node/commit/f24177ccc6)] - **http**: propagate highWaterMark to ClientRequest OutgoingMessage (trivenay) [#64653](https://github.com/nodejs/node/pull/64653) +- \[[`55e2c2da8c`](https://github.com/nodejs/node/commit/55e2c2da8c)] - **http**: fix perf\_hooks detail.req.url port and proxied path (Stefano Baghino) [#64311](https://github.com/nodejs/node/pull/64311) +- \[[`b57350fe27`](https://github.com/nodejs/node/commit/b57350fe27)] - **http**: remove unused n arg from IncomingMessage.\_read (Efe Karasakal) [#64370](https://github.com/nodejs/node/pull/64370) +- \[[`af3a17e0b3`](https://github.com/nodejs/node/commit/af3a17e0b3)] - **http2**: avoid copying the options in respond() (Matteo Collina) [#64265](https://github.com/nodejs/node/pull/64265) +- \[[`f11ac0da37`](https://github.com/nodejs/node/commit/f11ac0da37)] - **http2**: avoid per-write closures in kWriteGeneric (Matteo Collina) [#64265](https://github.com/nodejs/node/pull/64265) +- \[[`157bd07b6e`](https://github.com/nodejs/node/commit/157bd07b6e)] - **http2**: reduce per-request allocations (Matteo Collina) [#64265](https://github.com/nodejs/node/pull/64265) +- \[[`b075b33429`](https://github.com/nodejs/node/commit/b075b33429)] - **http2**: don't throw when destroying socket proxy (Matteo Collina) [#64427](https://github.com/nodejs/node/pull/64427) +- \[[`445bcce079`](https://github.com/nodejs/node/commit/445bcce079)] - **inspector**: add --cond to node inspect probe mode (Joyee Cheung) [#64328](https://github.com/nodejs/node/pull/64328) +- \[[`06b54fe7d3`](https://github.com/nodejs/node/commit/06b54fe7d3)] - **lib**: fix AbortSignal.any() observed-composite leak (Paul Bouchon) [#64481](https://github.com/nodejs/node/pull/64481) +- \[[`d8fac094d1`](https://github.com/nodejs/node/commit/d8fac094d1)] - **lib**: fix typo in comment in \_http\_client.js (agape1225) [#64729](https://github.com/nodejs/node/pull/64729) +- \[[`9ce72fd6fb`](https://github.com/nodejs/node/commit/9ce72fd6fb)] - **lib**: use `assignFunctionName` util where it makes sense (Antoine du Hamel) [#64515](https://github.com/nodejs/node/pull/64515) +- \[[`c40d1473e6`](https://github.com/nodejs/node/commit/c40d1473e6)] - **lib,permission**: fix addon permission drop (Martin Wagner) [#64007](https://github.com/nodejs/node/pull/64007) +- \[[`d4cafce076`](https://github.com/nodejs/node/commit/d4cafce076)] - **(SEMVER-MINOR)** **lib,permission**: add permission.drop (Rafael Gonzaga) [#62672](https://github.com/nodejs/node/pull/62672) +- \[[`6b09d30a76`](https://github.com/nodejs/node/commit/6b09d30a76)] - **lib,tools**: add `node-core/func-name-matching` lint rule (Livia Medeiros) [#57901](https://github.com/nodejs/node/pull/57901) +- \[[`d7d4f0e2ac`](https://github.com/nodejs/node/commit/d7d4f0e2ac)] - **loader**: enforce path normalization before lookup (Maël Nison) [#63917](https://github.com/nodejs/node/pull/63917) +- \[[`b3cfb55267`](https://github.com/nodejs/node/commit/b3cfb55267)] - **(SEMVER-MINOR)** **loader**: implement package maps (Maël Nison) [#62239](https://github.com/nodejs/node/pull/62239) +- \[[`cf425ad935`](https://github.com/nodejs/node/commit/cf425ad935)] - **meta**: bump actions/stale from 10.3.0 to 11.0.0 (dependabot\[bot]) [#64935](https://github.com/nodejs/node/pull/64935) +- \[[`26fa9cc32b`](https://github.com/nodejs/node/commit/26fa9cc32b)] - **meta**: bump github/codeql-action/analyze from 4.36.2 to 4.37.3 (dependabot\[bot]) [#64934](https://github.com/nodejs/node/pull/64934) +- \[[`c90fa82cd7`](https://github.com/nodejs/node/commit/c90fa82cd7)] - **meta**: bump github/codeql-action/autobuild from 4.36.2 to 4.37.3 (dependabot\[bot]) [#64933](https://github.com/nodejs/node/pull/64933) +- \[[`314893253a`](https://github.com/nodejs/node/commit/314893253a)] - **meta**: bump actions/setup-python from 6.3.0 to 7.0.0 (dependabot\[bot]) [#64932](https://github.com/nodejs/node/pull/64932) +- \[[`6ab711278f`](https://github.com/nodejs/node/commit/6ab711278f)] - **meta**: bump github/codeql-action/init from 4.36.2 to 4.37.3 (dependabot\[bot]) [#64931](https://github.com/nodejs/node/pull/64931) +- \[[`9138f5892a`](https://github.com/nodejs/node/commit/9138f5892a)] - **meta**: bump Mozilla-Actions/sccache-action from 0.0.10 to 0.0.11 (dependabot\[bot]) [#64930](https://github.com/nodejs/node/pull/64930) +- \[[`3ef3f934d4`](https://github.com/nodejs/node/commit/3ef3f934d4)] - **meta**: bump github/codeql-action/upload-sarif from 4.36.2 to 4.37.3 (dependabot\[bot]) [#64927](https://github.com/nodejs/node/pull/64927) +- \[[`a0a33127ae`](https://github.com/nodejs/node/commit/a0a33127ae)] - **meta**: bump step-security/harden-runner from 2.19.4 to 2.20.0 (dependabot\[bot]) [#64926](https://github.com/nodejs/node/pull/64926) +- \[[`4ad2afbf33`](https://github.com/nodejs/node/commit/4ad2afbf33)] - **meta**: bump ossf/scorecard-action from 2.4.3 to 2.4.4 (dependabot\[bot]) [#64925](https://github.com/nodejs/node/pull/64925) +- \[[`d9b2ee4083`](https://github.com/nodejs/node/commit/d9b2ee4083)] - **meta**: add @nodejs/url as codeowner for node\_url\_pattern.\* (Efe Karasakal) [#64737](https://github.com/nodejs/node/pull/64737) +- \[[`2b43b78e82`](https://github.com/nodejs/node/commit/2b43b78e82)] - **meta**: lower stale to 3 months (Aviv Keller) [#64569](https://github.com/nodejs/node/pull/64569) +- \[[`0ffe8352ae`](https://github.com/nodejs/node/commit/0ffe8352ae)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#64315](https://github.com/nodejs/node/pull/64315) +- \[[`afd922cd8a`](https://github.com/nodejs/node/commit/afd922cd8a)] - **meta**: bump actions/checkout from 6.0.2 to 7.0.0 (dependabot\[bot]) [#64245](https://github.com/nodejs/node/pull/64245) +- \[[`b6149a2976`](https://github.com/nodejs/node/commit/b6149a2976)] - **meta**: bump actions/setup-python from 6.2.0 to 6.3.0 (dependabot\[bot]) [#64241](https://github.com/nodejs/node/pull/64241) +- \[[`8f4a5c622f`](https://github.com/nodejs/node/commit/8f4a5c622f)] - **meta**: update sccache version in test-linux-quic (René) [#64043](https://github.com/nodejs/node/pull/64043) +- \[[`9040b08696`](https://github.com/nodejs/node/commit/9040b08696)] - **net**: support TCP handle transfer on Windows (Matteo Collina) [#64460](https://github.com/nodejs/node/pull/64460) +- \[[`1216481a09`](https://github.com/nodejs/node/commit/1216481a09)] - **net**: support AF\_UNIX paths in net.BoundSocket (Guy Bedford) [#64399](https://github.com/nodejs/node/pull/64399) +- \[[`f6bf3f8a5d`](https://github.com/nodejs/node/commit/f6bf3f8a5d)] - **net**: support sync connect for BoundSocket (Guy Bedford) [#64375](https://github.com/nodejs/node/pull/64375) +- \[[`fb8a7e15ca`](https://github.com/nodejs/node/commit/fb8a7e15ca)] - **net**: make TCP Server and Socket transferable across worker threads (Matteo Collina) [#64225](https://github.com/nodejs/node/pull/64225) +- \[[`224d2c7886`](https://github.com/nodejs/node/commit/224d2c7886)] - **path**: add benchmarks for path.matchesGlob() (bq) [#63915](https://github.com/nodejs/node/pull/63915) +- \[[`980c651de5`](https://github.com/nodejs/node/commit/980c651de5)] - **permission**: add unique warning codes (David Evans) [#64414](https://github.com/nodejs/node/pull/64414) +- \[[`9f9a96030d`](https://github.com/nodejs/node/commit/9f9a96030d)] - **permission**: support v8.setHeapSnapshotNearHeapLimit (Ilyas Shabi) [#64808](https://github.com/nodejs/node/pull/64808) +- \[[`8a00872183`](https://github.com/nodejs/node/commit/8a00872183)] - **quic**: fix stop sending behaviour & callback (Tim Perry) [#64710](https://github.com/nodejs/node/pull/64710) +- \[[`7aab0c3183`](https://github.com/nodejs/node/commit/7aab0c3183)] - **quic**: fix coverage comment typo (Jungwon Sohn) [#64486](https://github.com/nodejs/node/pull/64486) +- \[[`b4ecb3040b`](https://github.com/nodejs/node/commit/b4ecb3040b)] - **quic**: fix segfault after fragmented client hello (Tim Perry) [#64720](https://github.com/nodejs/node/pull/64720) +- \[[`6386540dad`](https://github.com/nodejs/node/commit/6386540dad)] - **quic**: serialize stream reset code as string (한만욱) [#64577](https://github.com/nodejs/node/pull/64577) +- \[[`82717741c9`](https://github.com/nodejs/node/commit/82717741c9)] - **quic**: defer server session emit until TLS ClientHello is processed (Tim Perry) [#64132](https://github.com/nodejs/node/pull/64132) +- \[[`7cb3099907`](https://github.com/nodejs/node/commit/7cb3099907)] - **quic**: preserve session stats after close (한만욱) [#64489](https://github.com/nodejs/node/pull/64489) +- \[[`50e639b578`](https://github.com/nodejs/node/commit/50e639b578)] - **quic**: add support for TLS certificate compression (Sebastian Beltran) [#64434](https://github.com/nodejs/node/pull/64434) +- \[[`e2e28292cc`](https://github.com/nodejs/node/commit/e2e28292cc)] - **quic**: extract transport logic from Application to Session (Tim Perry) [#64127](https://github.com/nodejs/node/pull/64127) +- \[[`2ef4b7ebf2`](https://github.com/nodejs/node/commit/2ef4b7ebf2)] - **quic**: correct http3 callback and fix revealed errs (Marten Richter) [#64289](https://github.com/nodejs/node/pull/64289) +- \[[`a682b53456`](https://github.com/nodejs/node/commit/a682b53456)] - **quic**: fix no onstream handler crash quic (Efe) [#64158](https://github.com/nodejs/node/pull/64158) +- \[[`9445e2719a`](https://github.com/nodejs/node/commit/9445e2719a)] - **quic**: fix stall datagrams, if no pending streams (Marten Richter) [#64303](https://github.com/nodejs/node/pull/64303) +- \[[`2ea9d193bd`](https://github.com/nodejs/node/commit/2ea9d193bd)] - **quic**: fix potential crash from unobserved closed (Tim Perry) [#64134](https://github.com/nodejs/node/pull/64134) +- \[[`3b7f4fc1fb`](https://github.com/nodejs/node/commit/3b7f4fc1fb)] - **quic**: drop version negotiation packets with oversized CIDs (Mohamed Sayed) [#64228](https://github.com/nodejs/node/pull/64228) +- \[[`bd477a3202`](https://github.com/nodejs/node/commit/bd477a3202)] - **quic**: fixes undefined handle in QuicStream kInspect (Marten Richter) [#64170](https://github.com/nodejs/node/pull/64170) +- \[[`3dd04b3ec6`](https://github.com/nodejs/node/commit/3dd04b3ec6)] - **quic**: fix get\_reader bug that dropped data on FIN (Tim Perry) [#63946](https://github.com/nodejs/node/pull/63946) +- \[[`4be8abe8f9`](https://github.com/nodejs/node/commit/4be8abe8f9)] - **quic**: expose QUIC certificates as JS X509Certificate, not raw handles (Tim Perry) [#63191](https://github.com/nodejs/node/pull/63191) +- \[[`e264c5c0cb`](https://github.com/nodejs/node/commit/e264c5c0cb)] - **quic**: fix reader backpressure deadlock on idle connections (Tim Perry) [#63950](https://github.com/nodejs/node/pull/63950) +- \[[`2f749dde18`](https://github.com/nodejs/node/commit/2f749dde18)] - **quic**: impl. cb for http/3 settings/app. options (Marten Richter) [#63558](https://github.com/nodejs/node/pull/63558) +- \[[`5ca7ef3202`](https://github.com/nodejs/node/commit/5ca7ef3202)] - **quic**: fix broken listEndpoints export, test callbacks & nghttp3 include (Tim Perry) [#63874](https://github.com/nodejs/node/pull/63874) +- \[[`147150cfdd`](https://github.com/nodejs/node/commit/147150cfdd)] - **quic**: add listEndpoints API (James M Snell) [#63536](https://github.com/nodejs/node/pull/63536) +- \[[`3b59d12f5d`](https://github.com/nodejs/node/commit/3b59d12f5d)] - **quic**: add proper error codes & messages for QUIC failures (Tim Perry) [#63198](https://github.com/nodejs/node/pull/63198) +- \[[`b68f8eadb9`](https://github.com/nodejs/node/commit/b68f8eadb9)] - **quic**: support hostname verification (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483) +- \[[`7652bd9c6d`](https://github.com/nodejs/node/commit/7652bd9c6d)] - **quic**: add stream idle timeout (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483) +- \[[`e493f04214`](https://github.com/nodejs/node/commit/e493f04214)] - **quic**: add block list support for endpoints (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483) +- \[[`6d6cd45f8b`](https://github.com/nodejs/node/commit/6d6cd45f8b)] - **quic**: improve peer cert verification (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483) +- \[[`dbe0b371ee`](https://github.com/nodejs/node/commit/dbe0b371ee)] - **quic**: handle h3 max header size option (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483) +- \[[`39dca4150c`](https://github.com/nodejs/node/commit/39dca4150c)] - **quic**: add rate limiting docs (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483) +- \[[`c726a893d6`](https://github.com/nodejs/node/commit/c726a893d6)] - **quic**: cache timestamp for address lru cache (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483) +- \[[`11778a7925`](https://github.com/nodejs/node/commit/11778a7925)] - **quic**: add session creation rate limiting (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483) +- \[[`8107f1b3ed`](https://github.com/nodejs/node/commit/8107f1b3ed)] - **quic**: refine rate limiting (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483) +- \[[`3f0d7371e0`](https://github.com/nodejs/node/commit/3f0d7371e0)] - **quic**: flip preferred address policy default to 'ignore' (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483) +- \[[`97c8a96774`](https://github.com/nodejs/node/commit/97c8a96774)] - **quic**: add doc note about certificate size limitations (James M Snell) [#63483](https://github.com/nodejs/node/pull/63483) +- \[[`42aa3f6612`](https://github.com/nodejs/node/commit/42aa3f6612)] - **quic**: add applicationOptions to session (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`4c00ab9d29`](https://github.com/nodejs/node/commit/4c00ab9d29)] - **quic**: add getters for local and remote transport parameters (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`858b636576`](https://github.com/nodejs/node/commit/858b636576)] - **quic**: improve recv coalescing test sizes (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`84d3100256`](https://github.com/nodejs/node/commit/84d3100256)] - **quic**: add initial RTT option to session options (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`a2b6a81c66`](https://github.com/nodejs/node/commit/a2b6a81c66)] - **quic**: enable recvmmsg batching in Endpoint (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`46a0868994`](https://github.com/nodejs/node/commit/46a0868994)] - **quic**: improve stream header collection performance (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`bc7f4efdb7`](https://github.com/nodejs/node/commit/bc7f4efdb7)] - **quic**: coalesce received data into fewer buffers (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`f727efb8b2`](https://github.com/nodejs/node/commit/f727efb8b2)] - **quic**: apply multiple additional minor improvements (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`ee0a0f1540`](https://github.com/nodejs/node/commit/ee0a0f1540)] - **quic**: fix tests that are missing serverEndpoint close (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`f8a1fdad07`](https://github.com/nodejs/node/commit/f8a1fdad07)] - **quic**: fixup some v8:: qualifiers (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`c66605609c`](https://github.com/nodejs/node/commit/c66605609c)] - **quic**: fix premature unref of endpoint when listening (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`9a72949b0b`](https://github.com/nodejs/node/commit/9a72949b0b)] - **quic**: fixup UAFs in bindingdata, streams, and app (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`a4db12198e`](https://github.com/nodejs/node/commit/a4db12198e)] - **quic**: fix UAF in Application::OnTimeout() (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`0a11b2ccde`](https://github.com/nodejs/node/commit/0a11b2ccde)] - **quic**: improve the quic js structure (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`1bc25d2a03`](https://github.com/nodejs/node/commit/1bc25d2a03)] - **quic**: improve internal structure of QuicStream (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`69e48aed02`](https://github.com/nodejs/node/commit/69e48aed02)] - **quic**: add aliased struct arenas (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`6b7185351b`](https://github.com/nodejs/node/commit/6b7185351b)] - **quic**: add handshake timeout and default connection limits (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`91e3c39097`](https://github.com/nodejs/node/commit/91e3c39097)] - **quic**: fix crash in early handshake failure (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`098e3d715d`](https://github.com/nodejs/node/commit/098e3d715d)] - **quic**: eliminate per-received datagram allocation (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`53b05e2ab2`](https://github.com/nodejs/node/commit/53b05e2ab2)] - **quic**: cache the timestamp on send and receive (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`1592a11219`](https://github.com/nodejs/node/commit/1592a11219)] - **quic**: add support for future ECN marking (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`80e6bf9539`](https://github.com/nodejs/node/commit/80e6bf9539)] - **quic**: improve batching of packet sending (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`ff0cd5b95f`](https://github.com/nodejs/node/commit/ff0cd5b95f)] - **quic**: improve backend quic packet processing (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`c4eb6a95da`](https://github.com/nodejs/node/commit/c4eb6a95da)] - **quic**: send correct OpenSSL alert for ALPN mismatches (Tim Perry) [#63193](https://github.com/nodejs/node/pull/63193) +- \[[`575dc7d100`](https://github.com/nodejs/node/commit/575dc7d100)] - **quic**: fixup quic stream variable chunk len (James M Snell) [#63230](https://github.com/nodejs/node/pull/63230) +- \[[`2551f9e6dd`](https://github.com/nodejs/node/commit/2551f9e6dd)] - **quic**: remove unused env\_ variable in session\_manager.h/cc (James M Snell) [#63177](https://github.com/nodejs/node/pull/63177) +- \[[`bea62a14b3`](https://github.com/nodejs/node/commit/bea62a14b3)] - **quic**: ignore coverage for quic files (James M Snell) [#63149](https://github.com/nodejs/node/pull/63149) +- \[[`9788bbff97`](https://github.com/nodejs/node/commit/9788bbff97)] - **quic**: complete the internal implementation of QUIC (James M Snell) [#62876](https://github.com/nodejs/node/pull/62876) +- \[[`54c094d245`](https://github.com/nodejs/node/commit/54c094d245)] - **quic**: continue working on quic api bits (James M Snell) [#60123](https://github.com/nodejs/node/pull/60123) +- \[[`ea82bc418d`](https://github.com/nodejs/node/commit/ea82bc418d)] - **readline**: reduce createInterface overhead (Matteo Collina) [#64585](https://github.com/nodejs/node/pull/64585) +- \[[`90a8b23db0`](https://github.com/nodejs/node/commit/90a8b23db0)] - **sqlite**: invalidate sessions when closing database (Trivikram Kamat) [#64783](https://github.com/nodejs/node/pull/64783) +- \[[`6abd00ed65`](https://github.com/nodejs/node/commit/6abd00ed65)] - **sqlite**: check database state before calling SQLite (Trivikram Kamat) [#64812](https://github.com/nodejs/node/pull/64812) +- \[[`c2a52514d6`](https://github.com/nodejs/node/commit/c2a52514d6)] - **sqlite**: fix crash when a session outlives its database (Mohamed Sayed) [#63797](https://github.com/nodejs/node/pull/63797) +- \[[`f9126923ef`](https://github.com/nodejs/node/commit/f9126923ef)] - **sqlite**: fix use-after-free in Exec() and ApplyChangeset() (Matteo Collina) [#64535](https://github.com/nodejs/node/pull/64535) +- \[[`c010131bc3`](https://github.com/nodejs/node/commit/c010131bc3)] - **sqlite**: read column count after step in StatementSync.all() (Guilherme Araújo) [#64219](https://github.com/nodejs/node/pull/64219) +- \[[`782ad5d5b0`](https://github.com/nodejs/node/commit/782ad5d5b0)] - **src**: implement MemoryRetainer protocol for ByteSource (Filip Skokan) [#64660](https://github.com/nodejs/node/pull/64660) +- \[[`4afc15bf1d`](https://github.com/nodejs/node/commit/4afc15bf1d)] - **src**: avoid redundant KEM encapsulation copies (Filip Skokan) [#64553](https://github.com/nodejs/node/pull/64553) +- \[[`37085f850d`](https://github.com/nodejs/node/commit/37085f850d)] - **src**: fix crash when writing odd-length hex string via Writev (RajeshKumar11) [#63658](https://github.com/nodejs/node/pull/63658) +- \[[`f58ac8224c`](https://github.com/nodejs/node/commit/f58ac8224c)] - **src**: avoid using ToLocalChecked in crypto\_hash (James M Snell) [#64668](https://github.com/nodejs/node/pull/64668) +- \[[`05ec9c4771`](https://github.com/nodejs/node/commit/05ec9c4771)] - **src**: fix libuv assertion on windows (liuxingbaoyu) [#61999](https://github.com/nodejs/node/pull/61999) +- \[[`308a589ee9`](https://github.com/nodejs/node/commit/308a589ee9)] - **src**: avoid redundant DataPointer reallocations (Filip Skokan) [#64552](https://github.com/nodejs/node/pull/64552) +- \[[`3650fabcb4`](https://github.com/nodejs/node/commit/3650fabcb4)] - **src**: fix comment typos (Jungwon Sohn) [#64509](https://github.com/nodejs/node/pull/64509) +- \[[`06b3441ea2`](https://github.com/nodejs/node/commit/06b3441ea2)] - **src**: zero-initialize cap\_data in node\_credentials.cc (Samuel Kapust) [#64347](https://github.com/nodejs/node/pull/64347) +- \[[`bb24a88b99`](https://github.com/nodejs/node/commit/bb24a88b99)] - **src**: fix some typo errors and rename some variables (Archkon) [#64301](https://github.com/nodejs/node/pull/64301) +- \[[`ba36ab71fd`](https://github.com/nodejs/node/commit/ba36ab71fd)] - **src**: make node.config.json throw at unknown fields (Marco Ippolito) [#62992](https://github.com/nodejs/node/pull/62992) +- \[[`fbb3960189`](https://github.com/nodejs/node/commit/fbb3960189)] - **src**: show original file name in FileHandle GC close errors (Anna Henningsen) [#60593](https://github.com/nodejs/node/pull/60593) +- \[[`d53d582be7`](https://github.com/nodejs/node/commit/d53d582be7)] - **src,permission**: do not throw on denied access in audit mode (Adrián Estrada) [#64426](https://github.com/nodejs/node/pull/64426) +- \[[`cd1eb3e60b`](https://github.com/nodejs/node/commit/cd1eb3e60b)] - **(SEMVER-MINOR)** **src,permission**: add --permission-audit (RafaelGSS) [#61869](https://github.com/nodejs/node/pull/61869) +- \[[`b1596c2b65`](https://github.com/nodejs/node/commit/b1596c2b65)] - **stream**: cut per-chunk allocations in pipeTo (Matteo Collina) [#64890](https://github.com/nodejs/node/pull/64890) +- \[[`2cfa96f5cb`](https://github.com/nodejs/node/commit/2cfa96f5cb)] - **stream**: preserve push signal abort reason (Trivikram Kamat) [#64798](https://github.com/nodejs/node/pull/64798) +- \[[`fc80ff5f7a`](https://github.com/nodejs/node/commit/fc80ff5f7a)] - **stream**: skip zero-byte broadcast writes (Trivikram Kamat) [#64772](https://github.com/nodejs/node/pull/64772) +- \[[`486cff4c08`](https://github.com/nodejs/node/commit/486cff4c08)] - **stream**: honor AbortSignal in Writer.end() (Trivikram Kamat) [#64727](https://github.com/nodejs/node/pull/64727) +- \[[`59ef1789f7`](https://github.com/nodejs/node/commit/59ef1789f7)] - **stream**: use validateString for consumer encoding (Jungwon Sohn) [#64754](https://github.com/nodejs/node/pull/64754) +- \[[`8aba47536a`](https://github.com/nodejs/node/commit/8aba47536a)] - **stream**: use the ring buffer for pending BYOB pull-into descriptors (Matteo Collina) [#64818](https://github.com/nodejs/node/pull/64818) +- \[[`b20217cb56`](https://github.com/nodejs/node/commit/b20217cb56)] - **stream**: fix uncatchable error closing half-open Duplex.toWeb() writable (Mohamed Sayed) [#64161](https://github.com/nodejs/node/pull/64161) +- \[[`8accb0c4c0`](https://github.com/nodejs/node/commit/8accb0c4c0)] - **stream**: abort pending single-source merge reads (Trivikram Kamat) [#64445](https://github.com/nodejs/node/pull/64445) +- \[[`ed5b04027c`](https://github.com/nodejs/node/commit/ed5b04027c)] - **stream**: use RangeError for broadcast overflow (Trivikram Kamat) [#64420](https://github.com/nodejs/node/pull/64420) +- \[[`136d4e7628`](https://github.com/nodejs/node/commit/136d4e7628)] - **stream**: skip null output from stateful transforms (Trivikram Kamat) [#64462](https://github.com/nodejs/node/pull/64462) +- \[[`193091f1ba`](https://github.com/nodejs/node/commit/193091f1ba)] - **stream**: update iterable streams to use budget backpressure (James M Snell) [#64464](https://github.com/nodejs/node/pull/64464) +- \[[`e2b32fce77`](https://github.com/nodejs/node/commit/e2b32fce77)] - **stream**: remove custom `CloneableDOMException` implementation (Antoine du Hamel) [#64469](https://github.com/nodejs/node/pull/64469) +- \[[`d77788eafe`](https://github.com/nodejs/node/commit/d77788eafe)] - **stream**: fix drop-newest behavior in share() (Trivikram Kamat) [#64417](https://github.com/nodejs/node/pull/64417) +- \[[`de4ca2c962`](https://github.com/nodejs/node/commit/de4ca2c962)] - **stream**: fold desired-size check into WHATWG backpressure update (Matteo Collina) [#64451](https://github.com/nodejs/node/pull/64451) +- \[[`2a3babb8d7`](https://github.com/nodejs/node/commit/2a3babb8d7)] - **stream**: validate writer options signal (Trivikram Kamat) [#64385](https://github.com/nodejs/node/pull/64385) +- \[[`0ab8f269b0`](https://github.com/nodejs/node/commit/0ab8f269b0)] - **stream**: reject push iterator.throw() with error (Trivikram Kamat) [#64380](https://github.com/nodejs/node/pull/64380) +- \[[`262e6545d1`](https://github.com/nodejs/node/commit/262e6545d1)] - **stream**: simplify nested `PromisePrototypeThen`s (Antoine du Hamel) [#64470](https://github.com/nodejs/node/pull/64470) +- \[[`0ddfc6af91`](https://github.com/nodejs/node/commit/0ddfc6af91)] - **stream**: use the ring buffer for WHATWG stream request queues (Matteo Collina) [#64431](https://github.com/nodejs/node/pull/64431) +- \[[`a5e7d89f9e`](https://github.com/nodejs/node/commit/a5e7d89f9e)] - **stream**: validate writevSync chunks before queuing (Trivikram Kamat) [#64300](https://github.com/nodejs/node/pull/64300) +- \[[`8044f895bf`](https://github.com/nodejs/node/commit/8044f895bf)] - **stream**: speed up reads and iteration over default WHATWG streams (Matteo Collina) [#64320](https://github.com/nodejs/node/pull/64320) +- \[[`d4dfb66bdf`](https://github.com/nodejs/node/commit/d4dfb66bdf)] - **stream**: copy SAB-backed chunks in iter consumers (Trivikram Kamat) [#64382](https://github.com/nodejs/node/pull/64382) +- \[[`9c9ade337f`](https://github.com/nodejs/node/commit/9c9ade337f)] - **stream**: reject nested async streamables in from() (Trivikram Kamat) [#64352](https://github.com/nodejs/node/pull/64352) +- \[[`271c7454f4`](https://github.com/nodejs/node/commit/271c7454f4)] - **stream**: avoid draining merged iter sources (Trivikram Kamat) [#64293](https://github.com/nodejs/node/pull/64293) +- \[[`cbb2568a04`](https://github.com/nodejs/node/commit/cbb2568a04)] - **stream**: use ring buffer for WHATWG stream queues (Yagiz Nizipli) [#64312](https://github.com/nodejs/node/pull/64312) +- \[[`67688cc651`](https://github.com/nodejs/node/commit/67688cc651)] - **stream**: hoist repeated loads in readable paths (Yagiz Nizipli) [#64312](https://github.com/nodejs/node/pull/64312) +- \[[`3f8b446a67`](https://github.com/nodejs/node/commit/3f8b446a67)] - **stream**: prefer sync iterator in fromSync (Trivikram Kamat) [#64294](https://github.com/nodejs/node/pull/64294) +- \[[`3043b2a68a`](https://github.com/nodejs/node/commit/3043b2a68a)] - **stream**: speed up async iteration over WHATWG byte streams (Antoine du Hamel) [#64291](https://github.com/nodejs/node/pull/64291) +- \[[`870273ccde`](https://github.com/nodejs/node/commit/870273ccde)] - **stream**: reject iter consumers on abort (Trivikram Kamat) [#64066](https://github.com/nodejs/node/pull/64066) +- \[[`8a4a997f3e`](https://github.com/nodejs/node/commit/8a4a997f3e)] - **stream**: fix merge abort for pending sources (Trivikram Kamat) [#64013](https://github.com/nodejs/node/pull/64013) +- \[[`ac5e5d5dec`](https://github.com/nodejs/node/commit/ac5e5d5dec)] - **stream**: refactor unnecessary optional chaining away (Antoine du Hamel) [#64253](https://github.com/nodejs/node/pull/64253) +- \[[`cb298cfb15`](https://github.com/nodejs/node/commit/cb298cfb15)] - **stream**: normalize Broadcast.from() byte inputs (Trivikram Kamat) [#64082](https://github.com/nodejs/node/pull/64082) +- \[[`bbbb4aadef`](https://github.com/nodejs/node/commit/bbbb4aadef)] - **stream**: observe abort while awaiting pipeTo source (Trivikram Kamat) [#64015](https://github.com/nodejs/node/pull/64015) +- \[[`4387ad412f`](https://github.com/nodejs/node/commit/4387ad412f)] - **stream**: respect iter consumer abort signals (Trivikram Kamat) [#63997](https://github.com/nodejs/node/pull/63997) +- \[[`4ba1fa0062`](https://github.com/nodejs/node/commit/4ba1fa0062)] - **stream**: handle falsy push writer fail reasons (Trivikram Kamat) [#63569](https://github.com/nodejs/node/pull/63569) +- \[[`3b8c30c096`](https://github.com/nodejs/node/commit/3b8c30c096)] - **stream**: handle setEncoding after buffered data (Matteo Collina) [#63973](https://github.com/nodejs/node/pull/63973) +- \[[`97ef13c84e`](https://github.com/nodejs/node/commit/97ef13c84e)] - **stream**: keep overlapping broadcast reads pending (Trivikram Kamat) [#63500](https://github.com/nodejs/node/pull/63500) +- \[[`a46ddad9fa`](https://github.com/nodejs/node/commit/a46ddad9fa)] - **stream**: refine the stream/iter backpressure (James M Snell) [#63697](https://github.com/nodejs/node/pull/63697) +- \[[`557bf99245`](https://github.com/nodejs/node/commit/557bf99245)] - **stream**: remove transform-writer handling in pipeTo (Trivikram Kamat) [#63684](https://github.com/nodejs/node/pull/63684) +- \[[`24b7831a1a`](https://github.com/nodejs/node/commit/24b7831a1a)] - **stream**: fix pipeToSync byte accounting (Trivikram Kamat) [#63564](https://github.com/nodejs/node/pull/63564) +- \[[`3b5f1b56bc`](https://github.com/nodejs/node/commit/3b5f1b56bc)] - **stream**: reject pull() reads on abort (Trivikram Kamat) [#63498](https://github.com/nodejs/node/pull/63498) +- \[[`e48e287633`](https://github.com/nodejs/node/commit/e48e287633)] - **stream**: fast-path stateless transform flush results (Trivikram Kamat) [#63605](https://github.com/nodejs/node/pull/63605) +- \[[`f0ee316f45`](https://github.com/nodejs/node/commit/f0ee316f45)] - **stream**: handle sync writev completion in pipeTo (Trivikram Kamat) [#63561](https://github.com/nodejs/node/pull/63561) +- \[[`fbed90b2fb`](https://github.com/nodejs/node/commit/fbed90b2fb)] - **stream**: settle pending broadcast reads on return (Trivikram Kamat) [#63603](https://github.com/nodejs/node/pull/63603) +- \[[`568dcc250f`](https://github.com/nodejs/node/commit/568dcc250f)] - **stream**: serialize concurrent share consumer reads (Trivikram Kamat) [#63478](https://github.com/nodejs/node/pull/63478) +- \[[`5e2b4c4ade`](https://github.com/nodejs/node/commit/5e2b4c4ade)] - **stream**: fix lint error (Antoine du Hamel) [#63598](https://github.com/nodejs/node/pull/63598) +- \[[`74bd0cd35a`](https://github.com/nodejs/node/commit/74bd0cd35a)] - **stream**: reject pending reads on iterator throw (Trivikram Kamat) [#63555](https://github.com/nodejs/node/pull/63555) +- \[[`45780df841`](https://github.com/nodejs/node/commit/45780df841)] - **stream**: wait for push writer end fallback to drain (Trivikram Kamat) [#63503](https://github.com/nodejs/node/pull/63503) +- \[[`217b495e0a`](https://github.com/nodejs/node/commit/217b495e0a)] - **stream**: flush each fused stateless transform (Trivikram Kamat) [#63468](https://github.com/nodejs/node/pull/63468) +- \[[`2e8685592e`](https://github.com/nodejs/node/commit/2e8685592e)] - **stream**: avoid duplicate writes in toWritable (Trivikram Kamat) [#63360](https://github.com/nodejs/node/pull/63360) +- \[[`88a3392a78`](https://github.com/nodejs/node/commit/88a3392a78)] - **stream**: propagate abort reason in share and broadcast (Trivikram Kamat) [#63358](https://github.com/nodejs/node/pull/63358) +- \[[`fce3df74e9`](https://github.com/nodejs/node/commit/fce3df74e9)] - **stream**: disallow writing string chunk with 'buffer' encoding (René) [#63062](https://github.com/nodejs/node/pull/63062) +- \[[`5658c631fa`](https://github.com/nodejs/node/commit/5658c631fa)] - **stream**: align `Readable.toWeb` termination with eos (ikeyan) [#62394](https://github.com/nodejs/node/pull/62394) +- \[[`02a51a746b`](https://github.com/nodejs/node/commit/02a51a746b)] - **stream**: add sync iterable fast path to pipeTo (Trivikram Kamat) [#63318](https://github.com/nodejs/node/pull/63318) +- \[[`4c9f3edb64`](https://github.com/nodejs/node/commit/4c9f3edb64)] - **stream**: fix merge handling for object-like sources (Trivikram Kamat) [#63356](https://github.com/nodejs/node/pull/63356) +- \[[`c50d8e49cc`](https://github.com/nodejs/node/commit/c50d8e49cc)] - **stream**: limit iter from sync iterable batches (Trivikram Kamat) [#63324](https://github.com/nodejs/node/pull/63324) +- \[[`1d7c86d577`](https://github.com/nodejs/node/commit/1d7c86d577)] - **stream**: cache minimum cursor count in broadcast (Trivikram Kamat) [#63322](https://github.com/nodejs/node/pull/63322) +- \[[`ec2666edbe`](https://github.com/nodejs/node/commit/ec2666edbe)] - **stream**: avoid retrying accepted pipeTo writes (Trivikram Kamat) [#63297](https://github.com/nodejs/node/pull/63297) +- \[[`f63143fd83`](https://github.com/nodejs/node/commit/f63143fd83)] - **stream**: validate broadcast writer writev chunks (Trivikram Kamat) [#63300](https://github.com/nodejs/node/pull/63300) +- \[[`944470b08a`](https://github.com/nodejs/node/commit/944470b08a)] - **stream**: uncork fromWritable writev on chunk error (Trivikram Kamat) [#63295](https://github.com/nodejs/node/pull/63295) +- \[[`ae79f2b67a`](https://github.com/nodejs/node/commit/ae79f2b67a)] - **stream**: validate fromWritable() options before cache (Trivikram Kamat) [#63278](https://github.com/nodejs/node/pull/63278) +- \[[`c98cc67f33`](https://github.com/nodejs/node/commit/c98cc67f33)] - **stream**: optimize single-slot push queue drain (Trivikram Kamat) [#63274](https://github.com/nodejs/node/pull/63274) +- \[[`9a45ff5d8f`](https://github.com/nodejs/node/commit/9a45ff5d8f)] - **stream**: preserve toReadableSync batch after backpressure (Trivikram Kamat) [#63276](https://github.com/nodejs/node/pull/63276) +- \[[`eb72fe94fc`](https://github.com/nodejs/node/commit/eb72fe94fc)] - **stream**: cache minimum cursor count in share (Trivikram Kamat) [#63262](https://github.com/nodejs/node/pull/63262) +- \[[`b57b51eeed`](https://github.com/nodejs/node/commit/b57b51eeed)] - **stream**: minor stream/iter implementation edits (René) [#63132](https://github.com/nodejs/node/pull/63132) +- \[[`274b3a2ea1`](https://github.com/nodejs/node/commit/274b3a2ea1)] - **stream**: remove redundant method check from iter.pipeToSync (René) [#63099](https://github.com/nodejs/node/pull/63099) +- \[[`baf98faa06`](https://github.com/nodejs/node/commit/baf98faa06)] - **stream**: add stream/iter to classic stream adapters (James M Snell) [#62469](https://github.com/nodejs/node/pull/62469) +- \[[`28dc85d8d2`](https://github.com/nodejs/node/commit/28dc85d8d2)] - **(SEMVER-MINOR)** **stream**: add stream/iter Implementation (James M Snell) [#62066](https://github.com/nodejs/node/pull/62066) +- \[[`125c19da43`](https://github.com/nodejs/node/commit/125c19da43)] - **stream, quic**: update iterable streams backpressure (James M Snell) [#64464](https://github.com/nodejs/node/pull/64464) +- \[[`11d1bd3ba7`](https://github.com/nodejs/node/commit/11d1bd3ba7)] - **test**: split test-embedding.js and run tests in parallel (Joyee Cheung) [#61571](https://github.com/nodejs/node/pull/61571) +- \[[`e59346b704`](https://github.com/nodejs/node/commit/e59346b704)] - **test**: ensure assertions are reached on all tests (Antoine du Hamel) [#64716](https://github.com/nodejs/node/pull/64716) +- \[[`42a967d7ed`](https://github.com/nodejs/node/commit/42a967d7ed)] - **test**: unflake debugger and REPL tests (Matteo Collina) [#64718](https://github.com/nodejs/node/pull/64718) +- \[[`d80a45fdc4`](https://github.com/nodejs/node/commit/d80a45fdc4)] - **test**: update WPT for url to 4832db4761 (Node.js GitHub Bot) [#64829](https://github.com/nodejs/node/pull/64829) +- \[[`7264efb21b`](https://github.com/nodejs/node/commit/7264efb21b)] - **test**: update WPT for url to b63305b743 (Node.js GitHub Bot) [#64790](https://github.com/nodejs/node/pull/64790) +- \[[`539f5dc8f9`](https://github.com/nodejs/node/commit/539f5dc8f9)] - **test**: cover worker throwing primitive values (varshitha) [#64365](https://github.com/nodejs/node/pull/64365) +- \[[`087d9e8dd0`](https://github.com/nodejs/node/commit/087d9e8dd0)] - **test**: mark test-repl-user-error-handler as flaky (Aviv Keller) [#64612](https://github.com/nodejs/node/pull/64612) +- \[[`dd1e7139a5`](https://github.com/nodejs/node/commit/dd1e7139a5)] - **test**: update quic tests for stream/iter update (James M Snell) [#64464](https://github.com/nodejs/node/pull/64464) +- \[[`eee0e84537`](https://github.com/nodejs/node/commit/eee0e84537)] - **test**: fix flaky http2 socket proxy test (Tim Perry) [#64673](https://github.com/nodejs/node/pull/64673) +- \[[`a5ce44dd75`](https://github.com/nodejs/node/commit/a5ce44dd75)] - **test**: apply correction to comment (Rich Trott) [#64524](https://github.com/nodejs/node/pull/64524) +- \[[`da8508c5a0`](https://github.com/nodejs/node/commit/da8508c5a0)] - **test**: keep finalization before-exit ref alive (Tim Perry) [#64521](https://github.com/nodejs/node/pull/64521) +- \[[`14b710c415`](https://github.com/nodejs/node/commit/14b710c415)] - **test**: copyedit `test-tls-psk-alpn-callback-exception-handling` (Antoine du Hamel) [#63485](https://github.com/nodejs/node/pull/63485) +- \[[`99b7382c6a`](https://github.com/nodejs/node/commit/99b7382c6a)] - **test**: fix stale async-context-frame status entries (Kirill Saied) [#64141](https://github.com/nodejs/node/pull/64141) +- \[[`6da6ca730d`](https://github.com/nodejs/node/commit/6da6ca730d)] - **test**: update WPT for urlpattern to 5847ee5cfa (Node.js GitHub Bot) [#64436](https://github.com/nodejs/node/pull/64436) +- \[[`73bf0f07f1`](https://github.com/nodejs/node/commit/73bf0f07f1)] - **test**: update WPT for WebCryptoAPI to ec2fee39a4 (Node.js GitHub Bot) [#64435](https://github.com/nodejs/node/pull/64435) +- \[[`9a7ec52e6f`](https://github.com/nodejs/node/commit/9a7ec52e6f)] - **test**: fix flaky http2 maxOriginSetSize test (Tim Perry) [#64407](https://github.com/nodejs/node/pull/64407) +- \[[`59af7e0ed9`](https://github.com/nodejs/node/commit/59af7e0ed9)] - **test**: fix 2nd flaky blob test case (Tim Perry) [#64391](https://github.com/nodejs/node/pull/64391) +- \[[`7fd5f66376`](https://github.com/nodejs/node/commit/7fd5f66376)] - **test**: fix flaky watch + cwd + argv test-runner test (Tim Perry) [#64372](https://github.com/nodejs/node/pull/64372) +- \[[`d5b47d2fae`](https://github.com/nodejs/node/commit/d5b47d2fae)] - **test**: normalize Windows crash in debugger test normalization (Joyee Cheung) [#64332](https://github.com/nodejs/node/pull/64332) +- \[[`a8ae44096d`](https://github.com/nodejs/node/commit/a8ae44096d)] - **test**: unmark flaky http2-large-file for Win (Kirill Saied) [#64255](https://github.com/nodejs/node/pull/64255) +- \[[`8461d18597`](https://github.com/nodejs/node/commit/8461d18597)] - **test**: increase timeout in consumed-timeout test (Trivikram Kamat) [#64204](https://github.com/nodejs/node/pull/64204) +- \[[`af52410d70`](https://github.com/nodejs/node/commit/af52410d70)] - **test**: handle null stdio streams in spawnSyncAndAssert helper (Joyee Cheung) [#64273](https://github.com/nodejs/node/pull/64273) +- \[[`0ea079be7b`](https://github.com/nodejs/node/commit/0ea079be7b)] - **test**: remove impact of tier-up changes in worker stack size test (Joyee Cheung) [#64271](https://github.com/nodejs/node/pull/64271) +- \[[`1bde0ef053`](https://github.com/nodejs/node/commit/1bde0ef053)] - **test**: update WPT for WebCryptoAPI to 0c413fb56b (Node.js GitHub Bot) [#63647](https://github.com/nodejs/node/pull/63647) +- \[[`f32b412867`](https://github.com/nodejs/node/commit/f32b412867)] - **test**: get rid of unnecessary `AbortController` instanciations (Antoine du Hamel) [#63489](https://github.com/nodejs/node/pull/63489) +- \[[`8cbd90161b`](https://github.com/nodejs/node/commit/8cbd90161b)] - **test**: update WPT for wasm/jsapi to 288c467d35 (Node.js GitHub Bot) [#63136](https://github.com/nodejs/node/pull/63136) +- \[[`f200aaccf0`](https://github.com/nodejs/node/commit/f200aaccf0)] - **test**: fixup quic tests (James M Snell) [#63267](https://github.com/nodejs/node/pull/63267) +- \[[`14c547351b`](https://github.com/nodejs/node/commit/14c547351b)] - **(SEMVER-MINOR)** **test**: add tests for experimental stream/iter implementation (James M Snell) [#62066](https://github.com/nodejs/node/pull/62066) +- \[[`2cc54e1793`](https://github.com/nodejs/node/commit/2cc54e1793)] - **test**: skip quic tests that IBM i does not support (SRAVANI GUNDEPALLI) [#60160](https://github.com/nodejs/node/pull/60160) +- \[[`8ec80b311b`](https://github.com/nodejs/node/commit/8ec80b311b)] - **test\_runner**: wait for filtered suite build (semimikoh) [#64208](https://github.com/nodejs/node/pull/64208) +- \[[`9ed7146851`](https://github.com/nodejs/node/commit/9ed7146851)] - **test\_runner**: convert to uint during deserialization (Aviv Keller) [#64706](https://github.com/nodejs/node/pull/64706) +- \[[`d31c168740`](https://github.com/nodejs/node/commit/d31c168740)] - **(SEMVER-MINOR)** **test\_runner**: add context.log() and test:log event (Moshe Atlow) [#64389](https://github.com/nodejs/node/pull/64389) +- \[[`add1edbc42`](https://github.com/nodejs/node/commit/add1edbc42)] - **(SEMVER-MINOR)** **test\_runner**: report `entryFile` in `TestStream` events (Moshe Atlow) [#64309](https://github.com/nodejs/node/pull/64309) +- \[[`8d97dee696`](https://github.com/nodejs/node/commit/8d97dee696)] - **tests**: start adding quic test server utilities (James M Snell) [#59946](https://github.com/nodejs/node/pull/59946) +- \[[`e5278b7f7d`](https://github.com/nodejs/node/commit/e5278b7f7d)] - **timers**: do not retain a reference to the async store after firing (Matteo Collina) [#53443](https://github.com/nodejs/node/pull/53443) +- \[[`e277bc4608`](https://github.com/nodejs/node/commit/e277bc4608)] - **tls**: fix SNICallback certificate selection (Matteo Collina) [#64700](https://github.com/nodejs/node/pull/64700) +- \[[`b9104decc3`](https://github.com/nodejs/node/commit/b9104decc3)] - **tls**: match IPv6 hosts against IP-Address SANs (Pascal Garber) [#64145](https://github.com/nodejs/node/pull/64145) +- \[[`b50139e89f`](https://github.com/nodejs/node/commit/b50139e89f)] - **tools**: bump the eslint group in /tools/eslint with 4 updates (dependabot\[bot]) [#64928](https://github.com/nodejs/node/pull/64928) +- \[[`5460c464a0`](https://github.com/nodejs/node/commit/5460c464a0)] - **tools**: bump brace-expansion from 5.0.7 to 5.0.9 in /tools/eslint (dependabot\[bot]) [#64904](https://github.com/nodejs/node/pull/64904) +- \[[`f8a13811cd`](https://github.com/nodejs/node/commit/f8a13811cd)] - **tools**: use 'readonly' for EventSource global (Honey Tyagi) [#64787](https://github.com/nodejs/node/pull/64787) +- \[[`6e10012c0d`](https://github.com/nodejs/node/commit/6e10012c0d)] - **tools**: bump brace-expansion from 5.0.6 to 5.0.7 in /tools/eslint (dependabot\[bot]) [#64636](https://github.com/nodejs/node/pull/64636) +- \[[`d66b7588ac`](https://github.com/nodejs/node/commit/d66b7588ac)] - **tools**: reference 'git node land' in PR-URL: error message in merge.sh (Stewart X Addison) [#64495](https://github.com/nodejs/node/pull/64495) +- \[[`5d90e48175`](https://github.com/nodejs/node/commit/5d90e48175)] - **tools**: disable zipping tarballs on GHA (Antoine du Hamel) [#64423](https://github.com/nodejs/node/pull/64423) +- \[[`8a909f4540`](https://github.com/nodejs/node/commit/8a909f4540)] - **tools**: fix redundant conditions in v8.gyp for riscv64 and loong64 (Jamie Magee) [#62608](https://github.com/nodejs/node/pull/62608) +- \[[`9e171710fa`](https://github.com/nodejs/node/commit/9e171710fa)] - **tools**: remove `envinfo` from our workflows (Antoine du Hamel) [#64259](https://github.com/nodejs/node/pull/64259) +- \[[`3fb722054f`](https://github.com/nodejs/node/commit/3fb722054f)] - **tools**: avoid test/fixtures/wpt/README.md conflicts (Filip Skokan) [#63938](https://github.com/nodejs/node/pull/63938) +- \[[`5755712920`](https://github.com/nodejs/node/commit/5755712920)] - **tools**: add lint rule for aborted AbortController (Trivikram Kamat) [#63541](https://github.com/nodejs/node/pull/63541) +- \[[`e88d5b78bc`](https://github.com/nodejs/node/commit/e88d5b78bc)] - **typings**: add heap\_utils internalBinding types (Donghoon Kang) [#64816](https://github.com/nodejs/node/pull/64816) +- \[[`ae93bc8ad1`](https://github.com/nodejs/node/commit/ae93bc8ad1)] - **typings**: remove isDataView from types binding (Archkon) [#64738](https://github.com/nodejs/node/pull/64738) +- \[[`c00bd1427d`](https://github.com/nodejs/node/commit/c00bd1427d)] - **url**: create URLPattern result properties in WebIDL order (Archkon) [#64733](https://github.com/nodejs/node/pull/64733) +- \[[`8a07969e28`](https://github.com/nodejs/node/commit/8a07969e28)] - **util**: make MIMEParams accessors case-insensitive (Daijiro Wachi) [#64123](https://github.com/nodejs/node/pull/64123) +- \[[`bf86741167`](https://github.com/nodejs/node/commit/bf86741167)] - **v8**: report minor mark-sweep in GCProfiler (Archkon) [#64688](https://github.com/nodejs/node/pull/64688) +- \[[`d937c8c6cd`](https://github.com/nodejs/node/commit/d937c8c6cd)] - **(SEMVER-MINOR)** **wasm**: enable JSPI (Guy Bedford) [#59941](https://github.com/nodejs/node/pull/59941) +- \[[`9016ddabb9`](https://github.com/nodejs/node/commit/9016ddabb9)] - **wasm**: register missing SetURL function (Archkon) [#64679](https://github.com/nodejs/node/pull/64679) +- \[[`e599b9428b`](https://github.com/nodejs/node/commit/e599b9428b)] - **zlib**: validate pledgedSrcSize as a safe integer (Archkon) [#64604](https://github.com/nodejs/node/pull/64604) +- \[[`1f1adc89da`](https://github.com/nodejs/node/commit/1f1adc89da)] - **zlib**: accept ArrayBuffer dictionary in Zstd (Ryuhei Shima) [#64599](https://github.com/nodejs/node/pull/64599) +- \[[`0ee91ead8b`](https://github.com/nodejs/node/commit/0ee91ead8b)] - **zlib**: reject truncated zstd input (Archkon) [#64593](https://github.com/nodejs/node/pull/64593) + +Windows 64-bit Installer: https://nodejs.org/dist/v24.20.0/node-v24.20.0-x64.msi \ +Windows ARM 64-bit Installer: https://nodejs.org/dist/v24.20.0/node-v24.20.0-arm64.msi \ +Windows 64-bit Binary: https://nodejs.org/dist/v24.20.0/win-x64/node.exe \ +Windows ARM 64-bit Binary: https://nodejs.org/dist/v24.20.0/win-arm64/node.exe \ +macOS 64-bit Installer: https://nodejs.org/dist/v24.20.0/node-v24.20.0.pkg \ +macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v24.20.0/node-v24.20.0-darwin-arm64.tar.gz \ +macOS Intel 64-bit Binary: https://nodejs.org/dist/v24.20.0/node-v24.20.0-darwin-x64.tar.gz \ +Linux 64-bit Binary: https://nodejs.org/dist/v24.20.0/node-v24.20.0-linux-x64.tar.xz \ +Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v24.20.0/node-v24.20.0-linux-ppc64le.tar.xz \ +Linux s390x 64-bit Binary: https://nodejs.org/dist/v24.20.0/node-v24.20.0-linux-s390x.tar.xz \ +AIX 64-bit Binary: https://nodejs.org/dist/v24.20.0/node-v24.20.0-aix-ppc64.tar.gz \ +ARMv8 64-bit Binary: https://nodejs.org/dist/v24.20.0/node-v24.20.0-linux-arm64.tar.xz \ +Source Code: https://nodejs.org/dist/v24.20.0/node-v24.20.0.tar.gz \ +Other release files: https://nodejs.org/dist/v24.20.0/ \ +Documentation: https://nodejs.org/docs/v24.20.0/api/ + +### SHASUMS + +``` +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +14b5bd7ad40ab5f4715fb4e2f964858d820d9425fe291d3d65f98926e6b89c1e node-v24.20.0-aix-ppc64.tar.gz +15130c76b7a3a5f58233a3c383944ebd0da924d2fc80e50916769a4b7b9af6f8 node-v24.20.0-arm64.msi +40e5607e5ecb3db9192723776da2d75d966260fc74a7a9e731c1bd67dda96bc8 node-v24.20.0-darwin-arm64.tar.gz +b7bf7707070b950ba1ec5f1af3bb6de0f2b1962c5033973d94068ab021ef3014 node-v24.20.0-darwin-arm64.tar.xz +9e5b2644cf107befb6aefca676b96d3296bc10138096f022ed378d6233ed81f4 node-v24.20.0-darwin-x64.tar.gz +26fc30891004603d094eed11de5efcd03bbd2efbc35c177fc72648d5d7a7701b node-v24.20.0-darwin-x64.tar.xz +7b2141e77e66ab23ead6b200c546afc5837136e3075d8a3ac5a67e540dcc59c1 node-v24.20.0-headers.tar.gz +cb5420ff135b64fdcb3d050223146ecc3e257c413abe915604d48e589498ae47 node-v24.20.0-headers.tar.xz +3515603e2487879a39bc75716f1a2affd027500c64ba50e845cf72cb33219013 node-v24.20.0-linux-arm64.tar.gz +5f4ddab610c1ab2016b3c227cebdbf6d9495161487e4739c7b90090595f465f7 node-v24.20.0-linux-arm64.tar.xz +a734b36c8d1d16ce455c0eb9c329b07dd121c2c8554355064a9861bc96c3adcc node-v24.20.0-linux-ppc64le.tar.gz +341307dcee20d88332307008f2a480450c54f42d5149e7c4c8a18d937e37b5c1 node-v24.20.0-linux-ppc64le.tar.xz +d8c224b46ef01f078a523d9b7db79282306fae281e986a15a2dbffe947c5301e node-v24.20.0-linux-s390x.tar.gz +ca381121cb5a8d38c2954b6699cea09a83fba1b03141a71a8348f08df02de245 node-v24.20.0-linux-s390x.tar.xz +d6e6d1bbb9ad4acb16d580b89be8a9c9a7e490926e93bd3c30a20d46e152bf8a node-v24.20.0-linux-x64-musl.tar.gz +3b69570a286102090f592447cdfd53abbaa928f20f895cc1df2757b1281dc52a node-v24.20.0-linux-x64-musl.tar.xz +855d581f8a4eb1a8117e3426de25fe02770592febcfb31369aee1ffbfee9e8ec node-v24.20.0-linux-x64.tar.gz +2f2c0da162318f0de47665410c7c8c2ed3d36c8f3105de4bbc61176c70a7cbf2 node-v24.20.0-linux-x64.tar.xz +15097cd9371fc1f0ed49ea8b36d753031a232ae1cf5927c9df358a0e692ae1b7 node-v24.20.0-win-arm64.7z +31c6799744de8a54601643098040c68c3697e56c94e407d61d0e5fa5f34191d7 node-v24.20.0-win-arm64.zip +6996eedc271e26371c6b2a284461b01b97fcec2d9f770d003b0408657cb3496e node-v24.20.0-win-x64.7z +6cac9ffbca8f6a47091e4b5c772e0606049c3871cb67d900c0cedde630e545ba node-v24.20.0-win-x64.zip +28b69132c35ccc033bf8f2a67cd10c9d75ef5822593363309da448f2afff2d8a node-v24.20.0-x64.msi +8b7ee3d72b265866f7d5bbb705c898720613fde3703ebb4c1c0a863aedef613c node-v24.20.0.pkg +987113866ab9018998f09f74072afe7136f3da8b934e35d89531e1e49890062f node-v24.20.0.tar.gz +2732fc3f588dd335cd6779c06864f7cd424bb1b5ff9a1743059a66c54f9ca4a1 node-v24.20.0.tar.xz +92949e7764e56e305cb84ea3d575912e822c79e85599362e8d408b04b9ffd326 win-arm64/node.exe +88dea6ff6656445ee22ed8843816d8d90d707c3d05228bd0a3ad56ea30e8a395 win-arm64/node.lib +d5e5a9043145392e4db85567d34abf7c070126ad35d2a7ee40399af2a5482f04 win-arm64/node_pdb.7z +07725b0c16bd32876f44a0315e251aafa84568b0b1d98c9b76991873174e2637 win-arm64/node_pdb.zip +5c976096e04e5c2c1f091938926234cc9fbebfe9787ddd149351b3b0ecc707b5 win-x64/node.exe +63ec831bbf164d1b23197d6fac1944dfb146534e332889ca0755d250e8dedff9 win-x64/node.lib +491cc4a1487a8b2e32dd469a1d5fd59296bd96ae009fc426309354f4aaa5d396 win-x64/node_pdb.7z +27a5ed0f346bb2ca58e6429a2f0082016433126e80c646b0def96cb547422ea1 win-x64/node_pdb.zip + +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQRb6KP2yKXAHRBsCtggsaOQsWjTVgUCao73YAAKCRAgsaOQsWjT +VgY5AP9hgzGRThBJscP/dA2MkF0KwXP7K989SLyPFpGMqtjdCwEA+PqpfxC5m4Ul +IG1x2GxuiSI9aeLxQQ5KiojtpyQalw4= +=byQt +-----END PGP SIGNATURE----- +```