tech_surveillance5941 wordsRead on Arc Codex

Node.js 24.20.0 (LTS)

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: addusing scopes toAsyncLocalStorage (Stephen Belanger) #61674 - [ e2eb88b36b ] - (SEMVER-MINOR) buffer: addend 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: addpermission.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: addnode:stream/iter implementation (James M Snell) #62066 - [ d31c168740 ] - (SEMVER-MINOR) test_runner: addcontext.log() and test:log event (Moshe Atlow) #64389 - [ add1edbc42 ] - (SEMVER-MINOR) test_runner: reportentryFile inTestStream 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 toca /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 fromstream_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 instream_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: useassignFunctionName 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: addnode-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 customCloneableDOMException 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 nestedPromisePrototypeThen s (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: alignReadable.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: copyedittest-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 unnecessaryAbortController 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: reportentryFile inTestStream 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: removeenvinfo 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-----

How it works

Once you click Generate, Ollama reads this article and crafts 5 comprehension questions. Your answers are graded against the article content — general knowledge won't be enough. Score 70+ to count toward your certificate.

Questions are cached — you'll always get the same 5 for this article.