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