Updatify / Node.js | Release notes

Create your changelog

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

Update Jul 8, 2026 tracked by Updatify

2026-07-08, Version 26.5.0 (Current), @richardlau

Notable Changes

New release key

Welcome to our newest releaser, Stewart X Addison. Future Node.js releases may be signed with his release key, 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD.

Other notable changes

  • [55f48446c7] - (SEMVER-MINOR) buffer: implement blob.textStream() (Matthew Aitken) #64036
  • [b373202efc] - (SEMVER-MINOR) esm: add --experimental-import-text flag (Efe) #62300
  • [39e0c14455] - (SEMVER-MINOR) perf_hooks: sample delay per event loop iteration (Pablo Erhard) #62935
  • [999a83c937] - (SEMVER-MINOR) stream: expose ReadableStreamTee (Matteo Collina) #64195
  • [4e0236dc3d] - (SEMVER-MINOR) tls: report negotiated TLS groups (Filip Skokan) #64119

Commits

  • [87648c0a6c] - benchmark: trim down the argon2 sets (Filip Skokan) #64218
  • [a483bfd3f0] - buffer: remove unreachable overflow check in atob (haramjeong) #60161
  • [6d14279688] - buffer: add fast api for isUtf8 and isAscii (Gürgün Dayıoğlu) #64169
  • [55f48446c7] - (SEMVER-MINOR) buffer: implement blob.textStream() (Matthew Aitken) #64036
  • [a67d9a7a44] - build: allow linting node.1 (Aviv Keller) #64157
  • [06c1fbc25b] - build: enable Maglev for riscv64 (Jamie Magee) #62605
  • [518309c363] - build: suppress clang errors building libffi on Windows (René) #64222
  • [6a80ab485c] - build: add manually-dispatched stress-test workflow (Joyee Cheung) #64118
  • [f4e7bf1f1c] - build: pin envinfo versions in github actions (Joyee Cheung) #64117
  • [66f6ac0d86] - build: support setting an emulator from configure script (Ivan Trubach) #53899
  • [7f26c54aa6] - child_process: fix permission model propagation via NODE_OPTIONS (Matteo Collina) #63972
  • [32bb554f5b] - crypto: fix large DH generator validation (Tobias Nießen) #64092
  • [0908d76ef6] - crypto: reject small-order EdDSA points during verify (Filip Skokan) #64026
  • [7f7e5863c2] - deps: update undici to 8.7.0 (Node.js GitHub Bot) #64282
  • [af91029801] - deps: update nghttp3 to 1.17.0 (Node.js GitHub Bot) #64182
  • [2e500ba7b0] - deps: update googletest to 8b53336594cc52213c6c2c7a0b29194fa896d039 (Node.js GitHub Bot) #64181
  • [74e3aa24ba] - deps: update sqlite to 3.53.3 (Node.js GitHub Bot) #64180
  • [c7e57f55a7] - deps: c-ares: cherry-pick 8ba37af8e3fb (René) #64110
  • [879fdc4daf] - deps: V8: backport da20a197a7f9 (Kevin Gibbons) #64101
  • [a640543a7c] - deps: V8: cherry-pick 0cc9eb22c0b0 (Kevin Gibbons) #64101
  • [feefd179e5] - deps: V8: cherry-pick 1a391f98cc7a (Kevin Gibbons) #64101
  • [8ef643d4b0] - deps: update googletest to 0b1e895ba4226c2fda5ee0178c9b5b1195a741aa (Node.js GitHub Bot) #64039
  • [9e50bb0655] - dgram: skip dns.lookup() for literal IP addresses (Ruben Bridgewater) #64133
  • [dc052c095c] - diagnostics_channel: return original thenable (Stephen Belanger) #62407
  • [a22a840293] - doc: clarify QUIC stream state wording (EduardF1) #63660
  • [8d4bec2d71] - doc: update Http2SecureServer.on(“timeout”) default value (YuSheng Chen) #64187
  • [da88f70afa] - doc: add note on visibility of CI failures to new contributor guide (Stewart X Addison) #64256
  • [20ce359ccb] - doc: clarify HTTP/1.1 response ordering (Matteo Collina) #64213
  • [05eae2835c] - doc: recommend node-stress-single-test for flaky tests (Trivikram Kamat) #64223
  • [3966eb67e7] - doc: fix typo in examples (Vas Sudanagunta) #64184
  • [12a2b9daa3] - doc: fix typo in node-config-schema.json (Hamid Reza Ghavami) #64188
  • [0854482671] - doc: clarify defense-in-depth issues (Matteo Collina) #64215
  • [ef4915fc3a] - doc: fix Fast FFI argument count in ffi.md (Daijiro Wachi) #63960
  • [bb2eed863c] - doc: add sxa GPG key (ed25519) (Stewart X Addison) #64193
  • [b7bf6e3a06] - doc: add guide and answers to FAQs for first-time contributors (Joyee Cheung) #63685
  • [ff537ba858] - doc: update Http2Server.close & Http2SecureServer.close (YuSheng Chen) #63298
  • [f3db304588] - doc: update list of people in SECURITY.md (Richard Lau) #64152
  • [2a126647b0] - doc: clarify vfs is not a sandbox (Matteo Collina) #64143
  • [85fc79dd9b] - doc: fix broken links and duplicate stability label (Antoine du Hamel) #64130
  • [189e830eb3] - doc: add missing option to man page (Richard Lau) #64156
  • [7a16ccccd0] - doc: announce upcoming end of tier 2 support for macOS x64 (Antoine du Hamel) #63931
  • [d5f826045f] - doc: update toolchain for official AIX releases (Richard Lau) #64068
  • [60abc4400f] - doc: fix callback example import in fs docs (Kamal Rawal) #63912
  • [e470c74a6c] - doc: fix keepAliveTimeout default in http.createServer options (Jahanzaib iqbal) #63974
  • [851b460583] - esm: improve ERR_REQUIRE_ASYNC_MODULE (Joyee Cheung) #64260
  • [0cd443df39] - esm: print required top-level await locations without evaluating (Joyee Cheung) #64154
  • [b373202efc] - (SEMVER-MINOR) esm: add --experimental-import-text flag (Efe) #62300
  • [eacfbd0ca5] - http: add CONNECT method handling for default Host header with proxy (Archkon) #64114
  • [aeb539a383] - http: fix drain event with cork/uncork (David Evans) #64038
  • [8e8874b216] - http: document and validate options.path when it’s in absolute-form (Joyee Cheung) #64108
  • [eb2e96bc28] - inspector: fix crash when writing to closed inspector socket (ympark2011) #64209
  • [243b0e4e57] - lib: reject string “0” in validatePort when allowZero is false (Daijiro Wachi) #64174
  • [34a537c0ed] - lib: use __proto__: null when calling ObjectDefineProperty (Antoine du Hamel) #64239
  • [1f72393f19] - lib: lazily initialize kEvents and kHandlers maps (Guilherme Araújo) #63702
  • [92a3dc3191] - lib,permission: fix addon permission drop (Martin Wagner) #64007
  • [87b8f2a296] - meta: fix linter warning in stale.yml (Antoine du Hamel) #64281
  • [829c4a5913] - meta: bump actions/cache from 5.0.5 to 6.1.0 (dependabot[bot]) #64248
  • [0808dcd31c] - meta: bump github/codeql-action/autobuild from 4.36.1 to 4.36.2 (dependabot[bot]) #64247
  • [64aa17058f] - meta: bump github/codeql-action/analyze from 4.36.1 to 4.36.2 (dependabot[bot]) #64246
  • [873d1e0412] - meta: bump actions/checkout from 6.0.2 to 7.0.0 (dependabot[bot]) #64245
  • [fe460ccf0b] - meta: bump codecov/codecov-action from 6.0.1 to 7.0.0 (dependabot[bot]) #64244
  • [845c63ed50] - meta: bump rtCamp/action-slack-notify from 2.3.3 to 2.4.0 (dependabot[bot]) #64243
  • [2cad2d6de5] - meta: bump github/codeql-action/init from 4.36.1 to 4.36.2 (dependabot[bot]) #64242
  • [0ddde950c7] - meta: bump actions/setup-python from 6.2.0 to 6.3.0 (dependabot[bot]) #64241
  • [c0a8760d2f] - meta: bump github/codeql-action/upload-sarif from 4.36.1 to 4.36.2 (dependabot[bot]) #64240
  • [f49704b9d0] - meta: clarify V8 flags are outside threat model (Matteo Collina) #64224
  • [6b8dc58e6e] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #64057
  • [fe5260cca7] - meta: update status of past strategic initiatives (Joyee Cheung) #63480
  • [7b01040008] - meta: speed up stale bot (Aviv Keller) #64075
  • [874c46c24f] - meta: update sccache version in test-linux-quic (René) #64043
  • [48c5c86363] - module: enable import support for addons by default (Chengzhong Wu) #64221
  • [39e0c14455] - (SEMVER-MINOR) perf_hooks: sample delay per event loop iteration (Pablo Erhard) #62935
  • [f90f1bd032] - perf_hooks: add NODE_PERFORMANCE_GC_MINOR_MARK_SWEEP constant (Attila Szegedi) #63877
  • [bdf32628c7] - process: fix finalization cleanup ref tracking (Trivikram Kamat) #64087
  • [9a65b7fff4] - quic: drop version negotiation packets with oversized CIDs (Mohamed Sayed) #64228
  • [2699fe4706] - quic: fixes undefined handle in QuicStream kInspect (Marten Richter) #64170
  • [00dea28bb3] - repl: lazy-load acorn and defer vm context creation (Daijiro Wachi) #63879
  • [ce659a1cf9] - src: fix escaping of single quotes in task runner (Antoine du Hamel) #64089
  • [dbb3126e5c] - src: abstract tracing agent for both legacy and perfetto (Chengzhong Wu) #64053
  • [12edf1d68d] - src: avoid redundant call to std::get_if<>() (Tobias Nießen) #64094
  • [eda91b6d01] - src: avoid copying source string in TextEncoder.encode (Yagiz Nizipli) #63897
  • [efbbb9a03c] - stream: preserve half-open duplexes in async iteration (Efe) #64275
  • [999a83c937] - (SEMVER-MINOR) stream: expose ReadableStreamTee (Matteo Collina) #64195
  • [ab5ed72903] - stream: reject iter consumers on abort (Trivikram Kamat) #64066
  • [d3fa77c5e2] - stream: fix merge abort for pending sources (Trivikram Kamat) #64013
  • [38b99140ed] - stream: refactor unnecessary optional chaining away (Antoine du Hamel) #64253
  • [c81f894ebe] - stream: cut per-chunk overhead in WHATWG streams (Matteo Collina) #64252
  • [f162234f24] - stream: normalize Broadcast.from() byte inputs (Trivikram Kamat) #64082
  • [1182ad8f3b] - stream: proxy first own method in Readable.wrap() (Daijiro Wachi) #64048
  • [d0b830b382] - stream: observe abort while awaiting pipeTo source (Trivikram Kamat) #64015
  • [f7adcd8359] - stream: respect iter consumer abort signals (Trivikram Kamat) #63997
  • [b09e624c6f] - test: make blob desiredSize assertion robust (Trivikram Kamat) #64106
  • [d0d8f0c774] - test: update WPT for urlpattern to 11a459a2b1 (Node.js GitHub Bot) #64037
  • [ff9122c20c] - test: improve lcov reporter snapshot diagnostics (Trivikram Kamat) #64049
  • [570952d4f3] - test: keep finalization close fixture ref alive (Trivikram Kamat) #64085
  • [1b4f213380] - test: fix typo from overriden to overridden (parkhojeong) #63403
  • [4c91090b8b] - test: fix typo from funciton to function (parkhojeong) #63403
  • [bf080c7917] - test: mark hr-time WPT flaky on macos15-x64 (Trivikram Kamat) #64054
  • [24e32098c5] - test: use one-off agent in http consumed timeout test (Trivikram Kamat) #64052
  • [3229886de2] - test: fix flaky test-runner coverage threshold test (Trivikram Kamat) #64051
  • [83b91ea6ec] - test_runner: filter execArgv fallback for child tests (Trivikram Kamat) #64056
  • [269b609a3d] - test_runner: improve coverage failure diagnostics (Trivikram Kamat) #64050
  • [0342744c34] - test_runner: add timestamp to JUnit reporter testsuites (sangwook) #64029
  • [086741d121] - timers: reuse Timeout objects in setStreamTimeout (Matteo Collina) #64254
  • [4e0236dc3d] - (SEMVER-MINOR) tls: report negotiated TLS groups (Filip Skokan) #64119
  • [3bdd7e20be] - tls: handle large RSA exponents in X.509 cert (Tobias Nießen) #64093
  • [c96c838977] - tools: update RUSTC_VERSION for remaining GHA workflows (René) #64325
  • [ee873b7aaf] - tools: bump temporal_rs version (Antoine du Hamel) #63281
  • [ea3b870155] - tools: remove envinfo from our workflows (Antoine du Hamel) #64259
  • [d940f02e8b] - tools: bump the eslint group in /tools/eslint with 8 updates (dependabot[bot]) #64249
  • [fe0ea2bb5d] - tools: bump @node-core/doc-kit (dependabot[bot]) #64010
  • [4dceefde1e] - tools: bump undici from 6.24.1 to 6.27.0 in /tools/doc (dependabot[bot]) #64031
  • [6e187db7d7] - tools: update c-ares updater script (Antoine du Hamel) #64194
  • [657a35f5a2] - tools: validate version number in release proposal commit message lint (Antoine du Hamel) #64070
  • [17228a861c] - tools: add GHA benchmark runner (Antoine du Hamel) #60293
  • [6d11a71d91] - tools: update build-shared/action.yml to a reusable workflow (Antoine du Hamel) #64059
  • [7a17c50b7f] - tools: update libffi updater script (Antoine du Hamel) #64046
  • [28047a3e71] - tools: exclude libffi changes from test-shared GHA CI (Antoine du Hamel) #64047
  • [58d9685acc] - typings: add typing for crypto (Filip Skokan) #64122
  • [7a9dcad44d] - util: fix OOM in inspect color stack formatting (Ijtihed Kilani) #64022
  • [d5f01bbbde] - vfs: reject rename into descendant directory (Trivikram Kamat) #64285
  • [0b6af91081] - vfs: handle current-position sentinel in memory files (Trivikram Kamat) #64163
  • [322230d641] - vfs: support writeFileSync with virtual fds (Trivikram Kamat) #64165
  • [9395d209c7] - vfs: avoid recursive readdir symlink cycles (Matteo Collina) #64168
  • [bbdd7643b6] - vfs: read RealFSProvider files from open fd (Trivikram Kamat) #64104
  • [92859b8097] - vm: fix copying PropertyDescriptor (Chengzhong Wu) #64073
  • [9046035475] - zlib: validate flush king for all streams (Ic3b3rg) #63746
  • [98be4304a3] - zlib: validate flush kind for brotli streams (Ic3b3rg) #63746
  • [90007a59a9] - zlib: expose rejectGarbageAfterEnd option (Filip Skokan) #64023
  • [5933516066] - zlib: reject trailing gzip members in web streams (Filip Skokan) #64023

Update Jun 24, 2026 tracked by Updatify

2026-06-24, Version 26.4.0 (Current), @aduh95

Notable Changes

  • [cde0daabcc] - (SEMVER-MINOR) doc: update blockList stability status to release candidate (alphaleadership) #63050
  • [b78f5a7537] - (SEMVER-MINOR) fs: support caller-supplied readFile() buffers (Matteo Collina) #63634
  • [417aacbc36] - (SEMVER-MINOR) http: close pre-request sockets in closeIdleConnections (semimikoh) #63470
  • [fbb108be7d] - (SEMVER-MINOR) loader: implement package maps (Maël Nison) #62239
  • [45494d5a8a] - (SEMVER-MINOR) net: support TCP_KEEPINTVL and TCP_KEEPCNT in setKeepAlive (Guy Bedford) #63825
  • [ee29465e77] - (SEMVER-MINOR) tls: add certificateCompression option (Tim Perry) #62217
  • [b17817eb2b] - (SEMVER-MINOR) vfs: dispatch node:fs/promises to mounted VFS instances (Matteo Collina) #63537
  • [7bc93a6ac5] - (SEMVER-MINOR) vfs: add minimal node:vfs subsystem (Matteo Collina) #63115

Commits

  • [c7eb83b46a] - benchmark: add child_process async path baselines (Yagiz Nizipli) #63929
  • [066fff17a5] - benchmark: remove old alias usage in ffi benchmarks (Anna Henningsen) #63666
  • [509cd1b94f] - buffer: optimize Buffer.prototype.copy (Robert Nagy) #63828
  • [86e651bbd0] - buffer: use simdutf for two-byte utf8 byteLength (Mert Can Altin) #63639
  • [d3f4ed9015] - build: suppress compiler warnings for histogram (Richard Lau) #63980
  • [82dd7ddbe6] - build: add QUIC CI job for PRs matching QUIC related paths (Tim Perry) #63875
  • [1124c0652d] - build: remove redundant intermediate node_aix_shared (Chengzhong Wu) #63747
  • [e510ee8087] - build: build codecache and snapshot with libnode (Chengzhong Wu) #63626
  • [5b583dace5] - build: enable maglev by default on Linux ppc64le (Richard Lau) #63474
  • [a2324246b4] - build: remove duplicated node_use_sqlite and node_use_ffi conditions (Chengzhong Wu) #63629
  • [2a467a5f69] - Revertbuild, doc: generate node.1 with doc-kit” (Antoine du Hamel) #64091
  • [e01dec45b8] - build, doc: generate node.1 with doc-kit (Aviv Keller) #62044
  • [2ab9848fe4] - child_process: pass spawn options to the binding positionally (Yagiz Nizipli) #63930
  • [04c04c8b5c] - child_process: serialize advanced IPC messages natively (Yagiz Nizipli) #63933
  • [1eef57293d] - crypto: support non-byte WebCrypto lengths and cSHAKE (Filip Skokan) #63988
  • [788a66e147] - crypto: share WebCrypto method and usage helpers (Filip Skokan) #63975
  • [f9fdce3f46] - crypto: use EVP_MAC for HMAC on OpenSSL >=3 (Filip Skokan) #63942
  • [7e9ca87e58] - crypto: make webcrypto aliasKeyFormat directional (Filip Skokan) #63910
  • [656e57ebbf] - crypto: fix unhandled error in Hash._transform (Haram Jeong) #63261
  • [65536f0d98] - crypto: refactor keyObject.toCryptoKey() and SubtleCrypto.getPublicKey() (Filip Skokan) #63622
  • [978f1d2bcc] - crypto: handle cipher context allocation failures (Tian Teng) #63542
  • [5551e8f773] - crypto: deduplicate X509 subject matching logic (Tobias Nießen) #63644
  • [57ae87640a] - crypto: fix warnings in test_node_crypto.cc (Maya Lekova) #63490
  • [9984b05dff] - crypto: coerce -0 to +0 before native calls (Filip Skokan) #63556
  • [88011a3689] - crypto,tls: do not ignore BN_get_word error (Tobias Nießen) #63895
  • [9a3393d14f] - debugger: lazily wait for initial break output (Trivikram Kamat) #63969
  • [b0bfcb9c59] - debugger: defer probe pause handling until startup (Trivikram Kamat) #63608
  • [8516003953] - debugger: await initialization after run and restart (Trivikram Kamat) #63607
  • [4438cb5284] - debugger: add –max-hit option to probe mode (Joyee Cheung) #63704
  • [238b54ed2a] - debugger: add more logs to probe mode (Joyee Cheung) #63663
  • [bbef54b413] - deps: libffi: cherry-pick 9ca53a19833d (Anthony Green) #64040
  • [9761385dbd] - deps: update libffi to 3.6.0 (Node.js GitHub Bot) #64040
  • [373ec2d092] - deps: update acorn to 8.17.0 (Node.js GitHub Bot) #63901
  • [e44b5d487e] - (SEMVER-MINOR) deps: update OpenSSL build config to support compression (Tim Perry) #62217
  • [3ed287a2e2] - deps: upgrade npm to 11.17.0 (npm team) #63857
  • [b1b597c797] - deps: add ngtcp2_fmt.c to build configuration (ngtcp2.gyp) (沈鸿飞) #63821
  • [0bf8e12305] - deps: V8: add CopyArrayBufferBytes API (Robert Nagy) #63828
  • [e49d7301a5] - deps: update ngtcp2 to 1.23.0 (Node.js GitHub Bot) #63777
  • [e5c079004b] - deps: update nghttp3 to 1.16.0 (Node.js GitHub Bot) #63776
  • [d599fa2346] - deps: update googletest to 7140cd416cecd7462a8aae488024abeee55598e4 (Node.js GitHub Bot) #63775
  • [bc09f1508c] - deps: update sqlite to 3.53.2 (Node.js GitHub Bot) #63774
  • [60787746c4] - deps: update zlib to 1.3.2.1-motley-3246f1b (Node.js GitHub Bot) #63773
  • [971af104f1] - deps: update amaro to 1.1.10 (Node.js GitHub Bot) #63670
  • [e17f665444] - deps: update googletest to 8736d2cd5c1dcba41170ed2fddca14021d4916c3 (Node.js GitHub Bot) #63669
  • [7591949457] - dgram: add synchronous Socket connectSync() (Guy Bedford) #63932
  • [d75222d7cb] - dgram: add synchronous Socket.prototype.bindSync() (Guy Bedford) #63838
  • [0cf8342ae2] - dns: coerce -0 to +0 in lookup and resolver inputs (Filip Skokan) #63556
  • [e068299320] - doc: update gcc toolchains to gcc-13 and g++-13 (Louie Llaneta) #64018
  • [65178bdcf3] - doc: add aduh95 to last security release steward (Antoine du Hamel) #63981
  • [83eedfe85b] - doc: fix typo in util.md (Daijiro Wachi) #63961
  • [54948c78e7] - doc: clarify callback exceptions (Matteo Collina) #63939
  • [205d0a57f2] - doc: fix incorrect test runner mock examples (Kimaswa Emmanuel Yusufu) #63656
  • [44809b176c] - doc: clarify fromReadable() duck-typed contract (Trivikram Kamat) #63682
  • [9cb15fcc85] - doc: fix typo in cli.md (Daijiro Wachi) #63883
  • [394d0bb928] - doc: fix typo in vm.md (Daijiro Wachi) #63881
  • [59b7be8193] - doc: fix typo in packages.md (Daijiro Wachi) #63882
  • [33c236cea9] - doc: fix a/an article typos in module, util, and dns (Daijiro Wachi) #63766
  • [30595da67b] - doc: update npm supported versions link (hojeong park) #63672
  • [5919ba7e97] - doc: fix AES-OCB IV length in SubtleCrypto.supports example (Anshika Jain) #63717
  • [51cab5cb72] - doc: add webstreams to args for pipeline from stream/promises (David Sanders) #63628
  • [ce85b2af88] - doc: fix “used to sent” → “used to send” in http2 (Daijiro Wachi) #63700
  • [298735e8df] - doc: mark Node.js 25 as End-of-Life (Antoine du Hamel) #63692
  • [56948518b9] - doc: clarify tty raw mode applies to input processing only (Muhammad Zeeshan) #63438
  • [32ff731248] - doc: add worker_threads history entries (Bob Put) #63545
  • [cde0daabcc] - (SEMVER-MINOR) doc: update blockList stability status to release candidate (alphaleadership) #63050
  • [d29483fc4f] - doc,crypto: mark argon2 and encap/decap as stable (Filip Skokan) #63924
  • [6e668331d9] - events: improve addAbortListener perf by caching options object (Raz Luvaton) #52367
  • [97aafe2519] - ffi: add fast support for almost all other platforms (Paolo Insogna) #63941
  • [f52cf5eeaa] - ffi: add experimental fast FFI call API for AArch64 and x86_64 (Paolo Insogna) #63068
  • [d9461fee05] - ffi: port semi-colon fix for riscv64 (and others) (Stewart X Addison) #63794
  • [4c8402e0a8] - fs: do not treat EPERM as ENOTEMPTY on Windows (Kirill Saied) #63709
  • [b78f5a7537] - (SEMVER-MINOR) fs: support caller-supplied readFile() buffers (Matteo Collina) #63634
  • [3d0097d489] - fs: prevent spurious recursive watch events on prefix siblings (Marco) #63095
  • [14d829cb3c] - fs: ignore deleted dirs in recursive watch scan (Trivikram Kamat) #63686
  • [ceba08a1ea] - fs: coerce -0 to +0 in mode flags and watch intervals (Filip Skokan) #63556
  • [6577d3b282] - http: avoid stream listeners on idle agent sockets (Matteo Collina) #64004
  • [417aacbc36] - (SEMVER-MINOR) http: close pre-request sockets in closeIdleConnections (semimikoh) #63470
  • [b7fd13a59a] - http2: retain header memory in session accounting (Matteo Collina) #63752
  • [e611ccd167] - inspector: fix inspector.close() documented behavior (Chengzhong Wu) #63837
  • [a44f51eef3] - lib: fix missing lazyDOMException import (Filip Skokan) #64033
  • [27cc4ec598] - lib: add lint rule to enforce use of kEmptyObject (Antoine du Hamel) #63790
  • [7ee31b0bf4] - lib: improve control abstraction coverage in frozen intrinsics (Renegade334) #63698
  • [078457839a] - lib: add Iterator global to primordials (Renegade334) #63698
  • [58837dc4dd] - lib: remove source map deadcode in type stripping (Chengzhong Wu) #63738
  • [e7513a8b9e] - lib: make Navigator#language getter throw on invalid this (Mohamed Sayed) #63601
  • [fbb108be7d] - (SEMVER-MINOR) loader: implement package maps (Maël Nison) #62239
  • [ea0b8e1dc2] - meta: bump github/codeql-action from 4.35.3 to 4.36.1 (dependabot[bot]) #63724
  • [ac90719532] - meta: bump actions/cache from 5.0.4 to 5.0.5 (dependabot[bot]) #62847
  • [3ed3de3062] - meta: bump actions/checkout from 6.0.2 to 6.0.3 (dependabot[bot]) #63726
  • [d08d57bf70] - meta: bump codecov/codecov-action from 6.0.0 to 6.0.1 (dependabot[bot]) #63725
  • [e748d192cf] - meta: bump cachix/cachix-action (dependabot[bot]) #63729
  • [10554eb131] - meta: bump actions/stale from 10.2.0 to 10.3.0 (dependabot[bot]) #63728
  • [791885f2af] - meta: bump step-security/harden-runner from 2.19.0 to 2.19.4 (dependabot[bot]) #63727
  • [32d9a407d9] - meta: bump cachix/install-nix-action from 31.10.5 to 31.10.6 (dependabot[bot]) #63723
  • [b97c7bed07] - module: enable existing machinery for deferred import of static modules (Maya Lekova) #63712
  • [4becad2117] - module: use file: URL as sourceURL for type-stripped CommonJS (Joyee Cheung) #63705
  • [c71c85b95f] - net: early TCP binding via synchronous net.BoundSocket (Guy Bedford) #63951
  • [45494d5a8a] - (SEMVER-MINOR) net: support TCP_KEEPINTVL and TCP_KEEPCNT in setKeepAlive (Guy Bedford) #63825
  • [3988efa1f3] - net: coerce -0 to +0 in BlockList prefixes (Filip Skokan) #63556
  • [484efd1c44] - quic: fix get_reader bug that dropped data on FIN (Tim Perry) #63946
  • [04a17fe6f0] - quic: expose QUIC certificates as JS X509Certificate, not raw handles (Tim Perry) #63191
  • [b62d5696dc] - quic: fix reader backpressure deadlock on idle connections (Tim Perry) #63950
  • [3f1c8d7453] - quic: fix broken listEndpoints export, test callbacks & nghttp3 include (Tim Perry) #63874
  • [d8538b9deb] - quic: impl. cb for http/3 settings/app. options (Marten Richter) #63558
  • [643b19716e] - quic: add listEndpoints API (James M Snell) #63536
  • [2bce35bea4] - sqlite: do not leave database open after failed open (Yagiz Nizipli) #63854
  • [394af52abb] - sqlite: fix stack-use-after-scope with function callback (ndossche) #63640
  • [10f03e5958] - src: omit unconvertible names in cjs_lexer::Parse (Yagiz Nizipli) #63943
  • [1723773d41] - src: keep global list of addon-provided cleanup hooks (Anna Henningsen) #63985
  • [ef12e9ea44] - src: guard OpenSSL compression header include (Filip Skokan) #64009
  • [48af8a6d8d] - src: handle empty MaybeLocal in cjs_lexer::Parse (Yagiz Nizipli) #63885
  • [2a672ee9e8] - src: fast path empty native immediate drain (Gürgün Dayıoğlu) #62969
  • [db6a31d1a1] - src: do not track weak BaseObjects as childrens of Realms (Anna Henningsen) #63842
  • [5fb837ff46] - src: allow tracking children in MemoryTracker with weak edges (Anna Henningsen) #63842
  • [6d22d373a9] - src: use C++14 deprecated attribute for NODE_DEPRECATED (Anna Henningsen) #63755
  • [7ac3fe1992] - src: add cleanup hooks to node::ObjectWrap (Anna Henningsen) #63642
  • [d82d369155] - src: fix edge case when deflateInit2() fails with Z_VERSION_ERROR (Nora Dossche) #63476
  • [03858d152b] - src: remove redundant handle_ field in ffi (Anna Henningsen) #63665
  • [1682264f6b] - src: add Latin1 fast path in StringBytes::Encode utf8 (Mert Can Altin) #63385
  • [cc29696acf] - stream: fix Writable.toWeb() desiredSize for non-object-mode (Matteo Collina) #62986
  • [d9967a25b2] - stream: handle falsy push writer fail reasons (Trivikram Kamat) #63569
  • [b53f8f75c9] - stream: reduce allocations on WHATWG streams hot paths (Matteo Collina) #63876
  • [315ca426d8] - stream: handle setEncoding after buffered data (Matteo Collina) #63973
  • [06413cd6bd] - stream: fix Utf8Stream stall after full write of multi-byte data (Daijiro Wachi) #63964
  • [a9f9a3dafa] - stream: keep overlapping broadcast reads pending (Trivikram Kamat) #63500
  • [009cca11bd] - stream: refine the stream/iter backpressure (James M Snell) #63697
  • [3f81dcfc99] - stream: only pass the expected number of parameters to callbacks (Antoine du Hamel) #63909
  • [9a83b5d1fe] - stream: fix dropped first chunk in Utf8Stream buffer mode (Daijiro Wachi) #63833
  • [0bdf5adea9] - stream: remove transform-writer handling in pipeTo (Trivikram Kamat) #63684
  • [10272a94b6] - stream: check done before backpressure in stream reader (Daijiro Wachi) #63699
  • [792c410631] - stream: fix pipeToSync byte accounting (Trivikram Kamat) #63564
  • [3cfafbc54b] - stream: reject pull() reads on abort (Trivikram Kamat) #63498
  • [640a8cede5] - stream: fast-path stateless transform flush results (Trivikram Kamat) #63605
  • [ece4477872] - stream: optimize pipeTo promise handling (Matteo Collina) #63572
  • [2cb84c2daf] - stream: handle sync writev completion in pipeTo (Trivikram Kamat) #63561
  • [7d9fdda5fa] - stream: settle pending broadcast reads on return (Trivikram Kamat) #63603
  • [e2aea3aac7] - test: tolerate duplicate watch change events (Trivikram Kamat) #63937
  • [ea6300593a] - test: mark test-debugger-run-after-quit-restart as flaky on macOS (Matteo Collina) #64006
  • [be1b204fa4] - test: update WPT for url to d4598eba09 (Node.js GitHub Bot) #63899
  • [b3d0d05b05] - test: update WPT for WebCryptoAPI to 03a1476844 (Node.js GitHub Bot) #63900
  • [046af2609f] - test: update WPT for urlpattern to 23aac92784 (Node.js GitHub Bot) #63898
  • [562b831a98] - test: add tests for 3 methods in utils (Daijiro Wachi) #63765
  • [28e3629dd3] - test: mark SEA tests flaky on linux arm debug (Trivikram Kamat) #63743
  • [243aa846de] - test: validate ERR_INVALID_THIS for scheduler methods (Daijiro Wachi) #63764
  • [6bd07df2bc] - test: add coverage outside SEA (Daijiro Wachi) #63744
  • [bd67c9d11b] - test: update WPT for urlpattern to 2f28df545c (Node.js GitHub Bot) #63771
  • [e40bfe7081] - test: make Brotli 16GB test wait for backpressure (Trivikram Kamat) #63389
  • [444c03fd3b] - test: add regression test for using ObjectWrap in worker (Mohamed Akram) #63642
  • [771230df78] - test: accept SIGILL aborts in async-hooks tests (Trivikram Kamat) #63687
  • [0b3cd8e5e6] - test: add more test cases for pathToFileURL (Rafael Gonzaga) #63293
  • [0cbc77c60e] - test: update test426-fixtures to 2965987bf4c96afa400c9356c8e620cb340aaee (Node.js GitHub Bot) #63668
  • [f53dee5fe4] - test: update WPT for WebCryptoAPI to 0c413fb56b (Node.js GitHub Bot) #63647
  • [3048f8dc1a] - test,debugger: add test for type stripping in debugger probe mode (Joyee Cheung) #63748
  • [9485caa97e] - test_runner: remove unused shuffleArrayWithSeed (Daijiro Wachi) #63847
  • [34433a4a87] - test_runner: fix watch cwd with isolation none (Trivikram Kamat) #63690
  • [2e7da29b7c] - test_runner: avoid recompiling coverage globs for every file (sangwook) #63675
  • [205295a31e] - test_runner: cache shouldSkipFileCoverage result per URL (sangwook) #63675
  • [ee29465e77] - (SEMVER-MINOR) tls: add certificateCompression option (Tim Perry) #62217
  • [57d060ed2b] - tls: route event listener exceptions through error handlers (Antoine du Hamel) #63822
  • [d2dc6f8506] - tools: bump piscina from 5.1.4 to 5.2.0 in /tools/doc (dependabot[bot]) #64002
  • [b0c418f605] - tools: update sccache to v0.16.0 (Michaël Zasso) #63078
  • [2af8433bef] - tools: bump js-yaml from 4.1.1 to 4.2.0 in /tools/lint-md (dependabot[bot]) #63948
  • [8ba5b8574b] - tools: bump js-yaml from 4.1.1 to 4.2.0 in /tools/eslint (dependabot[bot]) #63947
  • [325087be5b] - tools: enforce iterator result property order (Trivikram Kamat) #63526
  • [314f417db7] - tools: update the llhttp updater script (Antoine du Hamel) #63819
  • [c6e4f5a4fe] - tools: avoid test/fixtures/wpt/README.md conflicts (Filip Skokan) #63938
  • [363912acc3] - tools: align Bash snippets in GHA with lint-sh conventions (Antoine du Hamel) #63829
  • [cfd16e973c] - tools: bump @node-core/doc-kit in /tools/doc in the doc group (dependabot[bot]) #63760
  • [1566872706] - tools: bump the eslint group in /tools/eslint with 7 updates (dependabot[bot]) #63730
  • [08437a3a5b] - tools: fix zlib updater script (Antoine du Hamel) #63707
  • [e883366172] - url: fix URLSearchParams(null) to prudce null= per spec (Marco) #63782
  • [60e83d9bfd] - util: fix scientific notation formatting (Daijiro Wachi) #63823
  • [5f7f60ac36] - util: fix -0 formatting when numericSeparator is enabled (Daijiro Wachi) #63815
  • [af1a11e0dd] - util: remove style caches from styleText slow path (Guilherme Araújo) #63706
  • [b17817eb2b] - (SEMVER-MINOR) vfs: dispatch fs/promises to mounted VFS instances (Matteo Collina) #63537
  • [7bc93a6ac5] - (SEMVER-MINOR) vfs: add minimal node:vfs subsystem (Matteo Collina) #63115
  • [584e7527c4] - vm: fix property queries for proxy sandboxes (Brian Meek) #63742
  • [a926e72eaf] - watch: print name of changed file that triggers restart (Marco) #63781
  • [32a2621ca4] - watch: cancel pending restart on shutdown (Trivikram Kamat) #63383
  • [692215d1b1] - zlib: coerce -0 to +0 for crc32 seeds (Filip Skokan) #63556

Update Jun 23, 2026 tracked by Updatify

2026-06-23, Version 24.18.0 'Krypton' (LTS), @richardlau prepared by @sxa

Notable Changes

  • [e07e7a31e1] - crypto: update root certificates to NSS 3.123.1 (Node.js GitHub Bot) #63527
  • [44c8ebcbd6] - http: avoid stream listeners on idle agent sockets (Matteo Collina) #64004
  • [d3ef4122ee] - (SEMVER-MINOR) buffer: increase Buffer.poolSize default to 64 KiB (Matteo Collina) #63597
  • [bb2857b85a] - (SEMVER-MINOR) crypto: align key argument names in docs and error messages (Filip Skokan) #62527
  • [b9d5e87880] - (SEMVER-MINOR) crypto: accept key data in crypto.diffieHellman() and cleanup DH jobs (Filip Skokan) #62527
  • [ccd756d61e] - (SEMVER-MINOR) crypto: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) #62183
  • [4c9251fc09] - (SEMVER-MINOR) http: add writeInformation to send arbitrary 1xx status codes (Tim Perry) #63155
  • [8c989ec4a3] - (SEMVER-MINOR) inspector: expose precise coverage start to JS runtime (sangwook) #63079
  • [3f54c8ba32] - Revertstream: noop pause/resume on destroyed streams” (Stewart X Addison) #63834

Commits

  • [d3ef4122ee] - (SEMVER-MINOR) buffer: increase Buffer.poolSize default to 64 KiB (Matteo Collina) #63597
  • [9ff36e40f0] - build: add –enable-all-experimentals build flag (Paolo Insogna) #62755
  • [7c22ee23aa] - build: def NODE_USE_NODE_CODE_CACHE only used in node_mksnapshot (Chengzhong Wu) #63588
  • [2551abdb4a] - build,win: enable x64 PGO (Stefan Stojanovic) #62761
  • [e8a55ce9b1] - crypto: strengthen argument CHECKs in TurboSHAKE (Tobias Nießen) #62763
  • [ae61cd68f3] - crypto: harden WebCrypto against prototype pollution (Filip Skokan) #63363
  • [3d05a1d396] - crypto: pass CryptoKey handles to KDF jobs (Filip Skokan) #63363
  • [f9d10a3f6b] - crypto: remove async from WebCrypto methods (Filip Skokan) #63363
  • [e431d93e9e] - crypto: add WebCrypto CryptoJob mode (Filip Skokan) #63363
  • [56e2505e48] - crypto: wire ML-DSA and ML-KEM for use when using BoringSSL (Filip Skokan) #63255
  • [3bac77f2a8] - crypto: wire ChaCha20-Poly1305 in Web Cryptography when using BoringSSL (Filip Skokan) #63255
  • [1bff901b09] - crypto: wire AES-KW in Web Cryptography when using BoringSSL (Filip Skokan) #63255
  • [4433fca3df] - crypto: harden CryptoKey algorithm slots (Filip Skokan) #63111
  • [b5cf01217a] - crypto: harden KeyObject internal slots (Filip Skokan) #63111
  • [ce84aef37d] - crypto: add guards and adjust tests for BoringSSL (Filip Skokan) #62883
  • [26781689b0] - crypto: reject duplicate ML-KEM JWK key_ops (Filip Skokan) #62905
  • [aeea8f4970] - crypto: add JWK support for ML-KEM and SLH-DSA key types (Filip Skokan) #62706
  • [407cf91656] - crypto: guard against size_t overflow on experimental 32-bit arch (Filip Skokan) #62626
  • [bb2857b85a] - (SEMVER-MINOR) crypto: align key argument names in docs and error messages (Filip Skokan) #62527
  • [b9d5e87880] - (SEMVER-MINOR) crypto: accept key data in crypto.diffieHellman() and cleanup DH jobs (Filip Skokan) #62527
  • [b46d52b283] - crypto: unify asymmetric key import through KeyObjectHandle::Init (Filip Skokan) #62499
  • [ccd756d61e] - (SEMVER-MINOR) crypto: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) #62183
  • [e07e7a31e1] - crypto: update root certificates to NSS 3.123.1 (Node.js GitHub Bot) #63527
  • [61826df455] - crypto: coerce -0 keylen to +0 in pbkdf2 and scrypt (Jordan Harband) #63531
  • [16d2fd3c07] - crypto: align verifyOneShot accepted types (Anshika Jain) #63280
  • [3b8330deda] - crypto: improve system certificate enumeration logic on macOS (Robo) #62576
  • [141de35399] - debugger: add –help to node inspect and improve docs (Joyee Cheung) #63201
  • [b76bfcd4fa] - deps: upgrade npm to 11.16.0 (npm team) #63602
  • [4ec142314c] - deps: SQLite: cherry-pick b869ed6b067d623cb1383549f2a18aa35508385d (Junsu Han) #63525
  • [19e8ce1c36] - deps: upgrade npm to 11.15.0 (npm team) #63463
  • [8a264260e2] - deps: update sqlite to 3.53.1 (Node.js GitHub Bot) #63217
  • [50c8ff3f94] - deps: update simdjson to 4.6.4 (Node.js GitHub Bot) #62811
  • [6e56f01c4b] - deps: V8: cherry-pick 435a2cdf664c (Matthias Liedtke) #63136
  • [3ba813b242] - deps: cherry-pick libuv/libuv\@a43e543 (Ali Hassan) #63222
  • [2390e3a5ac] - doc: remove duplicated sentences in large-pull-requests.md (Joyee Cheung) #63650
  • [52a1c18374] - doc: update git node land instructions for security releases (Antoine du Hamel) #63586
  • [3e6b4da037] - doc: drop –experimental from –permission (Rafael Gonzaga) #63583
  • [84d05163b9] - doc: explicitly ask for reproducible in JS (Rafael Gonzaga) #63479
  • [7da2a4450e] - doc: fix URL postMessage example in worker_threads (Kit Dallege) #62203
  • [3d79bd8b29] - doc: clarify filter option of sqlite.database.applyChangeset (Antoine du Hamel) #63515
  • [4f4174aace] - doc: fix double spaces in ERR_TLS_INVALID_PROTOCOL_METHOD (Daijiro Wachi) #63511
  • [388323ca4b] - doc: fix double space in modules.md (Daijiro Wachi) #63512
  • [5258ccc058] - doc: fix “options” to “option” in tls.createServer (Daijiro Wachi) #63453
  • [43e83e6507] - doc: fix typo in deprecations (Daijiro Wachi) #63434
  • [f05a61d54c] - doc: remove unsupported template type from v8.md (René) #63410
  • [c39d5fc820] - doc: fix article usage before vowel-sound acronyms (joao-oliveira-softtor) #62696
  • [398261f911] - doc: remove the bi-monthly contributor spotlight section (Claudio Wunder) #62734
  • [fd9e14c405] - doc: update http2’s push and trailers events with rawHeaders param (YuSheng Chen) #63259
  • [b943ce6933] - doc: remove inactive members from Triagers list (Antoine du Hamel) #63329
  • [4b9cdfc022] - doc: reference correct function in Module docs (Robin Malfait) #63247
  • [bed84b6df2] - doc: replace Visual Studio 2022 Evergreen version reference with 17.14 (Mike McCready) #63211
  • [32ea70569b] - doc: recommend explicitly Tier 1 or 2 for production applications (Mike McCready) #63187
  • [4627bcfd82] - doc: run license-builder (github-actions[bot]) #63232
  • [28eba71845] - doc: add large pull requests contributing guide (Matteo Collina) #62829
  • [2648efd438] - doc: remove unnecessary <!-- eslint- magic comments (Antoine du Hamel) #63200
  • [a95fc1f8fc] - doc: clarify SEA platform support excludes darwin-x64 (MJSHANG) #63181
  • [aaef29e2e1] - doc: update release steps when post-release fails (Rafael Gonzaga) #63131
  • [7d81419cf2] - doc: add Hmac.digest() documentation-only deprecation (DEP0206) (Anshika Jain) #63121
  • [ececd80d81] - doc: document the latest-vX.x schema (Marco Ippolito) #63033
  • [27c1c1d842] - doc: remove list of versions in BUILDING.md (Antoine du Hamel) #63113
  • [e369886a65] - doc,sqlite: document entryPoint argument for loadExtension (Edy Silva) #63152
  • [e4e5137cbd] - errors: handle V8 warnings in DisallowJavascriptExecutionScope (Divyanshu Sharma) #63491
  • [6d1f6048d2] - fs: make Date properties on Stats enumerable (LiviaMedeiros) #63328
  • [44c8ebcbd6] - http: avoid stream listeners on idle agent sockets (Matteo Collina) #64004
  • [4c9251fc09] - (SEMVER-MINOR) http: add writeInformation to send arbitrary 1xx status codes (Tim Perry) #63155
  • [39f61fb06c] - http2: emit session close before stream close (Matteo Collina) #63414
  • [8a8f2127d1] - http2: validate non-link headers in writeEarlyHints (Matteo Collina) #62017
  • [8c989ec4a3] - (SEMVER-MINOR) inspector: expose precise coverage start to JS runtime (sangwook) #63079
  • [c05f38229b] - lib: cleanup stateless diffiehellman key handling (Filip Skokan) #62645
  • [1c16b45d35] - lib: refactor internal webidl converters (Filip Skokan) #62979
  • [02f35d6dce] - lib: define kEnumerableProperty atomically (Antoine du Hamel) #63609
  • [12c51547ba] - lib: fix typos in esm loader comments (RonGamzu) #63465
  • [9b03b84262] - lib: fix typo idenity => identity (Daijiro Wachi) #63112
  • [a84e6b0567] - lib: fixes validator message (Daijiro Wachi) #62823
  • [11734166a8] - lib: narrow ReadableStreamBYOBRequest.view return type to Uint8Array (RoomWithOutRoof) #63017
  • [7cead61d21] - meta: flip mcollina emails in .mailmap (Matteo Collina) #63621
  • [a08cfcfd35] - meta: label “source maps” PRs (Chengzhong Wu) #63591
  • [d56e8d2512] - meta: add vfs subsystem label (René) #62331
  • [6201cfe488] - meta: skip scheduled workflows on forks (Jamie Magee) #63565
  • [f095e2bd31] - meta: add additional gitignore entries (James M Snell) #63267
  • [1ea52c444c] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #63402
  • [b1b2327611] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #63235
  • [7d88e130a9] - meta: ignore AI assistants files (Matteo Collina) #62612
  • [a53b51df38] - module: load ESM helpers eagerly in the snapshot (Joyee Cheung) #63550
  • [69df688fff] - module: fix sync hook short-circuit in require() in imported CJS (Joyee Cheung) #62920
  • [75d9a4ed47] - node-api: support SharedArrayBuffer in napi_create_typedarray (Yilong Li) #62710
  • [c20aa4c47b] - quic: add reusePort option to QuicEndpoint (James M Snell) #63267
  • [26a30d8a7f] - quic: implement rate limiting for version nego and immediate close (James M Snell) #63267
  • [0b534b5770] - quic: fixup linting issue after other changes (James M Snell) #63267
  • [4b367cbe09] - quic: remove unused binding variable in session.cc (James M Snell) #63177
  • [2574bef5a6] - repl: fix dedup comparing normalized line against raw history (Daijiro Wachi) #62886
  • [30e71c7e49] - sqlite: keep source database alive during backup (Matteo Collina) #62673
  • [677ca7e76c] - src: simplify OpenSSL feature gates (Filip Skokan) #63255
  • [c863c75c39] - src: add BoringSSL EVP enumeration fallback (Filip Skokan) #63206
  • [f6b2466921] - src: decouple KeyObject and CryptoKey and move CryptoKey to src (Filip Skokan) #62924
  • [92d4f07dd2] - src: remove license headers for new node_profiling files (Chengzhong Wu) #63066
  • [8ac5d771c8] - src: split profiling helpers from util (Ilyas Shabi) #63008
  • [85d1639495] - src: remove TOCTOU race condition when encoding SAB-backed Buffers (Antoine du Hamel) #63517
  • [9473c5f05c] - src: skip duplicate UTF-8 validation in TextDecoder fatal path (Mert Can Altin) #63231
  • [f35c91ee68] - src: improve token return value check (James M Snell) #63483
  • [26f677c1c5] - src: expose node::RegisterContext to make a node managed context (Chengzhong Wu) #62322
  • [275cf909b6] - src,sqlite: only pass xFilter when user provided a callback (Antoine du Hamel) #63516
  • [287e02303f] - src,sqlite: remove dead code (Edy Silva) #63204
  • [58fa2ee189] - stream: switch to internal sleep binding (Antoine du Hamel) #63611
  • [f954ab3f1a] - stream: use data listener for compose forwarding (Trivikram Kamat) #63593
  • [dc57173003] - stream: fix Writable.toWeb() hang on synchronous drain (sangwook) #61197
  • [3f54c8ba32] - Revertstream: noop pause/resume on destroyed streams” (Stewart X Addison) #63834
  • [cee279c5d6] - stream: remove unnecessary check (Antoine du Hamel) #63030
  • [61b20f60a3] - test: update tls/crypto behaviour expectations when using BoringSSL (Filip Skokan) #63161
  • [a835363808] - test: update WPT for WebCryptoAPI to 97bbc7247a (Node.js GitHub Bot) #63417
  • [a00297480b] - test: update WPT resources, interfaces and WebCryptoAPI (Node.js GitHub Bot) #62389
  • [5a95a2b055] - test: shorten path in net pipe connect errors (Matteo Collina) #63405
  • [5e8ff22d8f] - test: remove test-node-output-v8-warning (Joyee Cheung) #63469
  • [ee15380950] - test: update test426-fixtures to 9b9e225b5a63139e9a95cdd1bf874a8f0b9d131 (Node.js GitHub Bot) #63373
  • [9e063d9bea] - test: update WPT for url to e4a4672e9e (Node.js GitHub Bot) #63372
  • [503bee4b43] - test: deflake async-hooks statwatcher test (Trivikram Kamat) #63396
  • [cccc7c32d8] - test: avoid test_runner watch restart in spec snapshot (Trivikram Kamat) #63392
  • [c89489258c] - test: reduce watch mode restart flakiness (Trivikram Kamat) #63390
  • [e4d5e2578e] - test: isolate rerun-failures state file under tmpdir (Chemi Atlow) #63449
  • [362644a9ba] - test: wait for ok before initial break after restart (Yuya Inoue) #62807
  • [c4058d0e05] - test: disable Maglev in near-heap-limit worker test (Trivikram Kamat) #63398
  • [214da630a7] - test: deflake connection refused proxy tests (Trivikram Kamat) #63395
  • [1d61a29876] - test: avoid repeated writes in watch helper (Trivikram Kamat) #63386
  • [2004e25387] - test: deflake watch mode worker test (Trivikram Kamat) #63384
  • [d691cccfc1] - test: relax test-memory-usage arrayBuffers check (inoway46) #63244
  • [0ff6bf853c] - test: reduce flakiness of different-registry-per-thread (Antoine du Hamel) #63244
  • [d9f4e8e503] - test: fix flaky test-watch-mode-inspect timeout (Matteo Collina) #63361
  • [6d7cd50328] - test: relax min assertion in test-performance-eventloopdelay (Marco) #63100
  • [9dafe1d2d8] - test: avoid flaky restart sync in debugger exceptions test (Yuya Inoue) #62055
  • [989b2de973] - test: avoid initial-break wait in restart-message (inoway46) #62060
  • [a072a25ee7] - test: move FFI tests to NATIVE_SUITES (Antoine du Hamel) #63165
  • [64efbfd878] - test: use ERM to destroy sqlite database handles after tests (René) #63076
  • [7dee66cd94] - test_runner: dont buffer unordered events in process isolation mode (Moshe Atlow) #63432
  • [d257eec1e3] - test_runner: fix –test-rerun-failures swallowing failures on retry (Chemi Atlow) #63431
  • [288c320e2f] - test_runner: show replayed-from-attempt hint in spec reporter (Moshe Atlow) #63429
  • [904bdf5bb4] - test_runner: preserve run duration when using test-rerun (Moshe Atlow) #63429
  • [df183d7bfa] - test_runner: avoid hanging on incomplete v8 frames (Ali Hassan) #62704
  • [ec86c69726] - test_runner: fix diagnostics channel context tracking (Moshe Atlow) #63283
  • [94e5f63b83] - tls: add unsupported renegotiation error (Filip Skokan) #63161
  • [06d308fb61] - tools: prevent lib code from reading KeyObject and CryptoKey accessors (Filip Skokan) #63111
  • [2e4a0d0c91] - tools: bump brace-expansion from 5.0.5 to 5.0.6 in /tools/eslint (dependabot[bot]) #63415
  • [4c9666b366] - tools: skip commit-lint on backport pull requests (Marco) #63378
  • [67d0c490a8] - tools: fix skip of test-internet on forks (Antoine du Hamel) #63492
  • [02f73c7cac] - tools: bump the eslint group in /tools/eslint with 4 updates (dependabot[bot]) #63075
  • [5d016d3241] - tools: update gyp-next to 0.22.2 (Node.js GitHub Bot) #63374
  • [55af0f0edb] - tools: fix test426 updater (Antoine du Hamel) #63271
  • [d8475e167a] - tools: use different branch for tool updates on staging branches (Antoine du Hamel) #63110
  • [c605df9e50] - util: remove unused functions (Antoine du Hamel) #63612
  • [fe4540ebdb] - util: create hex style cache and fast path (Guilherme Araújo) #62999

Update Jun 18, 2026 tracked by Updatify

2026-06-18, Version 26.3.1 (Current), @aduh95

This is a security release.

Notable Changes

  • (CVE-2026-48618) tls: normalize hostname for server identity checks (Matteo Collina) – High
  • (CVE-2026-48933) crypto: guard WebCrypto cipher output length (Filip Skokan) – High
  • (CVE-2026-48615) lib,test: redact proxy credentials in tunnel errors (Matteo Collina) – Medium
  • (CVE-2026-48619) http2: cap originSet size to prevent unbounded memory growth (Matteo Collina) – Medium
  • (CVE-2026-48928) tls: fix case-sensitive SNI context matching (Matteo Collina) – Medium
  • (CVE-2026-48930) dns,net: reject hostnames with embedded NUL bytes (Matteo Collina) – Medium
  • (CVE-2026-48934) tls: bind reusable sessions to authenticated host (Matteo Collina) – Medium
  • (CVE-2026-48617) permission: handle process.chdir on writereport (RafaelGSS) – Low
  • (CVE-2026-48931) http: fix response queue poisoning in http.Agent (Matteo Collina) – Low
  • (CVE-2026-48935) permission: disable FileHandle utimes with permission model (RafaelGSS) – Low
  • (CVE-2026-48936) permission: guard pipe open and chmod with net scope (RafaelGSS) – Low

Commits

Update Jun 18, 2026 tracked by Updatify

2026-06-18, Version 24.17.0 'Krypton' (LTS), @aduh95

This is a security release.

Notable Changes

  • (CVE-2026-48618) tls: normalize hostname for server identity checks (Matteo Collina) – High
  • (CVE-2026-48933) crypto: guard WebCrypto cipher output length (Filip Skokan) – High
  • (CVE-2026-48615) lib,test: redact proxy credentials in tunnel errors (Matteo Collina) – Medium
  • (CVE-2026-48619) http2: cap originSet size to prevent unbounded memory growth (Matteo Collina) – Medium
  • (CVE-2026-48928) tls: fix case-sensitive SNI context matching (Matteo Collina) – Medium
  • (CVE-2026-48930) dns,net: reject hostnames with embedded NUL bytes (Matteo Collina) – Medium
  • (CVE-2026-48934) tls: bind reusable sessions to authenticated host (Matteo Collina) – Medium
  • (CVE-2026-48937) deps: fix integration issues with the latest nghttp2 – Medium
  • (CVE-2026-48617) permission: handle process.chdir on writereport (RafaelGSS) – Low
  • (CVE-2026-48931) http: fix response queue poisoning in http.Agent (Matteo Collina) – Low
  • (CVE-2026-48935) permission: disable FileHandle utimes with permission model (RafaelGSS) – Low

Commits

Update Jun 18, 2026 tracked by Updatify

2026-06-18, Version 22.23.0 'Jod' (LTS), @aduh95

This is a security release.

Notable Changes

  • (CVE-2026-48618) tls: normalize hostname for server identity checks (Matteo Collina) – High
  • (CVE-2026-48933) crypto: guard WebCrypto cipher output length (Filip Skokan) – High
  • (CVE-2026-48937) deps: fix integration issues with the latest nghttp2 – Medium
  • (CVE-2026-48930) dns,net: reject hostnames with embedded NUL bytes (Matteo Collina) – Medium
  • (CVE-2026-48619) http2: cap originSet size to prevent unbounded memory growth (Matteo Collina) – Medium
  • (CVE-2026-48615) lib,test: redact proxy credentials in tunnel errors (Matteo Collina) – Medium
  • (CVE-2026-48934) tls: bind reusable sessions to authenticated host (Matteo Collina) – Medium
  • (CVE-2026-48928) tls: fix case-sensitive SNI context matching (Matteo Collina) – Medium
  • (CVE-2026-48617) permission: handle process.chdir on writereport (RafaelGSS) – Low
  • (CVE-2026-48931) http: fix response queue poisoning in http.Agent (Matteo Collina) – Low
  • (CVE-2026-48935) permission: disable FileHandle utimes with permission model (RafaelGSS) – Low

Commits

Update Jun 1, 2026 tracked by Updatify

2026-06-01, Version 26.3.0 (Current), @aduh95

Notable Changes

Potential changes to macOS Universal Binary availability

With Apple and its ecosystem progressively dropping support for Intel-based architectures, it has become apparent that the Node.js project may not be able to maintain the universal binaries we currently distribute for the full lifetime of Node.js 26. This change serves to communicate that risk. At present, our intention remains to continue shipping universal binaries supporting both Apple Silicon and Intel-based Macs for as long as practical.

Contributed by Antoine du Hamel in #63055.

Other notable changes

  • [a2a4b33dd8] - (SEMVER-MINOR) buffer: increase Buffer.poolSize default to 64 KiB (Matteo Collina) #63597
  • [051a2152f7] - crypto: update root certificates to NSS 3.123.1 (Node.js GitHub Bot) #63527
  • [49462eca37] - (SEMVER-MINOR) http: add httpValidation option to configure header value validation (RajeshKumar11) #61597
  • [97b7ab19bd] - (SEMVER-MINOR) inspector: expose precise coverage start to JS runtime (sangwook) #63079
  • [cfb80a2103] - (SEMVER-MINOR) lib,permission: add permission.drop (Rafael Gonzaga) #62672

Commits

  • [a2a4b33dd8] - (SEMVER-MINOR) buffer: increase Buffer.poolSize default to 64 KiB (Matteo Collina) #63597
  • [0eff3e23b9] - build: def NODE_USE_NODE_CODE_CACHE only used in node_mksnapshot (Chengzhong Wu) #63588
  • [447ab2d252] - build,win: fix VS2022 arm64 PGO build (Stefan Stojanovic) #63413
  • [86032758e4] - build,win: replace LTCG with Thin LTO for releases (Stefan Stojanovic) #63114
  • [5f4d794052] - build,win: add Rust toolchain automated configuration Windows (Mike McCready) #63381
  • [051a2152f7] - crypto: update root certificates to NSS 3.123.1 (Node.js GitHub Bot) #63527
  • [d0f65e3579] - crypto: coerce -0 keylen to +0 in pbkdf2 and scrypt (Jordan Harband) #63531
  • [e3ddb326c9] - crypto: harden WebCrypto against prototype pollution (Filip Skokan) #63363
  • [e04cd17dc0] - crypto: pass CryptoKey handles to KDF jobs (Filip Skokan) #63363
  • [64ba74d847] - crypto: remove async from WebCrypto methods (Filip Skokan) #63363
  • [bd230418b4] - crypto: add WebCrypto CryptoJob mode (Filip Skokan) #63363
  • [1a4090a83d] - debugger: surface inspector failures in probe mode (Joyee Cheung) #63437
  • [dbc78ff825] - debugger,test: deflake resume failure test and add debug logs (Joyee Cheung) #63524
  • [4da442f432] - deps: upgrade npm to 11.16.0 (npm team) #63602
  • [63372cfa87] - deps: SQLite: cherry-pick b869ed6b067d623cb1383549f2a18aa35508385d (Junsu Han) #63525
  • [e286fa170d] - deps: upgrade npm to 11.15.0 (npm team) #63463
  • [de996437a5] - doc: downgrade macOS x64 to Tier 2 (Antoine du Hamel) #63055
  • [22ac78750c] - doc: remove duplicated sentences in large-pull-requests.md (Joyee Cheung) #63650
  • [532f7f2085] - doc: update git node land instructions for security releases (Antoine du Hamel) #63586
  • [c61f90dfb9] - doc: drop –experimental from –permission (Rafael Gonzaga) #63583
  • [fd69d7b16a] - doc: improve fs.StatFs properties descriptions (aymanxdev) #62578
  • [693257782c] - doc: generate llms.txt (Guilherme Araújo) #62027
  • [55a57beb26] - doc: explicitly ask for reproducible in JS (Rafael Gonzaga) #63479
  • [4895c2babc] - doc: fix URL postMessage example in worker_threads (Kit Dallege) #62203
  • [0355c36e37] - doc: clarify filter option of sqlite.database.applyChangeset (Antoine du Hamel) #63515
  • [c85ee22df6] - doc: fix double spaces in ERR_TLS_INVALID_PROTOCOL_METHOD (Daijiro Wachi) #63511
  • [62947192f6] - doc: move hyperlinks outside of text blocks (Aviv Keller) #63493
  • [9849690a1d] - doc: edit Rust toolchain general install instructions (Antoine du Hamel) #63488
  • [885d2462e9] - doc: fix double space in modules.md (Daijiro Wachi) #63512
  • [42fbb48bc6] - doc: fix “options” to “option” in tls.createServer (Daijiro Wachi) #63453
  • [05a7b0a301] - doc: add Rust toolchain general install instructions (Mike McCready) #63426
  • [e13dfd7ed0] - doc: update toolchain for official releases (Richard Lau) #63441
  • [82306881cc] - doc: fix typo in deprecations (Daijiro Wachi) #63434
  • [eeb77d217c] - doc,lib: align WebCrypto names with spec (Filip Skokan) #63518
  • [679e13c57f] - errors: handle V8 warnings in DisallowJavascriptExecutionScope (Divyanshu Sharma) #63491
  • [7f41f5d803] - ffi: validate ‘void’ as parameter type in getFunction and getFunctions (Anshika Jain) #63504
  • [972cd227cb] - ffi: remove function signature property aliases (René) #63482
  • [5d7805e433] - ffi: move DynamicLibrary disposer to native layer (René) #63459
  • [5a0b32dc24] - gyp: update deps gypfiles (Nad Alaba) #63117
  • [49462eca37] - (SEMVER-MINOR) http: add httpValidation option to configure header value validation (RajeshKumar11) #61597
  • [e3c6629ee3] - http2: emit session close before stream close (Matteo Collina) #63414
  • [97b7ab19bd] - (SEMVER-MINOR) inspector: expose precise coverage start to JS runtime (sangwook) #63079
  • [6bef10e7b7] - lib: cleanup stateless diffiehellman key handling (Filip Skokan) #62645
  • [fdc0b3d49c] - lib: define kEnumerableProperty atomically (Antoine du Hamel) #63609
  • [99baf27aeb] - lib: fix typos in esm loader comments (RonGamzu) #63465
  • [cfb80a2103] - (SEMVER-MINOR) lib,permission: add permission.drop (Rafael Gonzaga) #62672
  • [8e75efb9bc] - meta: flip mcollina emails in .mailmap (Matteo Collina) #63621
  • [a4ae97045f] - meta: label “source maps” PRs (Chengzhong Wu) #63591
  • [3455a48ae1] - meta: add vfs subsystem label (René) #62331
  • [01bfcdfc20] - meta: skip scheduled workflows on forks (Jamie Magee) #63565
  • [bc4c457eae] - meta: add additional gitignore entries (James M Snell) #63267
  • [e1d65d9509] - module: load ESM helpers eagerly in the snapshot (Joyee Cheung) #63550
  • [6a97b0932a] - quic: add proper error codes & messages for QUIC failures (Tim Perry) #63198
  • [5989f4a6e1] - quic: support hostname verification (James M Snell) #63483
  • [b4d30e7a78] - quic: add stream idle timeout (James M Snell) #63483
  • [8a1017f774] - quic: add block list support for endpoints (James M Snell) #63483
  • [5a3ab93c49] - quic: improve peer cert verification (James M Snell) #63483
  • [9701a82a78] - quic: handle h3 max header size option (James M Snell) #63483
  • [71788a2048] - quic: add rate limiting docs (James M Snell) #63483
  • [309bd49906] - quic: cache timestamp for address lru cache (James M Snell) #63483
  • [2ce5588d51] - quic: add session creation rate limiting (James M Snell) #63483
  • [98808baed1] - quic: refine rate limiting (James M Snell) #63483
  • [75a4176b32] - quic: flip preferred address policy default to ‘ignore’ (James M Snell) #63483
  • [8b6b03d60c] - quic: add doc note about certificate size limitations (James M Snell) #63483
  • [30eff873e0] - quic: add applicationOptions to session (James M Snell) #63267
  • [4303daa43c] - quic: add getters for local and remote transport parameters (James M Snell) #63267
  • [e1b1bb5465] - quic: improve recv coalescing test sizes (James M Snell) #63267
  • [25a416f457] - quic: add initial RTT option to session options (James M Snell) #63267
  • [22e91c357f] - quic: enable recvmmsg batching in Endpoint (James M Snell) #63267
  • [c96d8a9d9b] - quic: improve stream header collection performance (James M Snell) #63267
  • [409460f2ce] - quic: add reusePort option to QuicEndpoint (James M Snell) #63267
  • [9a2afffec9] - quic: coalesce received data into fewer buffers (James M Snell) #63267
  • [f9a6a2f558] - quic: apply multiple additional minor improvements (James M Snell) #63267
  • [ea5f3724ee] - quic: fix tests that are missing serverEndpoint close (James M Snell) #63267
  • [6cffc931fc] - quic: fixup some v8:: qualifiers (James M Snell) #63267
  • [9bc875e522] - quic: fix premature unref of endpoint when listening (James M Snell) #63267
  • [f940d6b1be] - quic: fixup UAFs in bindingdata, streams, and app (James M Snell) #63267
  • [fd00e0acb0] - quic: fix UAF in Application::OnTimeout() (James M Snell) #63267
  • [378dbf00e9] - quic: improve the quic js structure (James M Snell) #63267
  • [0045dc30b6] - quic: improve internal structure of QuicStream (James M Snell) #63267
  • [5e38946b26] - quic: add aliased struct arenas (James M Snell) #63267
  • [95430437a0] - quic: add handshake timeout and default connection limits (James M Snell) #63267
  • [5622701429] - quic: implement rate limiting for version nego and immediate close (James M Snell) #63267
  • [b171f391cd] - quic: fixup linting issue after other changes (James M Snell) #63267
  • [24e9f4f177] - quic: fix crash in early handshake failure (James M Snell) #63267
  • [5025e85d0a] - quic: eliminate per-received datagram allocation (James M Snell) #63267
  • [aec1e17ec5] - quic: cache the timestamp on send and receive (James M Snell) #63267
  • [9560084560] - quic: add support for future ECN marking (James M Snell) #63267
  • [2b3ff8ada2] - quic: improve batching of packet sending (James M Snell) #63267
  • [fe3639a4d6] - quic: improve backend quic packet processing (James M Snell) #63267
  • [f043013d9a] - src: remove TOCTOU race condition when encoding SAB-backed Buffers (Antoine du Hamel) #63517
  • [343958224d] - src: skip duplicate UTF-8 validation in TextDecoder fatal path (Mert Can Altin) #63231
  • [2906fa833d] - src: dispatch ToV8Value(string_view) via StringBytes::Encode (Mert Can Altin) #63370
  • [860f9d8d4b] - src: fix ContextifyContext property definer interception result (Chengzhong Wu) #63549
  • [fcccffcbe6] - src: fix crash when reading length on Storage.prototype (Mohamed Sayed) #63529
  • [55f65f9fb6] - src: improve token return value check (James M Snell) #63483
  • [7a36ca46cd] - src: expose node::RegisterContext to make a node managed context (Chengzhong Wu) #62322
  • [9bda92963c] - src,sqlite: only pass xFilter when user provided a callback (Antoine du Hamel) #63516
  • [563db50f38] - stream: switch to internal sleep binding (Antoine du Hamel) #63611
  • [a6e2322ee6] - stream: use data listener for compose forwarding (Trivikram Kamat) #63593
  • [7198895c6b] - stream: serialize concurrent share consumer reads (Trivikram Kamat) #63478
  • [70ba8be1d7] - stream: fix lint error (Antoine du Hamel) #63598
  • [1608d905a7] - stream: reject pending reads on iterator throw (Trivikram Kamat) #63555
  • [dc12b730d8] - stream: wait for push writer end fallback to drain (Trivikram Kamat) #63503
  • [4f40a85a1a] - stream: flush each fused stateless transform (Trivikram Kamat) #63468
  • [526e0fc427] - stream: avoid duplicate writes in toWritable (Trivikram Kamat) #63360
  • [0008d01f9c] - stream: propagate abort reason in share and broadcast (Trivikram Kamat) #63358
  • [217338e18b] - stream: fix Writable.toWeb() hang on synchronous drain (sangwook) #61197
  • [381f4b1b10] - stream: disallow writing string chunk with ‘buffer’ encoding (René) #63062
  • [cbee0de1cb] - stream: align Readable.toWeb termination with eos (ikeyan) #62394
  • [be91f0a927] - test: shorten path in net pipe connect errors (Matteo Collina) #63405
  • [83cada8bcc] - test: deflake test-debugger-probe-timeout (Joyee Cheung) #63547
  • [3560b96a10] - test: deflake test-webcrypto-crypto-job-mode (Filip Skokan) #63543
  • [0c9c52373a] - test: remove test-node-output-v8-warning (Joyee Cheung) #63469
  • [12052dbe14] - test: cover webcrypto prototype pollution systematically (Filip Skokan) #63520
  • [8c479f274a] - test: update test426-fixtures to 9b9e225b5a63139e9a95cdd1bf874a8f0b9d131 (Node.js GitHub Bot) #63373
  • [2ca32a5ee8] - test: update WPT for url to e4a4672e9e (Node.js GitHub Bot) #63372
  • [1bf875bd21] - test: deflake async-hooks statwatcher test (Trivikram Kamat) #63396
  • [97dbfa09f7] - test: avoid test_runner watch restart in spec snapshot (Trivikram Kamat) #63392
  • [8b038d7b33] - test: reduce watch mode restart flakiness (Trivikram Kamat) #63390
  • [f504c01d66] - test: get rid of unnecessary AbortController instanciations (Antoine du Hamel) #63489
  • [170585ff90] - test: isolate rerun-failures state file under tmpdir (Chemi Atlow) #63449
  • [935468a49e] - test: fixup quic tests (James M Snell) #63267
  • [fbbdfdcfc7] - test: wait for ok before initial break after restart (Yuya Inoue) #62807
  • [db808ad77d] - test: unskip snapshot reproducibility test (Joyee Cheung) #63307
  • [259d8b3dce] - test: update WPT for WebCryptoAPI to 97bbc7247a (Node.js GitHub Bot) #63417
  • [d56c6cd708] - test_runner: ignore erased TS lines in coverage (Matteo Collina) #63510
  • [16015f1565] - test_runner: fix suite diagnostic chanel end (Moshe Atlow) #63533
  • [003b9ccbe9] - test_runner: dont buffer unordered events in process isolation mode (Moshe Atlow) #63432
  • [fdc4b5aed4] - test_runner: fix –test-rerun-failures swallowing failures on retry (Chemi Atlow) #63431
  • [6a0bd2f329] - test_runner: add parentId to test events with testId (Moshe Atlow) #63435
  • [a646c93254] - test_runner: show replayed-from-attempt hint in spec reporter (Moshe Atlow) #63429
  • [b1fa59cbb6] - test_runner: preserve run duration when using test-rerun (Moshe Atlow) #63429
  • [6ac7ff24ac] - tools: refine v8.nix source definition (Antoine du Hamel) #63625
  • [59c01b959f] - tools: add lint rule for aborted AbortController (Trivikram Kamat) #63541
  • [2ab034f6f9] - tools: bump @node-core/doc-kit in /tools/doc in the doc group (dependabot[bot]) #63494
  • [a6af903e0a] - tools: bump brace-expansion from 5.0.5 to 5.0.6 in /tools/eslint (dependabot[bot]) #63415
  • [215cd543dd] - tools: skip commit-lint on backport pull requests (Marco) #63378
  • [0479f28e95] - tools: fix skip of test-internet on forks (Antoine du Hamel) #63492
  • [69dfadf785] - tools: mock some Python utils in v8.nix to reuse builds (Antoine du Hamel) #63454
  • [7b3e222cda] - util: remove unused functions (Antoine du Hamel) #63612
  • [5a1f67c27b] - util: create hex style cache and fast path (Guilherme Araújo) #62999

Update May 21, 2026 tracked by Updatify

2026-05-21, Version 24.16.0 'Krypton' (LTS), @aduh95

Notable Changes

  • [b267f6bca3] - (SEMVER-MINOR) crypto: implement randomUUIDv7() (nabeel378) #62553
  • [ec2451b9cd] - (SEMVER-MINOR) debugger: add edit-free runtime expression probes to node inspect (Joyee Cheung) #62713
  • [9705f628d9] - (SEMVER-MINOR) fs: add signal option to fs.stat() (Mert Can Altin) #57775
  • [40ccfdecf9] - (SEMVER-MINOR) fs: expose frsize field in statfs (Jinho Jang) #62277
  • [d7188af5c9] - (SEMVER-MINOR) http: harden ClientRequest options merge (Matteo Collina) #63082
  • [aa1d8a9afc] - (SEMVER-MINOR) http: add req.signal to IncomingMessage (Akshat) #62541
  • [6f37f7e240] - (SEMVER-MINOR) stream: propagate destruction in duplexPair (Ahmed Elhor) #61098
  • [d14029be7f] - (SEMVER-MINOR) test_runner: support test order randomization (Pietro Marchini) #61747
  • [d142c584cd] - (SEMVER-MINOR) test_runner: align mock timeout api (sangwook) #62820
  • [01a9552585] - (SEMVER-MINOR) test_runner: add mock-timers support for AbortSignal.timeout (DeveloperViraj) #60751
  • [00705a459a] - (SEMVER-MINOR) util: colorize text with hex colors (Guilherme Araújo) #61556

Commits

  • [dd72df060d] - assert,util: fix stale nested cycle memo entries (Ruben Bridgewater) #62509
  • [add94f4bc3] - build: track PDL files as inputs in inspector GN build (Robo) #62888
  • [1b1eb9e334] - build: remove redundant -fuse-linker-plugin from GCC LTO flags (Daniel Lando) #62667
  • [8752b604ec] - crypto: deduplicate and canonicalize CryptoKey usages (Filip Skokan) #62902
  • [341947e7fd] - crypto: reject unintended raw key format string input (Filip Skokan) #62974
  • [28a78747fc] - crypto: remove Argon2 KDF derivation from its job setup (Filip Skokan) #62863
  • [16e8c2b54d] - crypto: fix unsigned conversion of 4-byte RSA publicExponent (DeepView Autofix) #62839
  • [eeae754a87] - crypto: reject inherited key type names (Jonathan Lopes) #62875
  • [9dd5540325] - crypto: add memory tracking for secureContext openssl objects (Mert Can Altin) #59051
  • [b267f6bca3] - (SEMVER-MINOR) crypto: implement randomUUIDv7() (nabeel378) #62553
  • [7597d204c1] - crypto: add support for Ed25519 context parameter (Filip Skokan) #62474
  • [4bf85845da] - debugger: move ProbeInspectorSession and helpers to separate files (Joyee Cheung) #63013
  • [ec2451b9cd] - (SEMVER-MINOR) debugger: add edit-free runtime expression probes to node inspect (Joyee Cheung) #62713
  • [83e98f77b7] - deps: update corepack to 0.35.0 (Node.js GitHub Bot) #63375
  • [ec8c6b939a] - deps: V8: cherry-pick 657d8de27427 (Guy Bedford) #62784
  • [722c0c3274] - deps: update nghttp3 to 1.14.0 (Node.js GitHub Bot) #61187
  • [5304db93d3] - deps: update nghttp3 to 1.13.1 (Node.js GitHub Bot) #60046
  • [e073b3811d] - deps: update nghttp3 to 1.11.0 (James M Snell) #59249
  • [1d00313fb2] - deps: update ngtcp2 to 1.14.0 (James M Snell) #59249
  • [8b3a4fc18f] - deps: update amaro to 1.1.9 (Node.js GitHub Bot) #63090
  • [62fe0cfcd1] - deps: update llhttp to 9.4.1 (Node.js GitHub Bot) #63045
  • [137e09c8e9] - deps: update corepack to 0.34.7 (Node.js GitHub Bot) #62810
  • [14a4cb8fbc] - deps: update timezone to 2026b (Node.js GitHub Bot) #62962
  • [3e1036583a] - deps: upgrade npm to 11.13.0 (npm team) #62898
  • [01dfe5961c] - deps: cherry-pick libuv/libuv\@439a54b (skooch) #62881
  • [6cd368b10c] - deps: update sqlite to 3.53.0 (Node.js GitHub Bot) #62699
  • [f218a4f553] - deps: update nbytes to 0.1.4 (Node.js GitHub Bot) #62698
  • [b47688524a] - deps: update archs files for openssl-3.5.6 (Node.js GitHub Bot) #62629
  • [d202e2d343] - deps: upgrade openssl sources to openssl-3.5.6 (Node.js GitHub Bot) #62629
  • [2faba66341] - deps: update minimatch to 10.2.5 (Node.js GitHub Bot) #62594
  • [fa46c90c5d] - deps: update googletest to d72f9c8aea6817cdf1ca0ac10887f328de7f3da2 (Node.js GitHub Bot) #62593
  • [099ded5713] - deps: update simdjson to 4.6.1 (Node.js GitHub Bot) #62592
  • [7ce95afe96] - deps: libuv: cherry-pick aabb7651de (Santiago Gimeno) #62561
  • [57ef845623] - deps: update icu to 78.3 (Node.js GitHub Bot) #62324
  • [493ac40e12] - deps: update libuv to 1.52.1 (Node.js GitHub Bot) #61829
  • [b39508b368] - deps: update undici to 7.25.0 (Node.js GitHub Bot) #63011
  • [cb67a925e9] - deps: use npm undici\@seven tag in update-undici.sh (Matteo Collina) #62739
  • [aa1e0bc28b] - doc: fix typos and inconsistencies in crypto.md and webcrypto.md (Filip Skokan) #62828
  • [f2a1735ed9] - doc: fix duplicate word “to to” in util.styleText (Daijiro Wachi) #62917
  • [b6378e215c] - doc: fix node-config-schema (Сковорода Никита Андреевич) #61596
  • [233894a9ce] - doc: fix the TypeScript Execute (tsx) project link (David Thornton) #63093
  • [5d97919f8f] - doc: correct diagnostics_channel built-in channel names (Bryan English) #62995
  • [2a9ccc927e] - doc: use mjs/cjs blocks for callbackify null reason example (Daijiro Wachi) #62884
  • [ef413b5358] - doc: fix typo in test.md (Rich Trott) #62960
  • [76f21c5070] - doc: correct typo in PR contribution instructions (Mike McCready) #62738
  • [ca02af1f7d] - doc: fix duplicate word “of of” in postMessageToThread (Daijiro Wachi) #62917
  • [46c99ed526] - doc: fix duplicate word “for for” in compile cache (Daijiro Wachi) #62917
  • [1a60851734] - doc: fix typo in dns.lookup options description (Daijiro Wachi) #62882
  • [169b5ea2ed] - doc: fix Argon2 parameter bounds (Tobias Nießen) #62868
  • [9a3a190f4e] - doc: clarify diffieHellman.generateKeys recomputes same key (Kit Dallege) #62205
  • [0fba9e87d6] - doc: remove Ayase-252 and meixg from triagger team (Antoine du Hamel) #62841
  • [9c700f3446] - doc: clarify dns.lookup() callback signature when all is true (eungi) #62800
  • [6b7280bc17] - doc: add experimental modules lifetime policy (Paolo Insogna) #62753
  • [ce47ea31c9] - doc: clarify process._debugProcess() in Permission Model (Fahad Khan) #62537
  • [ba01633757] - doc: fix typo in devcontainer guide (Rohan Santhosh Kumar) #62687
  • [70b4d5839b] - doc: clarify Backport-PR-URL metadata added automatically (Mike McCready) #62668
  • [8126d1c3eb] - doc: update WPT test runner README.md (Filip Skokan) #62680
  • [978afea4b5] - doc: fix spelling in release announcement guidance (Rohan Santhosh Kumar) #62663
  • [1684ab8ff8] - doc: note non-monotonic clock in crypto.randomUUIDv7 (nabeel378) #62600
  • [86d4f07930] - doc: update bug bounty program (Rafael Gonzaga) #62590
  • [736ed8a08f] - doc: document TransformStream transformer.cancel option (Tom Pereira) #62566
  • [938af9be01] - doc: mention test runner retry attemp is zero based (Moshe Atlow) #62504
  • [94433e450f] - doc,src,test: fix dead inspector help URL (semimikoh) #62745
  • [ddf1f01659] - esm: add ERR_REQUIRE_ESM_RACE_CONDITION (Antoine du Hamel) #62462
  • [4a506acd16] - fs: add followSymlinks option to glob (Matteo Collina) #62695
  • [f4ea495f9b] - fs: restore fs patchability in ESM loader (Joyee Cheung) #62835
  • [63c111cd60] - fs: validate position argument before length === 0 early return (Edy Silva) #62674
  • [9705f628d9] - (SEMVER-MINOR) fs: add signal option to fs.stat() (Mert Can Altin) #57775
  • [40ccfdecf9] - (SEMVER-MINOR) fs: expose frsize field in statfs (Jinho Jang) #62277
  • [717476a24e] - http: emit ‘drain’ on OutgoingMessage only after buffers drain (Robert Nagy) #62936
  • [d7188af5c9] - (SEMVER-MINOR) http: harden ClientRequest options merge (Matteo Collina) #63082
  • [64f15c274a] - http: fix leaked error listener on sync HTTP req create + destroy (Tim Perry) #62872
  • [5c4798d799] - http: fix no_proxy leading-dot suffix matching (Daijiro Wachi) #62333
  • [9f3bc70ae5] - http: cleanup pipeline queue (Robert Nagy) #62534
  • [aa1d8a9afc] - (SEMVER-MINOR) http: add req.signal to IncomingMessage (Akshat) #62541
  • [900dc758ff] - http2: expose writable stream state on compat response (T) #63003
  • [b3bfe35912] - inspector: coerce key and value to string in webstorage events (Ali Hassan) #62616
  • [3dc3fb6ad8] - inspector: return errors when CDP protocol event emission fails (Ryuhei Shima) #62162
  • [4f3f21bd7c] - inspector: auto collect webstorage data (Ryuhei Shima) #62145
  • [36cc04189d] - inspector: initial support storage inspection (Ryuhei Shima) #61139
  • [1718bc3b9b] - inspector: fix absolute URLs in network http (bugyaluwang) #62955
  • [97e32c7a74] - lib: avoid quadratic shift() in startup snapshot callback (Daijiro Wachi) #62914
  • [25d2e999de] - lib: harden kKeyOps lookup with null prototype (Filip Skokan) #62877
  • [37d3913c8f] - lib: short-circuit WebIDL BufferSource SAB check (Filip Skokan) #62833
  • [430c69d25f] - lib: use js-only implementation of isDataView() (René) #62780
  • [3ba0add6a0] - lib: fix lint in internal/webstreams/util.js (Filip Skokan) #62806
  • [9b95c41398] - lib: fix sequence argument handling in Blob constructor (Ms2ger) #62179
  • [314dacdbee] - lib: improve Web Cryptography key validation ordering (Filip Skokan) #62749
  • [3d18162430] - lib: reject SharedArrayBuffer in web APIs per spec (Ali Hassan) #62632
  • [ada3ce879d] - lib: defer AbortSignal.any() following (sangwook) #62367
  • [b2981ec7eb] - meta: bump actions/download-artifact from 8.0.0 to 8.0.1 (dependabot[bot]) #62549
  • [7cd20667b5] - meta: bump github/codeql-action from 4.35.1 to 4.35.3 (dependabot[bot]) #63074
  • [91a07cfe9f] - meta: bump Mozilla-Actions/sccache-action from 0.0.9 to 0.0.10 (dependabot[bot]) #63073
  • [09e17fe47c] - meta: add automation policy (Chengzhong Wu) #62871
  • [59e7fb7986] - meta: move VoltrexKeyva to emeritus (Matteo Collina) #62895
  • [1e2915cfa6] - meta: bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (dependabot[bot]) #62845
  • [0253c6e2be] - meta: bump step-security/harden-runner from 2.16.1 to 2.19.0 (dependabot[bot]) #62844
  • [f503675b86] - meta: bump actions/setup-node from 6.3.0 to 6.4.0 (dependabot[bot]) #62842
  • [5e14e4d26e] - meta: broaden stale bot (Aviv Keller) #62658
  • [795db76f87] - meta: pass release version to release worker (flakey5) #62777
  • [ef384fe39f] - meta: add QUIC to CODEOWNERS (Tim Perry) #62652
  • [67e0ac568d] - meta: move Michael to emeritus (Michael Dawson) #62536
  • [5dad616393] - meta: populate apt list for slim runner in update-openssl workflow (René) #62628
  • [a869d25d8a] - meta: bump step-security/harden-runner from 2.15.0 to 2.16.1 (dependabot[bot]) #62550
  • [769efc0403] - meta: bump actions/setup-node from 6.2.0 to 6.3.0 (dependabot[bot]) #62548
  • [73fcc2b055] - meta: bump github/codeql-action from 4.32.4 to 4.35.1 (dependabot[bot]) #62547
  • [6c001246fe] - meta: bump codecov/codecov-action from 5.5.2 to 6.0.0 (dependabot[bot]) #62545
  • [5ee40d6a03] - meta: bump actions/cache from 5.0.3 to 5.0.4 (dependabot[bot]) #62543
  • [ca16ad8a05] - meta: require DCO signoff in commit message guidelines (James M Snell) #62510
  • [db9497fc41] - meta: expand memory leak DoS criteria to all DoS (Joyee Cheung) #62505
  • [13b7d08b8d] - module: remove duplicated checks from _resolveFilename (Antoine du Hamel) #62729
  • [6b53efb53a] - module,win: fix long subpath import (Stefan Stojanovic) #62101
  • [841dfbf6fc] - node-api: update libuv ABI stability note (Chengzhong Wu) #62789
  • [01090f2aa1] - node-api: add napi_create_external_sharedarraybuffer (Ben Noordhuis) #62623
  • [87443b4355] - node-api: execute tsfn finalizer after queue drains when aborted (Kevin Eady) #61956
  • [e95570c054] - process: handle rejections only when needed (Gürgün Dayıoğlu) #62919
  • [37d49f3219] - process: optimize asyncHandledRejections by using FixedQueue (Gürgün Dayıoğlu) #60854
  • [f697c55e38] - quic: add QuicEndpoint.listening & QuicStream.destroy() and tests (Tim Perry) #62648
  • [c128942b69] - quic: fixup token verification to handle zero expiration (James M Snell) #62620
  • [abb881ec92] - quic: support multiple ALPN negotiation (James M Snell) #62620
  • [476926c2ad] - quic: apply multiple TLS context improvements and SNI support (James M Snell) #62620
  • [76d9c24b95] - quic: implement rapidhash for hashing improvements (James M Snell) #62620
  • [08726cd43d] - quic: move quic behind compile time flag (Matteo Collina) #61444
  • [ea4f19aaa7] - quic: use arena allocation for packets (James M Snell) #62589
  • [21e9239e2a] - quic: fixup linting/formatting issues (James M Snell) #62387
  • [edeed4303b] - quic: update http3 impl details (James M Snell) #62387
  • [7f3a85e6aa] - quic: fix a handful of bugs and missing functionality (James M Snell) #62387
  • [45c1ebddf8] - quic: copy options.certs buffer instead of detaching (Chengzhong Wu) #61403
  • [a31a8ee680] - quic: reduce boilerplate and other minor cleanups (James M Snell) #59342
  • [3be70ff43a] - quic: multiple fixups and updates (James M Snell) #59342
  • [b91a93444c] - quic: update more of the quic to the new compile guard (James M Snell) #59342
  • [ca0080c164] - quic: few additional small comment edits in cid.h (James M Snell) #59342
  • [6553202d83] - quic: fixup NO_ERROR macro conflict on windows (James M Snell) #59381
  • [6df1508ac2] - quic: fixup windows coverage compile error (James M Snell) #59381
  • [b2b0bf8b04] - quic: update the guard to check openssl version (James M Snell) #59249
  • [5556b154bd] - quic: start re-enabling quic with openssl 3.5 (James M Snell) #59249
  • [2ca42c8263] - repl: keep reference count for process.on('newListener') (Anna Henningsen) #61895
  • [2f37f9177f] - sqlite: use OneByte for ASCII text and internalize col names (Ali Hassan) #61954
  • [3c96ae1b2f] - sqlite: add serialize() and deserialize() (Ali Hassan) #62579
  • [be4d2f3a4c] - sqlite: enable Percentile extension (Jurj Andrei George) #61295
  • [dafed453b2] - src: clean up experimental flag variables (Antoine du Hamel) #62759
  • [dca1e6aeea] - src: expose help texts into node-config-schema.json (Pietro Marchini) #58680
  • [28c4f44eb1] - src: add permission support to config file (Marco Ippolito) #60746
  • [f49175b220] - src: fix small compile warning in quic/streams.cc (James M Snell) #60118
  • [c9d4a446d8] - src: cleanup quic TransportParams class (James M Snell) #59884
  • [99bb02fd9e] - src: swap dotenv and config file parsing order (Marco Ippolito) #63035
  • [ecb4d49b7b] - src: add missing \<cstdlib> for abort() declaration (Charles Kerr) #63001
  • [b6219b6362] - src: fix crash in GetErrorSource() for invalid using syntax (semimikoh) #62770
  • [b5ca5ad4c5] - src: simplify TCPWrap::Connect signature (Anna Henningsen) #62929
  • [ef7ffce7cf] - src: use DCHECK in AsyncWrap::MakeCallback instead emiting a warning (Gerhard Stöbich) #62795
  • [cd9890a5ab] - src: fix MaybeStackBuffer char_traits deprecation warning (om-ghante) #62507
  • [c70ff44aee] - src: use context-free V8 message column getters (René) #62778
  • [06c405f1d7] - src: coerce spawnSync args to string once (Antoine du Hamel) #62633
  • [6151999ad6] - src: use stack allocation for small string encoding (Ali Hassan) #62431
  • [a71a4ac7a3] - src: add contextify interceptor debug logs (Chengzhong Wu) #62460
  • [ad9a2909c2] - src: workaround AIX libc++ std::filesystem bug (Richard Lau) #62788
  • [7792f1ae47] - stream: copyedit webstreams/adapter.js (Antoine du Hamel) #63034
  • [1397d8ce5c] - stream: remove duplicated utility (Antoine du Hamel) #63031
  • [ff86b1d64f] - stream: simplify setPromiseHandled utility (Antoine du Hamel) #63032
  • [24a078149a] - stream: validate ReadableStream.from iterator objects (Daeyeon Jeong) #62911
  • [cfb1fa9680] - stream: reject duplicate nested transferables (Daeyeon Jeong) #62831
  • [d0c913758a] - stream: ensuring cross-destruction in _duplexify to prevent leaks (Daijiro Wachi) #62824
  • [978f5c15d7] - stream: simplify readableStreamFromIterable (Antoine du Hamel) #62651
  • [3527646ba5] - stream: fix nested compose error propagation (Matteo Collina) #62556
  • [dfb9edef4f] - stream: allow shared array buffer sources in writable webstream adapter (René) #62163
  • [f00cdab627] - stream: simplify createPromiseCallback (Antoine du Hamel) #62650
  • [3ed783535f] - stream: fix writev unhandled rejection in fromWeb (sangwook) #62297
  • [29b196694c] - stream: noop pause/resume on destroyed streams (Robert Nagy) #62557
  • [d73dbb9fc8] - stream: refactor duplexify to be less suceptible to prototype pollution (Antoine du Hamel) #62559
  • [6f37f7e240] - (SEMVER-MINOR) stream: propagate destruction in duplexPair (Ahmed Elhor) #61098
  • [b8816580e9] - test: generate localstorage.db in a temp dir (Chengzhong Wu) #62660
  • [31a863fd29] - test: update WPT for url to 258f285de0 (Node.js GitHub Bot) #63087
  • [d0d19bd8e3] - test: update WPT for streams to f8f26a372f (Node.js GitHub Bot) #62864
  • [f50ac5bc78] - test: improve config-file permission test coverage (Rafael Gonzaga) #60929
  • [a0f90000f4] - test: export isRiscv64 from common module (Jamie Magee) #62609
  • [da4dd8646f] - test: normalize known inspector crash as completion (Joyee Cheung) #62851
  • [b7fdd94a4c] - test: account for RFC 7919 FFDHE negotiation in OpenSSL 4.0 (Filip Skokan) #62805
  • [375a993aaf] - test: skip tls-deprecated secp256k1 on OpenSSL 4.0 (Filip Skokan) #62805
  • [698d8287d1] - test: use an always invalid cipher and cover OpenSSL 4.0 behaviours (Filip Skokan) #62805
  • [036bc6f300] - test: use valid DER OCSP responses (Filip Skokan) #62805
  • [3aa9938da8] - test: skip test-tls-error-stack when engines are unsupported (Filip Skokan) #62805
  • [947f1ae246] - test: accept renamed OpenSSL 4.0 error code and reason (Filip Skokan) #62805
  • [afdd355622] - test: update test/addons/openssl-binding for OpenSSL 4.0 (Filip Skokan) #62805
  • [8637524a99] - test: mark test-snapshot-reproducible flaky (Filip Skokan) #62808
  • [c22d34134b] - test: check contextify contextual store behavior in strict mode (René) #62571
  • [0b4e0d3c94] - test: update tls junk data error expectations (Filip Skokan) #62629
  • [85d83c2cdb] - test: ensure WPT report is in out/wpt (Filip Skokan) #62637
  • [9e21711c60] - test: improve WPT runner summary (Filip Skokan) #62636
  • [e04e2c9ac1] - test: skip url WPT subtests instead of modifying test script (Filip Skokan) #62635
  • [7b1211f88c] - test: capture negative utimes mtime at call time (Yuya Inoue) #62490
  • [f1a6e9fcc7] - test: allow skipping individual WPT subtests (Filip Skokan) #62517
  • [23f927542e] - test: use on-disk fixture for test-npm-install (Joyee Cheung) #62584
  • [4739c45879] - test: update WPT for url to 7a3645b79a (Node.js GitHub Bot) #62591
  • [f68189b839] - test_runner: add testId to test events (Moshe Atlow) #62772
  • [5c2770446e] - test_runner: publish to TracingChannel for OTel instrumentation (Moshe Atlow) #62502
  • [d14029be7f] - (SEMVER-MINOR) test_runner: support test order randomization (Pietro Marchini) #61747
  • [3f74a58979] - test_runner: update node-config-schema (Pietro Marchini) #58680
  • [60c83f6199] - test_runner: fix failing suite hooks when marked with todo (Moshe Atlow) #63097
  • [d142c584cd] - (SEMVER-MINOR) test_runner: align mock timeout api (sangwook) #62820
  • [3e72065ed6] - test_runner: fix suite rerun edge case (Moshe Atlow) #62860
  • [01a9552585] - (SEMVER-MINOR) test_runner: add mock-timers support for AbortSignal.timeout (DeveloperViraj) #60751
  • [dd43efffa6] - test_runner: add passed, attempt, and diagnostic to SuiteContext (Moshe Atlow) #62504
  • [a12dc445cc] - tools: add a check for clean git tree after tests (Antoine du Hamel) #62661
  • [5b49178375] - tools: use LTS Node.js in notify-on-push workflow (Nenad Spasenic) #63084
  • [5a93bde5bb] - tools: update gr2m/create-or-update-pull-request-action to v1.10.1 (Mike McCready) #63065
  • [b133019d19] - tools: simplify update-undici.sh (Antoine du Hamel) #63044
  • [04d3538074] - tools: do not run test-linux on unrelated tools changes (Antoine du Hamel) #63037
  • [4d396ac4a5] - tools: bump the eslint group in /tools/eslint with 4 updates (dependabot[bot]) #62848
  • [9354bf40e7] - tools: update gyp-next to 0.22.1 (Node.js GitHub Bot) #62961
  • [c23db1ca85] - tools: fix commit linter for semver-major release proposals (Antoine du Hamel) #62993
  • [6e097ee3f1] - tools: consolidate and simplify .editorconfig deps section (Daijiro Wachi) #62887
  • [a47ea6d6ea] - tools: set bot as author of tools-deps-update PRs (Antoine du Hamel) #62856
  • [00e86f0471] - tools: bump brace-expansion from 5.0.4 to 5.0.5 in /tools/eslint (dependabot[bot]) #62458
  • [cd7e262e75] - tools: bump brace-expansion in /tools/clang-format (dependabot[bot]) #62467
  • [bfc1319bc8] - tools: exclude @node-core/doc-kit from dependabot cooldown (Levi Zim) #62775
  • [a932fbd10b] - tools: re-enable undici WPTs in daily wpt.fyi job (Filip Skokan) #62677
  • [f7bd9e3055] - tools: update gyp-next to 0.22.0 (Node.js GitHub Bot) #62697
  • [c400d46d87] - tools: improve backport review script (Antoine du Hamel) #62573
  • [be23b75814] - tools: improve output for unexpected passes in WTP tests (Antoine du Hamel) #62587
  • [609c013ece] - tools: revert OpenSSL update workflow to ubuntu-latest (Richard Lau) #62627
  • [81bac1ebfd] - tools: bump the eslint group in /tools/eslint with 2 updates (dependabot[bot]) #62552
  • [1fee26522d] - tools: allow triagers to queue a PR for CI until it’s reviewed (Antoine du Hamel) #62524
  • [332088f929] - tools: do not run commit-lint on release proposals (Antoine du Hamel) #62523
  • [9a25fc8a4d] - url: process crash via malformed UNC hostname in pathToFileURL() (Nicola Del Gobbo) #62574
  • [7bd08ff60a] - url: optimize URLSearchParams set/delete duplicate handling (Gürgün Dayıoğlu) #62266
  • [2d636388fa] - url: align default argument handling for URLPattern with webidl (Filip Skokan) #62719
  • [00705a459a] - (SEMVER-MINOR) util: colorize text with hex colors (Guilherme Araújo) #61556
  • [0e2adb3e45] - watch: track worker entry files in watch mode (SudhansuBandha) #62368
  • [c58fe38211] - watch: fix –env-file-if-exists crashing on linux if the file is missing (Efe) #61870

Update May 20, 2026 tracked by Updatify

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

Notable Changes

  • [189d43a193] - doc: mark stream.compose stable (Matteo Collina) #62562
  • [f858c6140e] - (SEMVER-MINOR) fs: add Temporal.Instant support to Stats and BigIntStats (Livia Medeiros) #60789
  • [0cbb3895df] - (SEMVER-MINOR) http: add writeInformation to send arbitrary 1xx status codes (Tim Perry) #63155

Commits

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

Update May 13, 2026 tracked by Updatify

2026-05-13, Version 22.22.3 'Jod' (LTS), @marco-ippolito

Commits

  • [4f780905c5] - crypto: fix potential null pointer dereference when BIO_meth_new() fails (Nora Dossche) #61788
  • [4a09efb947] - crypto: update root certificates to NSS 3.121 (Node.js GitHub Bot) #62485
  • [e4c0d99839] - deps: update timezone to 2026a (Node.js GitHub Bot) #62164
  • [0226c8dd7a] - deps: update simdjson to 4.5.0 (Node.js GitHub Bot) #62382
  • [e742ab748c] - deps: update sqlite to 3.51.3 (Node.js GitHub Bot) #62256
  • [73cac0571a] - deps: update amaro to 1.1.8 (Node.js GitHub Bot) #62151
  • [ae5c162b93] - deps: update amaro to 1.1.7 (Node.js GitHub Bot) #61730
  • [b819cb9977] - deps: update amaro to 1.1.6 (Node.js GitHub Bot) #61603
  • [bbcce09dc7] - deps: update sqlite to 3.52.0 (Node.js GitHub Bot) #62150
  • [22ff2d81ce] - deps: update simdjson to 4.3.1 (Node.js GitHub Bot) #61930
  • [f49b51d75c] - deps: update acorn-walk to 8.3.5 (Node.js GitHub Bot) #61928
  • [1a5cec0d49] - deps: update acorn to 8.16.0 (Node.js GitHub Bot) #61925
  • [d339497688] - deps: update nbytes to 0.1.3 (Node.js GitHub Bot) #61879
  • [3ff8ffd459] - deps: remove stale OpenSSL arch configs (René) #61834
  • [b8ddbc1e9a] - deps: update llhttp to 9.3.1 (Node.js GitHub Bot) #61827
  • [ffda97afd4] - deps: update googletest to 2461743991f9aa53e9a3625eafcbacd81a3c74cd (Node.js GitHub Bot) #62484
  • [79aa32cf4f] - deps: update googletest to 73a63ea05dc8ca29ec1d2c1d66481dd0de1950f1 (Node.js GitHub Bot) #61927
  • [b6957e13b6] - deps: update archs files for openssl-3.5.6 (Node.js GitHub Bot) #62629
  • [3a27669063] - deps: upgrade openssl sources to openssl-3.5.6 (Node.js GitHub Bot) #62629
  • [d568a1bb53] - deps: upgrade npm to 10.9.8 (npm team) #62463
  • [ec11f3c1d5] - deps: V8: backport 85b390089e51 (Thibaud Michaud) #62783
  • [08609712ed] - deps: V8: backport 1b27e4674f11 (Thibaud Michaud) #62783
  • [dcc60d5ab2] - deps: V8: backport 9997fc013952 (Thibaud Michaud) #62783
  • [1d1f4451fb] - deps: V8: cherry-pick b96e40d5ac85 (Clemens Backes) #62783
  • [2268567237] - deps: V8: cherry-pick 7cb6188cf913 (Thibaud Michaud) #62783
  • [92804cdbea] - deps: V8: cherry-pick e7ccf0af1bdd (Thibaud Michaud) #62783
  • [eae2c27a40] - deps: V8: cherry-pick 8e214ec3ec8c (Thibaud Michaud) #62783
  • [a1799a49bb] - deps: V8: backport 63b8849d73ae (Thibaud Michaud) #62783
  • [a2df2d8731] - deps: V8: backport 323942700cfe (Thibaud Michaud) #62783
  • [e3d65c7dca] - deps: V8: backport 89dc6eab605c (Thibaud Michaud) #62783
  • [5e7db133de] - deps: V8: backport 910cb91733dc (Jakob Kummerow) #62783
  • [d0c24a28af] - deps: V8: cherry-pick b8f91e510e0f (Thibaud Michaud) #62783
  • [d358687824] - deps: V8: cherry-pick cf03d55db2a0 (Thibaud Michaud) #62783
  • [67c8b2c349] - deps: V8: cherry-pick 692f3d526a38 (Sébastien Doeraene) #62783
  • [71e5a59ffd] - deps: V8: cherry-pick c734674e03f9 (Manos Koukoutos) #62783
  • [f0dbe81c7b] - deps: V8: cherry-pick b2f3aea23a01 (Thibaud Michaud) #62783
  • [d333f480c3] - deps: V8: cherry-pick 5f1342c20b59 (Matthias Liedtke) #62783
  • [db722725bb] - deps: use npm undici\@six tag in update-undici.sh (Matteo Collina) #63012
  • [9b57979d9c] - doc: add Rafael to last security release steward (Rafael Gonzaga) #62423
  • [d8075585bf] - doc: add path to vulnerabilities.json mention (Rafael Gonzaga) #62355
  • [6ec9a70204] - doc: clarify fs.ReadStream and fs.WriteStream are not constructable (Kit Dallege) #62208
  • [1fc86fcb6e] - doc: add note (and caveat) for mock.module about customization hooks (Jacob Smith) #62075
  • [491be80bd9] - doc: add efekrskl as triager (Efe) #61876
  • [18558293a3] - doc: fix module.stripTypeScriptTypes indentation (René) #61992
  • [8e20976522] - doc: explicitly mention Slack handle (Rafael Gonzaga) #61986
  • [70b8e6b4fb] - doc: rename invalid function parameter (René) #61942
  • [4045c76f6c] - doc: clarify status of feature request issues (Antoine du Hamel) #61505
  • [c54652f2aa] - doc: remove incorrect mention of module in typescript.md (Rob Palmer) #61839
  • [9fad6cedf5] - doc: clarify async caveats for events.once() (René) #61572
  • [2f1e5733fe] - doc: update Juan’s security steward info (Juan José) #61754
  • [a64bdb5068] - doc: fix overstated Date header requirement in response.sendDate (Kit Dallege) #62206
  • [02797de923] - doc: fix small environment_variables typo (chris) #62279
  • [f22ebdc809] - doc: fix small logic error in DETECT_MODULE_SYNTAX (René) #62025
  • [9f4508062a] - doc: fix methods being documented as properties in process.md (Antoine du Hamel) #61765
  • [3ea39ff135] - doc: fix dropdown menu being obscured at <600px due to stacking context (Jeff) #61735
  • [c22445079b] - doc: fix spacing in process message event (Aviv Keller) #61756
  • [32831b5223] - doc: fix broken links of net.md (YuSheng Chen) #61673
  • [005508d509] - doc: remove obsolete Boxstarter automated install (Mike McCready) #61785
  • [37c2fd6f7d] - esm: fix path normalization in finalizeResolution (Antoine du Hamel) #62080
  • [1769d74613] - esm: populate separate cache for require(esm) in imported CJS (Joyee Cheung) #59679
  • [ee02966ffc] - http: fix keep-alive socket reuse race in requestOnFinish (Martin Slota) #61710
  • [2fdb5ce6cc] - http2: fix FileHandle leak in respondWithFile (sangwook) #61707
  • [aa2c1eca04] - lib: fix source map url parse in dynamic imports (Chengzhong Wu) #61990
  • [785b00cbeb] - meta: pass release version to release worker (flakey5) #62777
  • [447fb9a0b5] - meta: persist sccache daemon until end of build workflows (René) #61639
  • [5065a0acb3] - module: do not invoke resolve hooks twice for imported cjs (Joyee Cheung) #61529
  • [9a2e21305d] - module: do not wrap module._load when tracing is not enabled (Joyee Cheung) #61479
  • [b9240bc063] - module: fix sync resolve hooks for require with node: prefixes (Joyee Cheung) #61088
  • [2e91b28aaf] - module: handle null source from async loader hooks in sync hooks (Joyee Cheung) #59929
  • [39147c154e] - module: use sync cjs when importing cts (Marco Ippolito) #60072
  • [12a2462b2c] - module: only put directly require-d ESM into require.cache (Joyee Cheung) #59874
  • [cf39566277] - src: fix flags argument offset in JSUdpWrap (Weixie Cui) #61948
  • [578a9a9230] - src: clamp WriteUtf8 capacity to INT_MAX in EncodeInto (semimikoh) #62621
  • [57c3035fec] - stream: fix decoded fromList chunk boundary check (Thomas Watson) #61884
  • [57fb008bb8] - test: update tls junk data error expectations (Filip Skokan) #62629
  • [363f9a9d18] - test: skip test-url on --shared-ada builds (Antoine du Hamel) #62019
  • [daaead342b] - test: simplify encodeInto large buffer regression test (semimikoh) #62621
  • [ecfa766b41] - tools: fix auto-start-ci (Antoine du Hamel) #61900
  • [17c0a610af] - tools: fix parsing of commit trailers in lint-release-proposal GHA (Antoine du Hamel) #62077
  • [89ad7dc63b] - tools: enforce removal of lts-watch-* labels on release proposals (Antoine du Hamel) #61672
  • [5f9bb8ef0c] - tools: revert tools GHA workflow to ubuntu-latest (Richard Lau) #62024
  • [977ef80ac1] - url: process crash via malformed UNC hostname in pathToFileURL() (Nicola Del Gobbo) #62574
  • [ad8f518a81] - zlib: fix use-after-free when reset() is called during write (Matteo Collina) #62325

Update May 7, 2026 tracked by Updatify

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

Notable Changes

Experimental node:ffi module

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

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

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

Contributed by Paolo Insogna in #62072.

Other Notable Changes

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

Commits

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

Update May 5, 2026 tracked by Updatify

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

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

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

Notable Changes

Temporal API

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

Contributed by Richard Lau in #61806.

V8 14.6

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

This version also includes:

Contributed by Michaël Zasso in #61898.

Undici 8

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

Deprecations and Removals

  • [dff46c07c3] - (SEMVER-MAJOR) crypto: move DEP0182 to End-of-Life (Tobias Nießen) #61084
  • [93c25815ee] - (SEMVER-MAJOR) http: move writeHeader to end-of-life (Sebastian Beltran) #60635

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

  • [c755b0113c] - (SEMVER-MAJOR) stream: move _stream_* to end-of-life (Sebastian Beltran) #60657

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

  • [adac077484] - (SEMVER-MAJOR) crypto: runtime-deprecate DEP0203 and DEP0204 (Filip Skokan) #62453
  • [ac6375417a] - (SEMVER-MAJOR) stream: promote DEP0201 to runtime deprecation (René) #62173
  • [98907f560f] - (SEMVER-MAJOR) module: runtime-deprecate module.register() (Geoffrey Booth) #62401
  • [89f4b6cddb] - (SEMVER-MAJOR) module: remove –experimental-transform-types (Marco Ippolito) #61803

Semver-Major Commits

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

Semver-Minor Commits

  • [d4fa60cf9f] - (SEMVER-MINOR) crypto: add raw key formats support to the KeyObject APIs (Filip Skokan) #62240

Semver-Patch Commits

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

Update Apr 16, 2026 tracked by Updatify

2026-04-15, Version 24.15.0 'Krypton' (LTS), @aduh95

Notable Changes

  • [3d87ecacbc] - (SEMVER-MINOR) cli: add –max-heap-size option (tannal) #58708
  • [83c38672f7] - cli: add –require-module/–no-require-module (Joyee Cheung) #60959
  • [54ef940e01] - (SEMVER-MINOR) crypto: add raw key formats support to the KeyObject APIs (Filip Skokan) #62240
  • [f4a3edc47a] - (SEMVER-MINOR) fs: add throwIfNoEntry option for fs.stat and fs.promises.stat (Juan José) #61178
  • [5cdcba17cc] - (SEMVER-MINOR) http2: add http1Options for HTTP/1 fallback configuration (Amol Yadav) #61713
  • [8b6be3fe14] - module: mark require(esm) as stable (Joyee Cheung) #60959
  • [68fbc0c6cc] - module: mark module compile cache as stable (Joyee Cheung) #60971
  • [c851e76f8c] - (SEMVER-MINOR) net: add setTOS and getTOS to Socket (Amol Yadav) #61503
  • [6ac4304c87] - (SEMVER-MINOR) sqlite: add limits property to DatabaseSync (Mert Can Altin) #61298
  • [aaf9af1672] - sqlite: mark as release candidate (Matteo Collina) #61262
  • [eb77a7a297] - (SEMVER-MINOR) src: add C++ support for diagnostics channels (RafaelGSS) #61869
  • [6834ca13bb] - (SEMVER-MINOR) stream: rename Duplex.toWeb() type option to readableType (René) #61632
  • [f5f21d36a6] - test_runner: add exports option for module mocks (sangwook) #61727
  • [1f2025fd1e] - (SEMVER-MINOR) test_runner: expose worker ID for concurrent test execution (Ali Hassan) #61394
  • [1ca20fc33d] - (SEMVER-MINOR) test_runner: show interrupted test on SIGINT (Matteo Collina) #61676

Commits

  • [148373cea1] - assert,util: improve comparison performance (Ruben Bridgewater) #61176
  • [e5558b0859] - assert,util: fix deep comparing invalid dates skipping properties (Ruben Bridgewater) #61076
  • [83cffd92b5] - async_hooks: enabledHooksExist shall return if hooks are enabled (Gerhard Stöbich) #61054
  • [2c9436b43d] - benchmark: fix destructuring in dgram/single-buffer (Ali Hassan) #62084
  • [837acd7382] - benchmark: add startup benchmark for ESM entrypoint (Joyee Cheung) #61769
  • [a6ced7d272] - buffer: improve performance of multiple Buffer operations (Ali Hassan) #61871
  • [a82003bf8b] - buffer: optimize buffer.concat performance (Mert Can Altin) #61721
  • [83dfd0be1d] - buffer: disallow ArrayBuffer transfer on pooled buffer (Chengzhong Wu) #61372
  • [ed2d0cb1bf] - build: support empty libname flags in configure.py (Antoine du Hamel) #62477
  • [09f7920267] - build: fix timezone-update path references (Chengzhong Wu) #62280
  • [af46b15b91] - build: use path-ignore in GHA coverage-windows.yml (Chengzhong Wu) #61811
  • [2cf77eadd1] - build: generate_config_gypi.py generates valid JSON (Shelley Vohr) #61791
  • [e0220f0c35] - build: build with v8 gdbjit support on supported platform (Joyee Cheung) #61010
  • [5505511dcb] - build: enable -DV8_ENABLE_CHECKS flag (Ryuhei Shima) #61327
  • [5f8ecf3940] - build: add –debug-symbols to build with -g without enabling DCHECKs (Joyee Cheung) #61100
  • [ab18c0867b] - build: fix –node-builtin-modules-path (Filip Skokan) #62115
  • [bfa60d5782] - build: fix GN for new merve dep (Shelley Vohr) #61984
  • [0d1975fe3a] - build,win: add WinGet Visual Studio 2022 Build Tools Edition config (Mike McCready) #61652
  • [10b2bb5fa6] - child_process: add tracing channel for spawn (Marco) #61836
  • [3d87ecacbc] - (SEMVER-MINOR) cli: add –max-heap-size option (tannal) #58708
  • [83c38672f7] - cli: add –require-module/–no-require-module (Joyee Cheung) #60959
  • [9d37233824] - crypto: update root certificates to NSS 3.121 (Node.js GitHub Bot) #62485
  • [b0cbfe38a4] - crypto: add crypto::GetSSLCtx API for addon access to OpenSSL contexts (Tim Perry) #62254
  • [dc034a4ac9] - crypto: reject ML-KEM/ML-DSA PKCS#8 import without seed in SubtleCrypto (Filip Skokan) #62218
  • [8aa6e706df] - crypto: refactor WebCrypto AEAD algorithms auth tag handling (Filip Skokan) #62169
  • [20cb932bcf] - crypto: read algorithm name property only once in normalizeAlgorithm (Filip Skokan) #62170
  • [e2934162b4] - crypto: add missing AES dictionaries (Filip Skokan) #62099
  • [8b8db52f65] - crypto: fix importKey required argument count check (Filip Skokan) #62099
  • [bd5458db29] - crypto: fix missing nullptr check on RSA_new() (ndossche) #61888
  • [7302c7ed22] - crypto: fix handling of null BUF_MEM* in ToV8Value() (Nora Dossche) #61885
  • [8d0c22ea20] - crypto: fix potential null pointer dereference when BIO_meth_new() fails (Nora Dossche) #61788
  • [72aad8b40f] - crypto: always return certificate serial numbers as uppercase (Anna Henningsen) #61752
  • [2395fc0f4d] - crypto: rename CShakeParams and KmacParams length to outputLength (Filip Skokan) #61875
  • [541be3aaf2] - crypto: recognize raw formats in keygen (Filip Skokan) #62480
  • [54ef940e01] - (SEMVER-MINOR) crypto: add raw key formats support to the KeyObject APIs (Filip Skokan) #62240
  • [bef1949823] - deps: V8: cherry-pick 33e7739c134d (Thibaud Michaud) #62567
  • [2e1a565a55] - deps: update ada to 3.4.4 (Node.js GitHub Bot) #62414
  • [d0418bad10] - deps: update timezone to 2026a (Node.js GitHub Bot) #62164
  • [53aad66415] - deps: update googletest to 2461743991f9aa53e9a3625eafcbacd81a3c74cd (Node.js GitHub Bot) #62484
  • [90fab71a84] - deps: update simdjson to 4.5.0 (Node.js GitHub Bot) #62382
  • [a416ddf6d9] - deps: V8: cherry-pick cf1bce40a5ef (Richard Lau) #62449
  • [4d9123e57d] - deps: upgrade npm to 11.12.1 (npm team) #62448
  • [952d715028] - deps: update sqlite to 3.51.3 (Node.js GitHub Bot) #62256
  • [f3fd7ed426] - deps: update googletest to 73a63ea05dc8ca29ec1d2c1d66481dd0de1950f1 (Node.js GitHub Bot) #61927
  • [71a2f82d7c] - deps: upgrade npm to 11.11.1 (npm team) #62216
  • [84f60c26f7] - deps: update amaro to 1.1.8 (Node.js GitHub Bot) #62151
  • [43159d0e5f] - deps: update sqlite to 3.52.0 (Node.js GitHub Bot) #62150
  • [b887657b38] - deps: V8: cherry-pick aa0b288f87cc (Richard Lau) #62136
  • [7ab885b323] - deps: update ada to 3.4.3 (Node.js GitHub Bot) #62049
  • [671ddec2b9] - deps: update minimatch to 10.2.4 (Node.js GitHub Bot) #62016
  • [290fe37d4d] - deps: update simdjson to 4.3.1 (Node.js GitHub Bot) #61930
  • [a13bee76b5] - deps: update acorn-walk to 8.3.5 (Node.js GitHub Bot) #61928
  • [f0e40b35b9] - deps: update acorn to 8.16.0 (Node.js GitHub Bot) #61925
  • [463dfa023a] - deps: update minimatch to 10.2.2 (Node.js GitHub Bot) #61830
  • [4b2e4bb108] - deps: update nbytes to 0.1.3 (Node.js GitHub Bot) #61879
  • [5626cb83d0] - deps: remove stale OpenSSL arch configs (René) #61834
  • [52668874fd] - deps: update llhttp to 9.3.1 (Node.js GitHub Bot) #61827
  • [b3387b07b1] - deps: update googletest to 5a9c3f9e8d9b90bbbe8feb32902146cb8f7c1757 (Node.js GitHub Bot) #61731
  • [196268cb4c] - deps: V8: cherry-pick c5ff7c4d6cde (Chengzhong Wu) #61372
  • [36869b52de] - deps: update merve to 1.2.2 (Node.js GitHub Bot) #62213
  • [3cbac055de] - deps: update merve to 1.2.0 (Node.js GitHub Bot) #62149
  • [7757cc3495] - deps: V8: backport 6a0a25abaed3 (Vivian Wang) #61670
  • [359797c2fb] - deps,src: prepare for cpplint update (Michaël Zasso) #60901
  • [ace802e59b] - diagnostics_channel: add diagnostics channels for web locks (Ilyas Shabi) #62123
  • [a072411b03] - doc: remove spawn with shell example from bat/cmd section (Kit Dallege) #62243
  • [0b152449af] - doc: fix typo in –disable-wasm-trap-handler description (Dmytro Semchuk) #61820
  • [73ea387ad7] - doc: remove obsolete Boxstarter automated install (Mike McCready) #61785
  • [7f234add8e] - doc: deprecate module.register() (DEP0205) (Geoffrey Booth) #62395
  • [12fc3c6a30] - doc: clarify that features cannot be both experimental and deprecated (Antoine du Hamel) #62456
  • [1ecc5962a2] - doc: fix ‘transfered’ typo in quic.md (lilianakatrina684-a11y) #62492
  • [56741a1303] - doc: move sqlite type conversion section to correct level (René) #62482
  • [12b04d17d5] - doc: add Rafael to last security release steward (Rafael Gonzaga) #62423
  • [c4567e4a8d] - doc: fix overstated Date header requirement in response.sendDate (Kit Dallege) #62206
  • [384a41047f] - doc: enhance clarification about the main field (Mowafak Almahaini) #62302
  • [93d19b1a1c] - doc: minor typo fix (Jeff Matson) #62358
  • [3db35d2c59] - doc: add path to vulnerabilities.json mention (Rafael Gonzaga) #62355
  • [57b105c9d5] - doc: deprecate CryptoKey use in node:crypto (Filip Skokan) #62321
  • [490168c993] - doc: fix small environment_variables typo (chris) #62279
  • [0291be584b] - doc: test and test-only targets do not run linter (Xavier Stouder) #62120
  • [ba0a82a1e1] - doc: clarify fs.ReadStream and fs.WriteStream are not constructable (Kit Dallege) #62208
  • [125bdbf504] - doc: clarify that any truthy value of shell is part of DEP0190 (Antoine du Hamel) #62249
  • [a141ad0aeb] - doc: remove outdated Chrome 66 and ndb references from debugger (Kit Dallege) #62202
  • [44bde8e573] - doc: add note (and caveat) for mock.module about customization hooks (Jacob Smith) #62075
  • [8c46a1ca1a] - doc: copyedit addons.md (Antoine du Hamel) #62071
  • [7f989f02f7] - doc: correct util.convertProcessSignalToExitCode validation behavior (René) #62134
  • [a4466ebdac] - doc: add efekrskl as triager (Efe) #61876
  • [db516eca3a] - doc: fix markdown for expectFailure values (Jacob Smith) #62100
  • [ad97045125] - doc: include url.resolve() in DEP0169 application deprecation (Mike McCready) #62002
  • [309f37ba42] - doc: expand SECURITY.md with non-vulnerability examples (Rafael Gonzaga) #61972
  • [dbb3551b7b] - doc: separate in-types and out-types in SQLite conversion docs (René) #62034
  • [191c433db8] - doc: fix small logic error in DETECT_MODULE_SYNTAX (René) #62025
  • [8511b1c784] - doc: fix module.stripTypeScriptTypes indentation (René) #61992
  • [dd1139f52c] - doc: update DEP0040 (punycode) to application type deprecation (Mike McCready) #61916
  • [54009e9c62] - doc: explicitly mention Slack handle (Rafael Gonzaga) #61986
  • [78fa1a1a49] - doc: support toolchain Visual Studio 2022 & 2026 + Windows 11 SDK (Mike McCready) #61864
  • [d8204d3cdb] - doc: rename invalid function parameter (René) #61942
  • [a5a14482fb] - doc: clarify status of feature request issues (Antoine du Hamel) #61505
  • [bd0688feb6] - doc: add esm and cjs examples to node:vm (Alfredo González) #61498
  • [240b512f9f] - doc: clarify build environment is trusted in threat model (Matteo Collina) #61865
  • [5dd48e3456] - doc: remove incorrect mention of module in typescript.md (Rob Palmer) #61839
  • [9502c22055] - doc: simplify addAbortListener example (Chemi Atlow) #61842
  • [6fec397828] - doc: clean up globals.md (René) #61822
  • [a810f5ccef] - doc: clarify async caveats for events.once() (René) #61572
  • [2bf990bb1a] - doc: update Juan’s security steward info (Juan José) #61754
  • [0312db948d] - doc: fix methods being documented as properties in process.md (Antoine du Hamel) #61765
  • [e558b26e7f] - doc: add riscv64 info into platform list (Lu Yahan) #42251
  • [49254e3dc0] - doc: fix dropdown menu being obscured at <600px due to stacking context (Jeff) #61735
  • [4ff01b5c10] - doc: fix spacing in process message event (Aviv Keller) #61756
  • [94097a79d6] - doc: move describe/it aliases section before expectFailure (Luca Raveri) #61567
  • [b7cd31acbe] - doc: fix broken links of net.md (YuSheng Chen) #61673
  • [ae5e353fe2] - doc: clean up Windows code snippet in child_process.md (reillylm) #61422
  • [ea9beb6a3c] - doc: update to Visual Studio 2026 manual install (Mike McCready) #61655
  • [42057c84e2] - doc,module: add missing doc for syncHooks.deregister() (Joyee Cheung) #61959
  • [a035bd5235] - doc,test: clarify –eval syntax for leading ‘-‘ scripts (kovan) #62244
  • [deb0b78460] - esm: fix typo in worker loader hook comment (jakecastelli) #62475
  • [b93bf7dbfc] - esm: fix source phase identity bug in loadCache eviction (Guy Bedford) #62415
  • [679d18b57f] - esm: fix path normalization in finalizeResolution (Antoine du Hamel) #62080
  • [171e9fc268] - esm: update outdated FIXME comment in translators.js (Karan Mangtani) #61715
  • [cc19728228] - events: avoid cloning listeners array on every emit (Gürgün Dayıoğlu) #62261
  • [458c92be52] - events: don’t call resume after close (Сковорода Никита Андреевич) #60548
  • [4691f3e7fb] - fs: fix cpSync to handle non-ASCII characters (Stefan Stojanovic) #61950
  • [f4a3edc47a] - (SEMVER-MINOR) fs: add throwIfNoEntry option for fs.stat and fs.promises.stat (Juan José) #61178
  • [58e4d50cd0] - http: fix use-after-free when freeParser is called during llhttp_execute (Gerhard Stöbich) #62095
  • [0a4ad85ab0] - http: validate ClientRequest path on set (Matteo Collina) #62030
  • [f8178ac3e6] - http: validate headers in writeEarlyHints (Richard Clarke) #61897
  • [899884d0ed] - http: remove redundant keepAliveTimeoutBuffer assignment (Efe) #61743
  • [08d2e40694] - http: attach error handler to socket synchronously in onSocket (RajeshKumar11) #61770
  • [1c2064c1f8] - http: fix keep-alive socket reuse race in requestOnFinish (Martin Slota) #61710
  • [38e9c66e0f] - http2: add strictSingleValueFields option to relax header validation (Tim Perry) #59917
  • [5cdcba17cc] - (SEMVER-MINOR) http2: add http1Options for HTTP/1 fallback configuration (Amol Yadav) #61713
  • [687c0acd00] - http2: fix FileHandle leak in respondWithFile (sangwook) #61707
  • [0c8f802ec2] - inspector: add Target.getTargets and extract TargetManager (Kohei) #62487
  • [7de8a303c1] - inspector: unwrap internal/debugger/inspect imports (René) #61974
  • [59ac10a4fd] - lib: make SubtleCrypto.supports enumerable (Filip Skokan) #62307
  • [9dc102ba90] - lib: prefer primordials in SubtleCrypto (Filip Skokan) #62226
  • [78a9aa8f32] - lib: fix source map url parse in dynamic imports (Chengzhong Wu) #61990
  • [16b8cc6643] - lib: improve argument handling in Blob constructor (Ms2ger) #61980
  • [a03b5d39b8] - lib: reduce cycles in esm loader and load it in snapshot (Joyee Cheung) #61769
  • [1017bf5f86] - lib: remove top-level getOptionValue() calls in lib/internal/modules (Joyee Cheung) #61769
  • [d79984b41b] - lib: optimize styleText when validateStream is false (Rafael Gonzaga) #61792
  • [6462b89d10] - meta: bump actions/download-artifact from 7.0.0 to 8.0.0 (dependabot[bot]) #62063
  • [5bb89916ea] - meta: bump actions/upload-artifact from 6.0.0 to 7.0.0 (dependabot[bot]) #62062
  • [b067d74d94] - meta: bump step-security/harden-runner from 2.14.2 to 2.15.0 (dependabot[bot]) #62064
  • [830e5cd125] - meta: bump github/codeql-action from 4.32.0 to 4.32.4 (dependabot[bot]) #61911
  • [16c839a3dd] - meta: bump step-security/harden-runner from 2.14.1 to 2.14.2 (dependabot[bot]) #61909
  • [498abf661e] - meta: bump actions/stale from 10.1.1 to 10.2.0 (dependabot[bot]) #61908
  • [78ac17f426] - module: fix coverage of mocked CJS modules imported from ESM (Marco) #62133
  • [46cfad4138] - module: run require.resolve through module.registerHooks() (Joyee Cheung) #62028
  • [8b6be3fe14] - module: mark require(esm) as stable (Joyee Cheung) #60959
  • [68fbc0c6cc] - module: mark module compile cache as stable (Joyee Cheung) #60971
  • [c851e76f8c] - (SEMVER-MINOR) net: add setTOS and getTOS to Socket (Amol Yadav) #61503
  • [4c206ecb31] - quic: remove CryptoKey support from session keys option (Filip Skokan) #62335
  • [2f9c085cf5] - sqlite: handle stmt invalidation (Guilherme Araújo) #61877
  • [6ac4304c87] - (SEMVER-MINOR) sqlite: add limits property to DatabaseSync (Mert Can Altin) #61298
  • [aaf9af1672] - sqlite: mark as release candidate (Matteo Collina) #61262
  • [7d67e5d693] - src: convert context_frame field in AsyncWrap to internal field (Anna Henningsen) #62103
  • [d8ea1aaa8a] - src: make AsyncWrap subclass internal field counts explicit (Anna Henningsen) #62103
  • [1dbf3bedbe] - src: improve EC JWK import performance (Filip Skokan) #62396
  • [cd84af747b] - src: handle null backing store in ArrayBufferViewContents::Read (Mert Can Altin) #62343
  • [4f553cdc01] - src: enable compilation/linking with OpenSSL 4.0 (Filip Skokan) #62410
  • [70f8057258] - src: use stack allocation in indexOf latin1 path (Mert Can Altin) #62268
  • [d788467b6a] - src: expose async context frame debugging helper to JS (Anna Henningsen) #62103
  • [4213f893ec] - src: release context frame in AsyncWrap::EmitDestroy (Gerhard Stöbich) #61995
  • [79fb8cbcf5] - src: use validate_ascii_with_errors instead of validate_ascii (Сковорода Никита Андреевич) #61122
  • [2df328d59e] - src: fix flags argument offset in JSUdpWrap (Weixie Cui) #61948
  • [eb77a7a297] - (SEMVER-MINOR) src: add C++ support for diagnostics channels (RafaelGSS) #61869
  • [6cda3d30c0] - src: remove unnecessary c_str() conversions in diagnostic messages (Anna Henningsen) #61786
  • [26c6045363] - src: use bool literals in TraceEnvVarOptions (Tobias Nießen) #61425
  • [3c8f700fd7] - src: track allocations made by zstd streams (Anna Henningsen) #61717
  • [94dbb36d4d] - src: do not store compression methods on Brotli classes (Anna Henningsen) #61717
  • [bef661f182] - src: extract zlib allocation tracking into its own class (Anna Henningsen) #61717
  • [e8079a8297] - src: release memory for zstd contexts in Close() (Anna Henningsen) #61717
  • [6e1197a3cc] - src: add more checks and clarify docs for external references (Joyee Cheung) #61719
  • [c28a22c4be] - src: fix cjs_lexer external reference registration (Joyee Cheung) #61718
  • [9e2c5fd7c9] - src: simply uint32 to string as it must not fail (Chengzhong Wu) #60846
  • [df435d32b8] - src: build v8 tick processor as built-in source text modules (Joyee Cheung) #60518
  • [2cb3573735] - src,sqlite: fix filterFunc dangling reference (Edy Silva) #62281
  • [c44f53b544] - stream: preserve error over AbortError in pipeline (Marco) #62113
  • [dc541370b4] - stream: replace bind with arrow function for onwrite callback (Ali Hassan) #62087
  • [f6cdfbfaa7] - stream: optimize webstreams pipeTo (Mattias Buelens) #62079
  • [fcf2a9f788] - stream: fix brotli error handling in web compression streams (Filip Skokan) #62107
  • [cdec579c6b] - stream: improve Web Compression spec compliance (Filip Skokan) #62107
  • [dbe5898379] - stream: fix UTF-8 character corruption in fast-utf8-stream (Matteo Collina) #61745
  • [531e62cd74] - stream: fix TransformStream race on cancel with pending write (Marco) #62040
  • [a3751f2249] - stream: accept ArrayBuffer in CompressionStream and DecompressionStream (조수민) #61913
  • [65aa8f68d0] - stream: fix pipeTo to defer writes per WHATWG spec (Matteo Collina) #61800
  • [15f32b4935] - stream: fix decoded fromList chunk boundary check (Thomas Watson) #61884
  • [569767e52e] - stream: add fast paths for webstreams read and pipeTo (Matteo Collina) #61807
  • [6834ca13bb] - (SEMVER-MINOR) stream: rename Duplex.toWeb() type option to readableType (René) #61632
  • [5ed5474437] - test: update WPT for WebCryptoAPI to 2cb332d710 (Node.js GitHub Bot) #62483
  • [3c9c0f8577] - test: fix test-buffer-zero-fill-cli to be effective (Сковорода Никита Андреевич) #60623
  • [19a52a1abe] - test: update WPT for url to fc3e651593 (Node.js GitHub Bot) #62379
  • [111ba9bd5b] - test: wait for reattach before initial break on restart (Yuya Inoue) #62471
  • [0897c6cc08] - test: disable flaky WPT Blob test on AIX (James M Snell) #62470
  • [1c3d93bfab] - test: avoid flaky run wait in debugger restart test (Yuya Inoue) #62112
  • [83416a640a] - test: skip test-cluster-dgram-reuse on AIX 7.3 (Stewart X Addison) #62238
  • [af8d0922dd] - test: add WebCrypto Promise.prototype.then pollution regression tests (Filip Skokan) #62226
  • [fc9a60ec74] - test: update WPT for WebCryptoAPI to 6a1c545d77 (Node.js GitHub Bot) #62187
  • [12ba2d74fe] - test: update WPT for url to c928b19ab0 (Node.js GitHub Bot) #62148
  • [4e15e5b647] - test: update WPT for WebCryptoAPI to c9e955840a (Node.js GitHub Bot) #62147
  • [dc66a05558] - test: improve WPT report runner (Filip Skokan) #62107
  • [9536e5621b] - test: update WPT compression to ae05f5cb53 (Filip Skokan) #62107
  • [fb1c0bda0a] - test: update WPT for WebCryptoAPI to 42e47329fd (Node.js GitHub Bot) #62048
  • [d886f27485] - test: fix skipping behavior for test-runner-run-files-undefined (Antoine du Hamel) #62026
  • [f79df03e0b] - test: remove unnecessary process.exit calls from test files (Antoine du Hamel) #62020
  • [1319295467] - test: skip test-url on --shared-ada builds (Antoine du Hamel) #62019
  • [2ea06727c6] - test: skip strace test with shared openssl (Richard Lau) #61987
  • [c0680d5df7] - test: avoid flaky debugger restart waits (Yuya Inoue) #61773
  • [22b748ef72] - test: fix typos in test files (Daijiro Wachi) #61408
  • [a20bf9a84d] - test: allow filtering async internal frames in assertSnapshot (Joyee Cheung) #61769
  • [ec2913f036] - test: unify assertSnapshot stacktrace transform (Chengzhong Wu) #61665
  • [460f41233d] - test: check stability block position in API markdown (René) #58590
  • [9ad02065d5] - test: adapt buffer test for v8 sandbox (Shelley Vohr) #61772
  • [5cf001736e] - test: update FileAPI tests from WPT (Ms2ger) #61750
  • [84c7a23223] - test: update WPT for WebCryptoAPI to 7cbe7e8ed9 (Node.js GitHub Bot) #61729
  • [276a32fd10] - test: update WPT for url to efb889eb4c (Node.js GitHub Bot) #61728
  • [f5f21d36a6] - test_runner: add exports option for module mocks (sangwook) #61727
  • [bfc8a12977] - test_runner: make it compatible with fake timers (Matteo Collina) #59272
  • [e0cde40e1d] - test_runner: set non-zero exit code when suite errors occur (Edy Silva) #62282
  • [d74efd6834] - test_runner: run afterEach on runtime skip (Igor Shevelenkov) #61525
  • [8287ca749e] - test_runner: expose expectFailure message (sangwook) #61563
  • [1f2025fd1e] - (SEMVER-MINOR) test_runner: expose worker ID for concurrent test execution (Ali Hassan) #61394
  • [b1199c7bb4] - test_runner: replace native methods with primordials (Ayoub Mabrouk) #61219
  • [1ca20fc33d] - (SEMVER-MINOR) test_runner: show interrupted test on SIGINT (Matteo Collina) #61676
  • [207ba4f89f] - test_runner: fix suite rerun (Moshe Atlow) #61775
  • [9927335c11] - tls: forward keepAlive, keepAliveInitialDelay, noDelay to socket (Sergey Zelenov) #62004
  • [a1c3c901c0] - tools: bump picomatch from 4.0.3 to 4.0.4 in /tools/eslint (dependabot[bot]) #62439
  • [1c6f5ed7c2] - tools: adopt the --check-for-duplicates NCU flag (Antoine du Hamel) #62478
  • [b53377e8fe] - tools: bump flatted from 3.4.1 to 3.4.2 in /tools/eslint (dependabot[bot]) #62375
  • [f102e79b80] - tools: bump eslint deps (Huáng Jùnliàng) #62356
  • [f5d74f8216] - tools: add eslint-plugin-regexp (Huáng Jùnliàng) #62093
  • [bc5b9a04ad] - tools: bump flatted from 3.3.3 to 3.4.1 in /tools/eslint (dependabot[bot]) #62255
  • [bad48b9700] - tools: validate all commits that are pushed to main (Antoine du Hamel) #62246
  • [795d663ff4] - tools: keep GN files when updating Merve (Antoine du Hamel) #62167
  • [0b6fa913f1] - tools: revert timezone update GHA workflow to ubuntu-latest (Richard Lau) #62140
  • [840e098e99] - tools: improve error handling in test426 update script (Rich Trott) #62121
  • [bd34e53a8e] - tools: bump the eslint group across 1 directory with 2 updates (dependabot[bot]) #62092
  • [54dc797644] - tools: fix daily wpt workflow nighly release version lookup (Filip Skokan) #62076
  • [30476ddff7] - tools: fix example in release proposal linter (Richard Lau) #62074
  • [5245900c05] - tools: bump minimatch from 3.1.3 to 3.1.5 in /tools/clang-format (dependabot[bot]) #62013
  • [59ad1e4503] - tools: bump eslint to v10, babel to v8.0.0-rc.2 (Huáng Jùnliàng) #61905
  • [6f93c4b287] - tools: fix parsing of commit trailers in lint-release-proposal GHA (Antoine du Hamel) #62077
  • [de1bcfd54c] - tools: bump minimatch from 3.1.2 to 3.1.3 in /tools/clang-format (dependabot[bot]) #61977
  • [492868a7aa] - tools: fix permissions for merve update script (Richard Lau) #62023
  • [774d0be1b3] - tools: revert tools GHA workflow to ubuntu-latest (Richard Lau) #62024
  • [d91a689d6f] - tools: bump minimatch from 3.1.2 to 3.1.3 in /tools/eslint (dependabot[bot]) #61976
  • [34b6305933] - tools: roll back to x86 runner on scorecard.yml (Antoine du Hamel) #61944
  • [937cd97a63] - tools: fix auto-start-ci (Antoine du Hamel) #61900
  • [0958f9a9c7] - tools: do not checkout repo in auto-start-ci.yml (Antoine du Hamel) #61874
  • [c7607b9208] - tools: automate updates for test/fixtures/test426 (Rich Trott) #60978
  • [00df3c1273] - tools: bump unist-util-visit in /tools/doc in the doc group (dependabot[bot]) #61646
  • [fe15b0d65e] - tools: bump the eslint group in /tools/eslint with 6 updates (dependabot[bot]) #61628
  • [bc38db51fc] - tools: fix small inconsistencies in JSON doc output (Antoine du Hamel) #61757
  • [3e7010d47f] - tools: refloat 10 Node.js patches to cpplint.py (Michaël Zasso) #60901
  • [583e6c67ea] - tools: update cpplint to 2.0.2 (Michaël Zasso) #60901
  • [4c12ab8abc] - typings: rationalise TypedArray types (René) #62174
  • [8357ebfe54] - url: suppress warnings from url.format/url.resolve inside node_modules (René) #62005
  • [aad7b3cfca] - url: enable simdutf for ada (Yagiz Nizipli) #61477
  • [7b28fb9812] - util: allow color aliases in styleText (sangwook) #62180
  • [8bbe0138ce] - util: add fast path to stripVTControlCharacters (Hiroki Osame) #61833
  • [f7a408d6f7] - wasm: support js string constant esm import (Guy Bedford) #62198
  • [a0316d33b5] - watch: get flags from execArgv (Efe) #61779
  • [eee96f7f5d] - worker: heap profile optimizations (Ilyas Shabi) #62201
  • [deeeb22e1a] - worker: eliminate race condition in process.cwd() (giulioAZ) #61664
  • [b15ea64ed9] - zlib: fix use-after-free when reset() is called during write (Matteo Collina) #62325
  • [a9c5bd29c9] - zlib: add support for brotli compression dictionary (Andy Weiss) #61763

Update Apr 1, 2026 tracked by Updatify

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

Notable Changes

Test runner module mocking improvements

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

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

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

npx codemod @nodejs/mock-module-exports

Contributed by sangwook in #61727.

Other notable changes

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

Commits

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

Update Mar 24, 2026 tracked by Updatify

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

This is a security release.

Notable Changes

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

Commits

Update Mar 24, 2026 tracked by Updatify

2026-03-24, Version 24.14.1 'Krypton' (LTS), @RafaelGSS prepared by @juanarbol

This is a security release.

Notable Changes

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

Commits

Update Mar 24, 2026 tracked by Updatify

2026-03-24, Version 22.22.2 'Jod' (LTS), @RafaelGSS prepared by @aduh95

This is a security release.

Notable Changes

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

Commits

Update Mar 24, 2026 tracked by Updatify

2026-03-24, Version 20.20.2 'Iron' (LTS), @marco-ippolito

This is a security release.

Notable Changes

  • (CVE-2026-21717) fix array index hash collision (Joyee Cheung)
  • (CVE-2026-21713) use timing-safe comparison in Web Cryptography HMAC and KMAC (Filip Skokan)
  • (CVE-2026-21710) use null prototype for headersDistinct/trailersDistinct (Matteo Collina)
  • (CVE-2026-21716) include permission check on lib/fs/promises (RafaelGSS)pull/795>
  • (CVE-2026-21715) add permission check to realpath.native (RafaelGSS)
  • (CVE-2026-21714) handle NGHTTP2_ERR_FLOW_CONTROL error code (RafaelGSS)
  • (CVE-2026-21637) wrap SNICallback invocation in try/catch (Matteo Collina)

Commits

Update Mar 11, 2026 tracked by Updatify

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

Notable Changes

  • [ea87eea71a] - module: fix extensionless CJS files in "type": "module" packages (Matteo Collina) #62083

Commits

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

Update Mar 5, 2026 tracked by Updatify

2026-03-05, Version 22.22.1 'Jod' (LTS)

Notable Changes

  • [7b93a65f27] - build: test on Python 3.14 (Christian Clauss) #59983
  • [6063d888fe] - cli: mark --heapsnapshot-near-heap-limit as stable (Joyee Cheung) #60956
  • [d950b151a2] - crypto: update root certificates to NSS 3.119 (Node.js GitHub Bot) #61419
  • [4f42f8c428] - crypto: update root certificates to NSS 3.117 (Node.js GitHub Bot) #60741
  • [b6ebf2cd53] - doc: add avivkeller to collaborators (Aviv Keller) #61115
  • [35854f424d] - doc: add gurgunday to collaborators (Gürgün Dayıoğlu) #61094
  • [5c6a076e5d] - meta: add Renegade334 to collaborators (Renegade334) #60714

Commits

  • [5f773488c2] - assert: use a set instead of an array for faster lookup (Ruben Bridgewater) #61076
  • [feecbb0eab] - assert,util: fix deep comparison for sets and maps with mixed types (Ruben Bridgewater) #61388
  • [096095b127] - benchmark: add SQLite benchmarks (Guilherme Araújo) #61401
  • [b5fe481415] - benchmark: use boolean options in benchmark tests (SeokhunEom) #60129
  • [fa9faacacb] - benchmark: allow boolean option values (SeokhunEom) #60129
  • [ba8714ac21] - benchmark: fix incorrect base64 input in byteLength benchmark (semimikoh) #60841
  • [53596de876] - benchmark: use typescript for import cjs benchmark (Joyee Cheung) #60663
  • [e8930e9d7c] - benchmark: focus on import.meta intialization in import-meta benchmark (Joyee Cheung) #60603
  • [1155e412b1] - benchmark: add per-suite setup option (Joyee Cheung) #60574
  • [e01903d304] - benchmark: improve cpu.sh for safety and usability (Nam Yooseong) #60162
  • [623a405747] - benchmark: add benchmark for leaf source text modules (Joyee Cheung) #60205
  • [7f5e7b9f7f] - benchmark: add microbench on isInsideNodeModules (Chengzhong Wu) #60991
  • [db132b85a8] - bootstrap: initialize http proxy after user module loader setup (Joyee Cheung) #58938
  • [66aab9f987] - buffer: let Buffer.of use heap (Сковорода Никита Андреевич) #60503
  • [c3cf00c671] - buffer: speed up concat via TypedArray#set (Gürgün Dayıoğlu) #60399
  • [f6fad231e9] - build: skip sscache action on non-main branches (Joyee Cheung) #61790
  • [2145f91f6b] - build: update android-patches/trap-handler.h.patch (Mo Luo) #60369
  • [5b49759dd8] - build: update devcontainer.json to use paired nix env (Joyee Cheung) #61414
  • [24724cde40] - build: fix misplaced comma in ldflags (hqzing) #61294
  • [c57a19934e] - build: fix crate vendor file checksums on windows (Chengzhong Wu) #61329
  • [8659d7cd07] - build: fix inconsistent quoting in Makefile (Antoine du Hamel) #60511
  • [44f339b315] - build: remove temporal updater (Chengzhong Wu) #61151
  • [d60a6cebd5] - build: update test-wpt-report to use NODE instead of OUT_NODE (Filip Skokan) #61024
  • [34ccf187f5] - build: skip build-ci on actions with a separate test step (Chengzhong Wu) #61073
  • [7b19e101a2] - build: run embedtest with node_g when BUILDTYPE=Debug (Chengzhong Wu) #60850
  • [9408c4459f] - build: upgrade Python linter ruff, add rules ASYNC,PERF (Christian Clauss) #59984
  • [2166ec7f0f] - build: use call command when calling python configure (Jacob Nichols) #60098
  • [73ef70145d] - build: remove V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE defs (Joyee Cheung) #60296
  • [7b93a65f27] - build: test on Python 3.14 (Christian Clauss) #59983
  • [508ce6ec6c] - build, src: fix include paths for vtune files (Rahul) #59999
  • [c89d3cd570] - build,tools: fix addon build deadlock on errors (Vladimir Morozov) #61321
  • [40904a0591] - build,win: update WinGet configurations to Python 3.14 (Mike McCready) #61431
  • [6d6742e7db] - child_process: treat ipc length header as unsigned uint32 (Ryuhei Shima) #61344
  • [6063d888fe] - cli: mark –heapsnapshot-near-heap-limit as stable (Joyee Cheung) #60956
  • [3d324a0f88] - cluster: fix port reuse between cluster (Ryuhei Shima) #60141
  • [40a58709b4] - console: optimize single-string logging (Gürgün Dayıoğlu) #60422
  • [d950b151a2] - crypto: update root certificates to NSS 3.119 (Node.js GitHub Bot) #61419
  • [4f42f8c428] - crypto: update root certificates to NSS 3.117 (Node.js GitHub Bot) #60741
  • [a87499ae25] - crypto: ensure documented RSA-PSS saltLength default is used (Filip Skokan) #60662
  • [8c65cc11e2] - crypto: update root certificates to NSS 3.116 (Node.js GitHub Bot) #59956
  • [91dc00a2c1] - debugger: fix event listener leak in the run command (Joyee Cheung) #60464
  • [0781bd3764] - deps: V8: backport 6a0a25abaed3 (Vivian Wang) #61688
  • [0cf1f9c3e9] - deps: update googletest to 85087857ad10bd407cd6ed2f52f7ea9752db621f (Node.js GitHub Bot) #61417
  • [521b4b1f07] - deps: update sqlite to 3.51.2 (Node.js GitHub Bot) #61339
  • [58b9d219a3] - deps: update icu to 78.2 (Node.js GitHub Bot) #60523
  • [cbc1e4306d] - deps: update zlib to 1.3.1-e00f703 (Node.js GitHub Bot) #61135
  • [db59c35ed8] - deps: update cjs-module-lexer to 2.2.0 (Node.js GitHub Bot) #61271
  • [c18518ee3c] - deps: update nbytes to 0.1.2 (Node.js GitHub Bot) #61270
  • [376df62d63] - deps: update timezone to 2025c (Node.js GitHub Bot) #61138
  • [993e905302] - deps: update simdjson to 4.2.4 (Node.js GitHub Bot) #61056
  • [b72fd2a5d3] - deps: update googletest to 065127f1e4b46c5f14fc73cf8d323c221f9dc68e (Node.js GitHub Bot) #61055
  • [d765147405] - deps: update sqlite to 3.51.1 (Node.js GitHub Bot) #60899
  • [37abe2a7d2] - deps: update zlib to 1.3.1-63d7e16 (Node.js GitHub Bot) #60898
  • [97241fcb86] - deps: update sqlite to 3.51.0 (Node.js GitHub Bot) #60614
  • [3669c7b4f4] - deps: update simdjson to 4.2.2 (Node.js GitHub Bot) #60740
  • [9a056ec89c] - deps: update googletest to 1b96fa13f549387b7549cc89e1a785cf143a1a50 (Node.js GitHub Bot) #60739
  • [b5803b3ea0] - deps: update minimatch to 10.1.1 (Node.js GitHub Bot) #60543
  • [5bf99f3d46] - deps: update cjs-module-lexer to 2.1.1 (Node.js GitHub Bot) #60646
  • [801f187357] - deps: update simdjson to 4.2.1 (Node.js GitHub Bot) #60644
  • [03c16e5a4c] - deps: update simdjson to 4.1.0 (Node.js GitHub Bot) #60542
  • [2ebfc2ca56] - deps: update amaro to 1.1.5 (Node.js GitHub Bot) #60541
  • [d24ba4fed6] - deps: update simdjson to 4.0.7 (Node.js GitHub Bot) #59883
  • [9480a139bf] - deps: update googletest to 279f847 (Node.js GitHub Bot) #60219
  • [635e67379e] - deps: update archs files for openssl-3.5.5 (Node.js GitHub Bot) #61547
  • [c7b774047d] - deps: upgrade openssl sources to openssl-3.5.5 (Node.js GitHub Bot) #61547
  • [5b324d7d7f] - deps: update corepack to 0.34.6 (Node.js GitHub Bot) #61510
  • [eef8ba0667] - deps: update corepack to 0.34.5 (Node.js GitHub Bot) #60842
  • [490f7c7fb1] - deps: update corepack to 0.34.4 (Node.js GitHub Bot) #60643
  • [66903ea3b3] - deps: update corepack to 0.34.2 (Node.js GitHub Bot) #60550
  • [a2f0b69282] - deps: update corepack to 0.34.1 (Node.js GitHub Bot) #60314
  • [c8044a48a6] - deps: V8: backport 2e4c5cf9b112 (Michaël Zasso) #60654
  • [642f518198] - doc: supported toolchain with Visual Studio 2022 only (Mike McCready) #61451
  • [625f674487] - doc: move Security-Team from TSC to SECURITY (Rafael Gonzaga) #61495
  • [029e32f8ba] - doc: added requestOCSP option to tls.connect (ikeyan) #61064
  • [68e33dfa89] - doc: restore @ChALkeR to collaborators (Сковорода Никита Андреевич) #61553
  • [e016770d62] - doc: update IBM/Red Hat volunteers with dedicated project time (Beth Griggs) #61588
  • [ec63954657] - doc: mention constructor comparison in assert.deepStrictEqual (Hamza Kargin) #60253
  • [c8e1563a98] - doc: add CVE delay mention (Rafael Gonzaga) #61465
  • [4b00cf2b54] - doc: include OpenJSF handle for security stewards (Rafael Gonzaga) #61454
  • [4b73bf5bc8] - doc: clarify process.argv[1] behavior for -e/–eval (Jeevankumar S) #61366
  • [d3151df4b3] - doc: remove Windows Dev Home instructions from BUILDING (Mike McCready) #61434
  • [2323462e35] - doc: clarify TypedArray properties on Buffer (Roman Reiss) #61355
  • [6c5478c8b2] - doc: note resume build should not be done on node-test-commit (Stewart X Addison) #61373
  • [ba4a043103] - doc: refine WebAssembly error documentation (sangwook) #61382
  • [cd315ea589] - doc: add deprecation history for url.parse (Eng Zer Jun) #61389
  • [42db0c392d] - doc: add marco and rafael in last sec release (Marco Ippolito) #61383
  • [4c3b680fc7] - doc: packages: example of private import switch to internal (coderaiser) #61343
  • [684d15e421] - doc: add esm and cjs examples to node:v8 (Alfredo González) #61328
  • [c3f9c7a7d9] - doc: added ‘secure’ event to tls.TLSSocket (ikeyan) #61066
  • [aa9acad5ca] - doc: restore @watilde to collaborators (Daijiro Wachi) #61350
  • [9cafec084e] - doc: run license-builder (github-actions[bot]) #61348
  • [cdb12ccbc6] - doc: document ALPNCallback option for TLSSocket constructor (ikeyan) #61331
  • [461c5e65c5] - doc: update MDN links (Livia Medeiros) #61062
  • [dde45baeab] - doc: add documentation for process.traceProcessWarnings (Alireza Ebrahimkhani) #53641
  • [59a7aeec92] - doc: fix filename typo (Hardanish Singh) #61297
  • [9a0a40d1ed] - doc: fix typos and grammar in BUILDING.md & onboarding.md (Hardanish Singh) #61267
  • [dca7005f9d] - doc: mention –newVersion release script (Rafael Gonzaga) #61255
  • [c0dc8ddf85] - doc: correct typo in api contributing doc (Mike McCready) #61260
  • [066af38fe1] - doc: add PR-URL requirement for security backports (Rafael Gonzaga) #61256
  • [71dd46bd0c] - doc: add reusePort error behavior to net module (mag123c) #61250
  • [f6abe3ba33] - doc: note corepack package removal in distribution doc (Mike McCready) #61207
  • [9059d49d8c] - doc: fix tls.connect() timeout documentation (Azad Gupta) #61079
  • [e7b34b76b0] - doc: missing passed, error and passed properties on TestContext (Xavier Stouder) #61185
  • [9ae2dcfbb6] - doc: clarify threat model for application-level API exposure (Rafael Gonzaga) #61184
  • [9902331a7c] - doc: correct options for net.Socket class and socket.connect (Xavier Stouder) #61179
  • [a80122d2fe] - doc: document error event on readline InterfaceConstructor (Xavier Stouder) #61170
  • [38d73c9cfa] - doc: add a smooth scrolling effect to the sidebar (btea) #59007
  • [95c51fa984] - doc: correct invalid collaborator profile (JJ) #61091
  • [f5a044763c] - doc: exclude compile-time flag features from security policy (Matteo Collina) #61109
  • [b6ebf2cd53] - doc: add @avivkeller to collaborators (Aviv Keller) #61115
  • [35854f424d] - doc: add gurgunday to collaborators (Gürgün Dayıoğlu) #61094
  • [4932322c29] - doc: add File modes cross-references in fs methods (Mohit Raj Saxena) #60286
  • [c84904e047] - doc: add missing zstd to mjs example of zlib (Deokjin Kim) #60915
  • [e615b9e2f2] - doc: clarify fileURLToPath security considerations (Rafael Gonzaga) #60887
  • [99e384e6d4] - doc: replace column with columnNumber in example of util.getCallSites (Deokjin Kim) #60881
  • [9351bb4d02] - doc: correct spelling in BUILDING.md (Rich Trott) #60875
  • [e1f6e7fc4d] - doc: update debuglog examples to use ‘foo-bar’ instead of ‘foo’ (xiaoyao) #60867
  • [ccbb2d7300] - doc: fix typos in changelogs (Rich Trott) #60855
  • [1cb2fe8b35] - doc: mark module.register as active development (Chengzhong Wu) #60849
  • [ceeb4968a6] - doc: add fullName property to SuiteContext (PaulyBearCoding) #60762
  • [56155909dd] - doc: keep sidebar module visible when navigating docs (Botato) #60410
  • [6b637763d5] - doc: correct concurrency wording in test() documentation (Azad Gupta) #60773
  • [7183e8ffa1] - doc: clarify that CQ only picks up PRs targeting main (René) #60731
  • [d5d94303be] - doc: clarify license section and add contributor note (KaleruMadhu) #60590
  • [e0210c8f53] - doc: correct tls ALPNProtocols types (René) #60143
  • [eff87b498a] - doc: remove mention of SMS 2FA (Antoine du Hamel) #60707
  • [e77ef94a51] - doc: domain.add() does not accept timer objects (René) #60675
  • [4fe19c95ea] - doc: update Collaborators list to reflect hybrist handle change (Antoine du Hamel) #60650
  • [eece59b6ce] - doc: fix linter issues (Antoine du Hamel) #60636
  • [6e17e596e4] - doc: correct values/references for buffer.kMaxLength (René) #60305
  • [ac327ae9a7] - doc: recommend events.once to manage ‘close’ event (Dan Fabulich) #60017
  • [d9b149ea42] - doc: highlight module loading difference between import and require (Ajay A) #59815
  • [f6d62cb22c] - doc: fix typo in process.unref documentation (우혁) #59698
  • [6d5078b196] - doc: add some entries to glossary.md (Mohataseem Khan) #59277
  • [b0a5820dea] - doc: improve agent.createConnection docs for http and https agents (JaeHo Jang) #58205
  • [b5db02fe67] - doc: fix pseudo code in modules.md (chirsz) #57677
  • [e9b912d481] - doc: add missing variable in code snippet (Koushil Mankali) #55478
  • [44c06c7812] - doc: add missing word in single-executable-applications.md (Konstantin Tsabolov) #53864
  • [482b43f160] - doc: fix typo in http.md (Michael Solomon) #59354
  • [cd323bc718] - doc: update devcontainer.json and add documentation (Joyee Cheung) #60472
  • [c7c70f3a16] - doc: add haramj as triager (Haram Jeong) #60348
  • [04b8c4d14e] - doc: clarify require(esm) description (dynst) #60520
  • [de382dc832] - doc: instantiate resolver object (Donghoon Nam) #60476
  • [b6845ce460] - doc: clarify –use-system-ca support status (Joyee Cheung) #60340
  • [0894dae9bc] - doc: add missing CAA type to dns.resolveAny() & dnsPromises.resolveAny() (Jimmy Leung) #58899
  • [c86a69f692] - doc: use any for worker_threads.Worker ‘error’ event argument err (Jonas Geiler) #60300
  • [0c5031e233] - doc: update decorator documentation to reflect actual policy (Muhammad Salman Aziz) #60288
  • [b01f710175] - doc: document wildcard supported by tools/test.py (Joyee Cheung) #60265
  • [b4524dabcc] - doc: fix blob.bytes() heading level (XTY) #60252
  • [5df02776e3] - doc: fix not working code example in vm docs (Artur Gawlik) #60224
  • [6a4359a0b5] - doc: improve code snippet alternative of url.parse() using WHATWG URL (Steven) #60209
  • [ad06bee70d] - doc: use markdown when branch-diff major release (Rafael Gonzaga) #60179
  • [c0d4b11ed4] - doc: update teams in collaborator-guide.md and add links (Bart Louwers) #60065
  • [20b5ffcac3] - doc: update previous version links in BUILDING (Mike McCready) #61457
  • [de345ea3a3] - doc: correct description of error.stack accessor behavior (René) #61090
  • [d8418d9de7] - doc: fix link in --env-file=file section (N. Bighetti) #60563
  • [1107bda21e] - doc: fix v22 changelog after security release (Marco Ippolito) #61371
  • [42aab9469a] - doc: add missing history entry for sqlite.md (Antoine du Hamel) #60607
  • [deb6d5deff] - doc, module: change async customization hooks to experimental (Gerhard Stöbich) #60302
  • [c659add7d1] - doc,src,lib: clarify experimental status of Web Storage support (Antoine du Hamel) #60708
  • [dda95e91b9] - esm: avoid throw when module specifier is not url (Craig Macomber (Microsoft)) #61000
  • [912945be89] - events: remove redundant todo (Gürgün Dayıoğlu) #60595
  • [22e156eb10] - events: remove eventtarget custom inspect branding (Efe) #61128
  • [df6fd9b03f] - fs: remove duplicate getValidatedPath calls (Mert Can Altin) #61359
  • [6ea3e4d850] - fs: fix errorOnExist behavior for directory copy in fs.cp (Nicholas Paun) #60946
  • [dd918b9980] - fs: fix ENOTDIR in globSync when file is treated as dir (sangwook) #61259
  • [4908e67ba0] - fs: remove duplicate fd validation in sync functions (Mert Can Altin) #61361
  • [4a27bce3d9] - fs: detect dot files when using globstar (Robin van Wijngaarden) #61012
  • [b0186ff65c] - fs: validate statfs path (Efe) #61230
  • [6689775023] - gyp: aix: change gcc version detection so CXX=”ccache g++” works (Stewart X Addison) #61464
  • [5c4f4db663] - http: fix rawHeaders exceeding maxHeadersCount limit (Max Harari) #61285
  • [7599e2eccd] - http: replace startsWith with strict equality (btea) #59394
  • [99a85213bf] - http: lazy allocate cookies array (Robert Nagy) #59734
  • [7669e6a5ad] - http: fix http client leaky with double response (theanarkh) #60062
  • [f074c126a8] - http,https: fix double ERR_PROXY_TUNNEL emission (Shima Ryuhei) #60699
  • [d8ac368363] - http2: add diagnostics channels for client stream request body (Darshan Sen) #60480
  • [e26a7e464d] - http2: rename variable to additionalPseudoHeaders (Tobias Nießen) #60208
  • [5df634f46e] - http2: validate initialWindowSize per HTTP/2 spec (Matteo Collina) #61402
  • [2ccc9a6205] - http2: do not crash on mismatched ping buffer length (René) #60135
  • [3e68a5f78a] - inspector: inspect HTTP response body (Chengzhong Wu) #60572
  • [a86ffa9a5d] - inspector: add network payload buffer size limits (Chengzhong Wu) #60236
  • [ea60ef5d74] - lib: fix typo in util.js comment (Taejin Kim) #61365
  • [9d8d9322a4] - lib: fix TypeScript support check in jitless mode (sangwook) #61382
  • [fc26f5c78f] - lib: gbk decoder is gb18030 decoder per spec (Сковорода Никита Андреевич) #61099
  • [3b87030012] - lib: enforce use of URLParse (Antoine du Hamel) #61016
  • [2a7479d4fc] - lib: use FastBuffer for empty buffer allocation (Gürgün Dayıoğlu) #60558
  • [7cf4c43582] - lib: fix constructor in _errnoException stack tree (SeokHun) #60156
  • [f9d87fbfaa] - lib: fix typo in QuicSessionStats (SeokHun) #60155
  • [8d26ccc652] - lib: remove redundant destroyHook checks (Gürgün Dayıoğlu) #60120
  • [705832a1be] - lib,src: isInsideNodeModules should test on the first non-internal frame (Chengzhong Wu) #60991
  • [6f39ad190b] - meta: do not fast-track npm updates (Antoine du Hamel) #61475
  • [a6a0ff9486] - meta: fix typos in issue template config (Daijiro Wachi) #61399
  • [ec88c9b378] - meta: label v8 module PRs (René) #61325
  • [83143835de] - meta: bump step-security/harden-runner from 2.13.2 to 2.14.0 (dependabot[bot]) #61245
  • [0802dc663a] - meta: bump actions/setup-node from 6.0.0 to 6.1.0 (dependabot[bot]) #61244
  • [587db55796] - meta: bump actions/cache from 4.3.0 to 5.0.1 (dependabot[bot]) #61243
  • [262c9d37a6] - meta: bump github/codeql-action from 4.31.6 to 4.31.9 (dependabot[bot]) #61241
  • [d9763b5afd] - meta: bump codecov/codecov-action from 5.5.1 to 5.5.2 (dependabot[bot]) #61240
  • [0af73d1811] - meta: bump peter-evans/create-pull-request from 7.0.9 to 8.0.0 (dependabot[bot]) #61237
  • [8be6afd239] - meta: move lukekarrys to emeritus (Node.js GitHub Bot) #60985
  • [c497de5c74] - meta: bump actions/setup-python from 6.0.0 to 6.1.0 (dependabot[bot]) #60927
  • [774920f169] - meta: bump github/codeql-action from 4.31.3 to 4.31.6 (dependabot[bot]) #60926
  • [ef3b1e5991] - meta: bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 (dependabot[bot]) #60924
  • [3ed667379f] - meta: bump github/codeql-action from 4.31.2 to 4.31.3 (dependabot[bot]) #60770
  • [7c0cefb126] - meta: bump step-security/harden-runner from 2.13.1 to 2.13.2 (dependabot[bot]) #60769
  • [5c6a076e5d] - meta: add Renegade334 to collaborators (Renegade334) #60714
  • [4f4dda2a18] - meta: bump actions/download-artifact from 5.0.0 to 6.0.0 (dependabot[bot]) #60532
  • [c436f8d57c] - meta: bump actions/upload-artifact from 4.6.2 to 5.0.0 (dependabot[bot]) #60531
  • [402d9f87a6] - meta: bump github/codeql-action from 3.30.5 to 4.31.2 (dependabot[bot]) #60533
  • [61be78e326] - meta: bump actions/setup-node from 5.0.0 to 6.0.0 (dependabot[bot]) #60529
  • [7e4164a623] - meta: bump actions/stale from 10.0.0 to 10.1.0 (dependabot[bot]) #60528
  • [1bf6e1d010] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #60325
  • [c66fc0e9cf] - meta: loop userland-migrations in deprecations (Chengzhong Wu) #60299
  • [e4be0791e7] - meta: call create-release-post.yml post release (Aviv Keller) #60366
  • [8674f6527f] - module: preserve URL in the parent created by createRequire() (Joyee Cheung) #60974
  • [41db87a975] - msi: fix WiX warnings (Stefan Stojanovic) #60251
  • [884f313f40] - node-api: use Node-API in comments (Vladimir Morozov) #61320
  • [375164190b] - node-api: use local files for instanceof test (Vladimir Morozov) #60190
  • [972a1107c0] - os: freeze signals constant (Xavier Stouder) #61038
  • [e992057ab7] - perf_hooks: fix stack overflow error (Antoine du Hamel) #60084
  • [0bb1814fdf] - repl: fix pasting after moving the cursor to the left (Ruben Bridgewater) #60470
  • [35a12fb996] - src: replace ranges::sort for libc++13 compatibility on armhf (Rebroad) #61789
  • [dbf00d4664] - src: add missing override specifier to Clean() (Tobias Nießen) #61429
  • [140eba35d3] - src: cache context lookup in vectored io loops (Mert Can Altin) #61387
  • [93e7e1708b] - src: use C++ nullptr in webstorage (Tobias Nießen) #61407
  • [ef868447bc] - src: fix pointer alignment (jhofstee) #61336
  • [a96256524c] - src: dump snapshot source with node:generate_default_snapshot_source (Joyee Cheung) #61101
  • [ec051b9efd] - src: add HandleScope to edge loop in heap_utils (Mert Can Altin) #60885
  • [41749eb5d6] - src: remove redundant CHECK (Tobias Nießen) #61130
  • [57c81e5af3] - src: fix off-thread cert loading in bundled cert mode (Joyee Cheung) #60764
  • [4b0616e024] - src: handle DER decoding errors from system certificates (Joyee Cheung) #60787
  • [93393371f9] - src: use static_cast instead of C-style cast (Michaël Zasso) #60868
  • [900445b655] - src: move Node-API version detection to where it is used (Anna Henningsen) #60512
  • [8353a6da2a] - src: avoid C strings in more C++ exception throws (Anna Henningsen) #60592
  • [27c860c51f] - src: move napi_addon_register_func to node_api_types.h (Anna Henningsen) #60512
  • [e0517752e7] - src: remove unconditional NAPI_EXPERIMENTAL in node.h (Chengzhong Wu) #60345
  • [21e2a52f8e] - src: clean up generic counter implementation (Anna Henningsen) #60447
  • [aed23cb8ca] - src: add enum handle for ToStringHelper + formatting (Burkov Egor) #56829
  • [2e93650ebc] - src: fix timing of snapshot serialize callback (Joyee Cheung) #60434
  • [ece4acc18f] - src: add COUNT_GENERIC_USAGE utility for tests (Joyee Cheung) #60434
  • [31c8e9d9ff] - src: use cached primordials_string (Sohyeon Kim) #60255
  • [7f0ffddc14] - src: implement Windows-1252 encoding support and update related tests (Mert Can Altin) #60893
  • [c2ba56d6b2] - src,permission: fix permission.has on empty param (Rafael Gonzaga) #60674
  • [e55a2b895a] - src,permission: add debug log on is_tree_granted (Rafael Gonzaga) #60668
  • [902a78b43c] - stream: fix isErrored/isWritable for WritableStreams (René) #60905
  • [221b77cf41] - stream: don’t try to read more if reading (Robert Nagy) #60454
  • [46d12d826f] - test: skip strace test with shared openssl (Richard Lau) #61987
  • [52e6b01a44] - test: mark test-strace-openat-openssl as flaky (Antoine du Hamel) #61921
  • [4d7468d0e0] - test: skip –build-sea tests on platforms where SEA is flaky (Joyee Cheung) #61504
  • [f604b7ae67] - test: fix flaky debugger test (Ryuhei Shima) #58324
  • [fc2dc4024b] - test: ensure removeListener event fires for once() listeners (sangwook) #60137
  • [5fba382816] - test: delay writing the files only on macOS (Luigi Pinca) #61532
  • [85cc9e20e4] - test: asserts that import.meta.resolve invokes sync loader hooks (Chengzhong Wu) #61158
  • [13831685ca] - test: check util.parseArgs argv parsing with actual process execution (René) #61089
  • [ec4b722cb8] - test: remove unneccessary repl magic_mode tests (Dario Piotrowicz) #61053
  • [5c811106bc] - test: skip sea tests on riscv64 (Stewart X Addison) #61111
  • [4e4a631c07] - test: mark stringbytes-external-max flaky on AIX (Stewart X Addison) #60995
  • [9af0787043] - test: update test426 fixtures (Rich Trott) #60982
  • [277f16d247] - test: skip SEA inspect test if inspector is not available (Livia Medeiros) #60872
  • [7dfa8c96bf] - test: use assert.match for non-literal regexp tests (René) #60879
  • [41e6cd8ce5] - test: fix embedtest in debug windows (Vladimir Morozov) #60806
  • [f65147b226] - test: fix debug test crashes caused by sea tests (Vladimir Morozov) #60807
  • [a93dff9e92] - test: replace deprecated regex test assertions in http trailers test (Aditya Chopra) #60831
  • [f90d5b954f] - test: prefer major GC in cppgc-object teardown (sangwook) #60672
  • [e1645cc78d] - test: skip test that cause timeout on IBM i (SRAVANI GUNDEPALLI) #60700
  • [4f23eba22f] - test: limit the concurrency of WPTRunner for RISC-V (Levi Zim) #60591
  • [c2bef6522b] - test: fix test-strace-openat-openssl for RISC-V (Levi Zim) #60588
  • [4c03a7f864] - test: fix status when compiled without inspector (Antoine du Hamel) #60289
  • [2ef146a074] - test: apply a delay to watch-mode-kill-signal tests (Joyee Cheung) #60610
  • [dc3000c504] - test: async iife in repl (Tony Gorez) #44878
  • [5e06e84db1] - test: parallelize sea tests when there’s enough disk space (Joyee Cheung) #60604
  • [940d2752bc] - test: only show overridden env in child process failures (Joyee Cheung) #60556
  • [558a5743c6] - test: add more logs to test-esm-loader-hooks-inspect-wait (Joyee Cheung) #60466
  • [10fac8de45] - test: mark stringbytes-external-exceed-max tests as flaky on AIX (Joyee Cheung) #60565
  • [8bc84046be] - test: correct conditional secure heap flags test (Shelley Vohr) #60385
  • [ccc805f184] - test: fix flaky test-watch-mode-kill-signal-* (Joyee Cheung) #60443
  • [1b8274453d] - test: capture stack trace in debugger timeout errors (Joyee Cheung) #60457
  • [9fcf889279] - test: ensure assertions are reachable in test/async-hooks (Antoine du Hamel) #60150
  • [7f5230333e] - test: increase debugger waitFor timeout on macOS (Chengzhong Wu) #60367
  • [0e5ea3b795] - test: fix small compile warning in test_network_requests_buffer.cc (xiaocainiao633) #60281
  • [012780c7e8] - test: split test-runner-watch-mode-kill-signal (Joyee Cheung) #60298
  • [b53d35a8f8] - test: fix incorrect calculation in test-perf-hooks.js (Joyee Cheung) #60271
  • [b8ef464c08] - test: skip sea tests on x64 macOS (Joyee Cheung) #60250
  • [a3c4d905da] - test: move sea tests into test/sea (Joyee Cheung) #60250
  • [80bec9fd07] - test: skip tests that cause timeouts on IBM i (SRAVANI GUNDEPALLI) #60148
  • [1d05b44c7c] - test: deflake test-fs-promises-watch-iterator (Luigi Pinca) #60060
  • [8958096840] - test: deflake test-repl-paste-big-data (Livia Medeiros) #60975
  • [e261a59ca4] - test: add new startNewREPLSever testing utility (Dario Piotrowicz) #59964
  • [d4a2d8aa8a] - test: skip failing tests when compiled without amaro (Yuki Okita) #60815
  • [0e407a88bb] - test: skip failing test on macOS 15.7+ (Antoine du Hamel) #60419
  • [a253b7b6dc] - tools: switch to ARM runners on GHA jobs (Antoine du Hamel) #61903
  • [8862c41494] - tools: avoid building twice in coverage jobs (Antoine du Hamel) #61899
  • [7d11a22802] - tools: use ubuntu-slim runner in GHA (Antoine du Hamel) #61759
  • [d0e7d6cb89] - tools: use ubuntu-slim runner in GHA (Antoine du Hamel) #61734
  • [cf5ddd1811] - tools: use ubuntu-latest runner in notify-on-push workflow (Antoine du Hamel) #61742
  • [18bcf8e260] - tools: use ubuntu-slim runner in meta GitHub Actions (Tierney Cyren) #61663
  • [db76733b55] - tools: update gyp-next to 0.21.1 (Node.js GitHub Bot) #61528
  • [1dd9d8a3b2] - tools: fix vcbuild lint-js-build (Vladimir Morozov) #61318
  • [ec67f8f9b5] - tools: only report commit validation failure on Slack (Antoine du Hamel) #61124
  • [8e385c8c66] - tools: use sparse-checkout in linter jobs (Antoine du Hamel) #61123
  • [aed2e9c8eb] - tools: simplify notify-on-push (Antoine du Hamel) #61050
  • [32680feefb] - tools: fix update-nghttp2 signature verification (Richard Lau) #61035
  • [c5f68f41e6] - tools: improve log output of create-release-proposal (Antoine du Hamel) #61028
  • [32e0ae0ec7] - tools: fix vcbuild test when path contain spaces (stduhpf) #56481
  • [9e0858e4a2] - tools: do not run test-linux workflow for changes on vcbuild.bat (Antoine du Hamel) #60979
  • [fd656a79fc] - tools: disable some new cpplint rules before update (Michaël Zasso) #60901
  • [df4df52e67] - tools: don’t fetch V8 deps in the source tree (Richard Lau) #60883
  • [e5c2fe8d6d] - tools: add temporal updater (Chengzhong Wu) #60828
  • [7f031e097e] - tools: dump config.gypi as json (Chengzhong Wu) #60794
  • [5e69488a5a] - tools: bump js-yaml from 4.1.0 to 4.1.1 in /tools/lint-md (dependabot[bot]) #60781
  • [5119c50931] - tools: bump js-yaml from 4.1.0 to 4.1.1 in /tools/doc in the doc group (dependabot[bot]) #60766
  • [a4b073123d] - tools: remove unsupported cooldown from Dependabot config (Antoine du Hamel) #60747
  • [a3df6b87bb] - tools: update sccache to v0.12.0 (Michaël Zasso) #60723
  • [2efbd54a4a] - tools: update gyp-next to 0.21.0 (Node.js GitHub Bot) #60645
  • [bb7876e4f9] - tools: replace invalid expression in dependabot config (Riddhi) #60649
  • [e444e44d6a] - tools: skip unaffected GHA jobs for changes in test/internet (Antoine du Hamel) #60517
  • [a6a0ec107c] - tools: do not use short hashes for deps versioning to avoid collision (Antoine du Hamel) #60407
  • [c6e2eed65f] - tools: fix update-icu script (Michaël Zasso) #60521
  • [76fb3d123b] - tools: fix linter for semver-major release proposals (Antoine du Hamel) #60481
  • [f02889e24e] - tools: fix failing release-proposal linter for LTS transitions (Antoine du Hamel) #60465
  • [8203df4432] - tools: remove undici from daily wpt.fyi job (Filip Skokan) #60444
  • [a58242b666] - tools: add lint rule to ensure assertions are reached (Antoine du Hamel) #60125
  • [58e3ef398f] - tools: update gyp-next to 0.20.5 (Node.js GitHub Bot) #60313
  • [996494482a] - tools: optimize wildcard execution in tools/test.py (Joyee Cheung) #60266
  • [cf84756d0d] - tools: use cooldown property correctly (Rafael Gonzaga) #60134
  • [5469cb2651] - tools: validate release commit diff as part of lint-release-proposal (Antoine du Hamel) #61440
  • [1b9eab4a1c] - tools,doc: fix format-md files list (Stefan Stojanovic) #61147
  • [b20d9c2ce7] - tools,doc: update JavaScript primitive types to match MDN Web Docs (JustApple) #60581
  • [31760b1beb] - typings: add typing for string_decoder (Taejin Kim) #61368
  • [d6b908917c] - typings: add missing properties and method in Worker (Woohyun Sung) #60257
  • [1e8b6d5686] - typings: add missing properties in HTTPParser (Woohyun Sung) #60257
  • [27ae9b4a26] - typings: delete undefined property in ConfigBinding (Woohyun Sung) #60257
  • [f43c6434e2] - typings: add buffer internalBinding typing (방진혁) #60163
  • [e7f954f63a] - url: add fast path to getPathFromURL decoder (Gürgün Dayıoğlu) #60749
  • [c149b64473] - url: remove array.reduce usage (Gürgün Dayıoğlu) #60748
  • [0bd291bff1] - util: optimize toASCIILower function using V8s native toLowerCase (Mert Can Altin) #61107
  • [bbc54b3c96] - util: limit inspect to only show own properties (Ruben Bridgewater) #61032
  • [78e5fa23c4] - util: fix parseArgs skipping positional arg with –eval and –print (azadgupta1) #60814
  • [f75ec19105] - util: assert getCallSites does not invoke Error.prepareStackTrace (Chengzhong Wu) #60922
  • [d77da9306c] - util: fix stylize of special properties in inspect (Ge Gao) #60479
  • [3a4edc8f6d] - util: use more defensive code when inspecting error objects (Antoine du Hamel) #60139
  • [25c33af752] - util: mark special properties when inspecting them (Ruben Bridgewater) #60131
  • [3f98b46716] - vm: make vm.Module.evaluate() conditionally synchronous (Joyee Cheung) #60205
  • [f64a691493] - win: upgrade Visual Studio workload from 2019 to 2022 (Jiawen Geng) #60318
  • [8e04327954] - worker: update code examples for node:worker_threads module (fisker Cheung) #58264
  • [c4440dcc60] - worker: remove not implemented declarations (Artur Gawlik) #60655
  • [df4cc62954] - zlib: validate write_result array length (Ryuhei Shima) #61342

Update Mar 5, 2026 tracked by Updatify

2026-03-05, Version 20.20.1 'Iron' (LTS), @marco-ippolito

Notable Changes

  • [91a66e671c] - build: test on Python 3.14 (Christian Clauss) #59983
  • [f66056054b] - crypto: update root certificates to NSS 3.119 (Node.js GitHub Bot) #61419
  • [80feacaddb] - crypto: update root certificates to NSS 3.117 (Node.js GitHub Bot) #60741

Commits

  • [6f580d5399] - assert: fix deepEqual always return true on URL (Xuguang Mei) #50853
  • [91a66e671c] - build: test on Python 3.14 (Christian Clauss) #59983
  • [cc4f7af6f3] - build: skip sscache action on non-main branches (Joyee Cheung) #61790
  • [f66056054b] - crypto: update root certificates to NSS 3.119 (Node.js GitHub Bot) #61419
  • [80feacaddb] - crypto: update root certificates to NSS 3.117 (Node.js GitHub Bot) #60741
  • [fa88cc07e2] - crypto: ensure documented RSA-PSS saltLength default is used (Filip Skokan) #60662
  • [88b2eec88a] - deps: update minimatch to 10.2.2 (Node.js GitHub Bot) #61830
  • [5c053264f1] - deps: V8: backport 6a0a25abaed3 (Vivian Wang) #61687
  • [4a398699d0] - deps: update googletest to 5a9c3f9e8d9b90bbbe8feb32902146cb8f7c1757 (Node.js GitHub Bot) #61731
  • [4fa43adf15] - deps: update googletest to 56efe3983185e3f37e43415d1afa97e3860f187f (Node.js GitHub Bot) #61605
  • [1a855d490c] - deps: update googletest to 85087857ad10bd407cd6ed2f52f7ea9752db621f (Node.js GitHub Bot) #61417
  • [d8a9359826] - deps: update icu to 78.2 (Node.js GitHub Bot) #60523
  • [e79cd3a0bb] - deps: update acorn-walk to 8.3.5 (Node.js GitHub Bot) #61928
  • [0707ade464] - deps: update acorn to 8.16.0 (Node.js GitHub Bot) #61925
  • [dc5a3cddef] - deps: update llhttp to 9.3.1 (Node.js GitHub Bot) #61827
  • [46043b94c7] - deps: update zlib to 1.3.1-e00f703 (Node.js GitHub Bot) #61135
  • [6be15a596e] - deps: update cjs-module-lexer to 2.2.0 (Node.js GitHub Bot) #61271
  • [10881404cd] - deps: update timezone to 2025c (Node.js GitHub Bot) #61138
  • [1594a78c85] - deps: update googletest to 065127f1e4b46c5f14fc73cf8d323c221f9dc68e (Node.js GitHub Bot) #61055
  • [7fa2ee1933] - deps: update zlib to 1.3.1-63d7e16 (Node.js GitHub Bot) #60898
  • [09259532ef] - deps: update googletest to 1b96fa13f549387b7549cc89e1a785cf143a1a50 (Node.js GitHub Bot) #60739
  • [aa8bdb6886] - deps: update cjs-module-lexer to 2.1.1 (Node.js GitHub Bot) #60646
  • [cc849fde27] - deps: update googletest to 279f847 (Node.js GitHub Bot) #60219
  • [a99ba553a2] - deps: update googletest to 50b8600 (Node.js GitHub Bot) #59955
  • [6349a79f5f] - deps: update googletest to 7e17b15 (Node.js GitHub Bot) #59131
  • [8ba759f1a0] - deps: update googletest to 35b75a2 (Node.js GitHub Bot) #58710
  • [927d906850] - deps: update googletest to e9092b1 (Node.js GitHub Bot) #58565
  • [bf8919f5c2] - deps: update googletest to 0bdccf4 (Node.js GitHub Bot) #57380
  • [ae6231dac0] - deps: update googletest to e235eb3 (Node.js GitHub Bot) #56873
  • [0561c62e85] - deps: update minimatch to 10.1.2 (Node.js GitHub Bot) #61732
  • [f0ef221b0d] - deps: update minimatch to 10.1.1 (Node.js GitHub Bot) #60543
  • [15bd0da404] - deps: update archs files for openssl (Antoine du Hamel) #61912
  • [04d439323f] - deps: upgrade openssl sources to openssl-3.0.19 (Antoine du Hamel) #61912
  • [2ea16d3bd6] - deps: update corepack to 0.34.6 (Node.js GitHub Bot) #61510
  • [622f973d1c] - deps: update corepack to 0.34.5 (Node.js GitHub Bot) #60842
  • [2cd265d8b9] - deps: update corepack to 0.34.4 (Node.js GitHub Bot) #60643
  • [65e839687b] - deps: update corepack to 0.34.2 (Node.js GitHub Bot) #60550
  • [2dc99d2771] - dns: fix Windows SRV ECONNREFUSED by adjusting c-ares fallback detection (notvivek12) #61453
  • [2c7b84b1d8] - doc: fix typo in http.md (Michael Solomon) #59354
  • [a84b42667c] - doc: fix grammar in global dispatcher usage (Eng Zer Jun) #59344
  • [ffd0ada45f] - doc: fix typo in test/common/README.md (Yoo) #59180
  • [b4d9d006e7] - doc: fix broken sentence in URL.parse (Superchupu) #59164
  • [45e9971d9c] - doc: fix typo in writing-test.md (SeokHun) #59123
  • [e9fd10b5d6] - doc: fix fetch subsections in globals.md (Antoine du Hamel) #58933
  • [3715dd1c2b] - doc: fix wrong RFC number in http2 (Deokjin Kim) #58753
  • [098c017eac] - doc: punctuation fix for Node-API versioning clarification (Jiacai Liu) #58599
  • [545bf434e1] - doc: fix typo of file http.md, outgoingMessage.setTimeout section (yusheng chen) #58188
  • [b3d6683e7b] - doc: support toolchain with Visual Studio 2019 & 2022 only (Mike McCready) #61450
  • [8fdde5d110] - doc: fix v20 changelog after security release (Marco Ippolito) #61371
  • [31d04599be] - http: fix keep-alive not timing out after post-request empty line (Shima Ryuhei) #58178
  • [5ec7d1eba0] - http2: validate initialWindowSize per HTTP/2 spec (Matteo Collina) #61402
  • [5c091d5a96] - meta: persist sccache daemon until end of build workflows (René) #61639
  • [183353aba0] - path,win: fix bug in resolve and normalize (Hüseyin Açacak) #55623
  • [dbe9e5091b] - src: fix flags argument offset in JSUdpWrap (Weixie Cui) #61948
  • [4106bfc775] - test: mark stringbytes-external-max flaky on AIX (Stewart X Addison) #60995
  • [de51937306] - test: mark stringbytes-external-exceed-max tests as flaky on AIX (Joyee Cheung) #60565
  • [368b221be3] - test: fix flaky test-performance-eventloopdelay (Matteo Collina) #61629
  • [e134912a33] - test: fix flaky test-worker-message-port-transfer-filehandle test (Alex Yang) #59158
  • [5630170d3e] - test: account for truthy signal in flaky async_hooks tests (Darshan Sen) #58478
  • [1e5363bb63] - test: mark test-http2-debug as flaky on LinuxONE (Richard Lau) #58494
  • [662998787a] - test: set test-fs-cp as flaky (Stefan Stojanovic) #56799
  • [0807127339] - test: mark test-esm-loader-hooks-inspect-wait flaky (Richard Lau) #56803
  • [6320cd0721] - test: skip strace test with shared openssl (Richard Lau) #61987
  • [83b9f8ee02] - tools: make nodedownload module compatible with Python 3.14 (Lumír ‘Frenzy’ Balhar) #58752
  • [6cf9b5786e] - tools: enforce removal of lts-watch-* labels on release proposals (Antoine du Hamel) #61672
  • [cd4161499c] - tools: use ubuntu-slim runner in meta GitHub Actions (Tierney Cyren) #61663
  • [6dc2a99a0d] - tools: validate release commit diff as part of lint-release-proposal (Antoine du Hamel) #61440
  • [5014f22332] - tools: add read permission to workflows that read contents (Antoine du Hamel) #58255
  • [6c3ad2a5a3] - tools: switch to ARM runners on GHA jobs (Antoine du Hamel) #61903
  • [1abada9c34] - tools: avoid building twice in coverage jobs (Antoine du Hamel) #61899
  • [f260e40127] - tools: use ubuntu-slim runner in GHA (Antoine du Hamel) #61759
  • [64beca5e01] - tools: use ubuntu-slim runner in GHA (Antoine du Hamel) #61734

Update Mar 3, 2026 tracked by Updatify

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

Notable Changes

  • [e55eddea2a] - build, doc: use new api doc tooling (flakey5) #57343
  • [4c181e2277] - (SEMVER-MINOR) sqlite: add limits property to DatabaseSync (Mert Can Altin) #61298
  • [46ee1eddd7] - (SEMVER-MINOR) src: add C++ support for diagnostics channels (RafaelGSS) #61869
  • [9ddd1a9c27] - (SEMVER-MINOR) src,permission: add –permission-audit (RafaelGSS) #61869
  • [0d97ec4044] - (SEMVER-MINOR) test_runner: expose worker ID for concurrent test execution (Ali Hassan) #61394

Commits

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

Update Feb 24, 2026 tracked by Updatify

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

Notable Changes

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

Commits

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

Update Feb 24, 2026 tracked by Updatify

2026-02-24, Version 24.14.0 'Krypton' (LTS), @ruyadorno prepared by @aduh95

Notable Changes

  • [8b6d31d379] - (SEMVER-MINOR) async_hooks: add trackPromises option to createHook() (Joyee Cheung) #61415
  • [68da144b4e] - build,deps: replace cjs-module-lexer with merve (Yagiz Nizipli) #61456
  • [f3a24c76e4] - (SEMVER-MINOR) deps: add LIEF as a dependency (Joyee Cheung) #61167
  • [1948861d23] - (SEMVER-MINOR) events: repurpose events.listenerCount() to accept EventTargets (René) #60214
  • [d6f7c8d06f] - (SEMVER-MINOR) fs: add ignore option to fs.watch (Matteo Collina) #61433
  • [cb54b3ca6e] - (SEMVER-MINOR) http: add http.setGlobalProxyFromEnv() (Joyee Cheung) #60953
  • [35b1759d06] - (SEMVER-MINOR) module: allow subpath imports that start with #/ (Jan Martin) #60864
  • [2d72ea66f2] - (SEMVER-MINOR) process: preserve AsyncLocalStorage in queueMicrotask only when needed (Gürgün Dayıoğlu) #60913
  • [6f4a4f6c8e] - (SEMVER-MINOR) sea: split sea binary manipulation code (Joyee Cheung) #61167
  • [c0ceb9b065] - (SEMVER-MINOR) sqlite: enable defensive mode by default (Bart Louwers) #61266
  • [33d8e8303b] - (SEMVER-MINOR) sqlite: add sqlite prepare options args (Guilherme Araújo) #61311
  • [563ab699eb] - (SEMVER-MINOR) src: add initial support for ESM in embedder API (Joyee Cheung) #61548
  • [4c80031000] - (SEMVER-MINOR) stream: add bytes() method to node:stream/consumers (wantaek) #60426
  • [f5233df4ff] - (SEMVER-MINOR) stream: do not pass readable.compose() output via Readable.from() (René) #60907
  • [345a40fda3] - (SEMVER-MINOR) test: use fixture directories for sea tests (Joyee Cheung) #61167
  • [972f82411d] - (SEMVER-MINOR) test_runner: add env option to run function (Ethan Arrowood) #61367
  • [d77f98c4b6] - (SEMVER-MINOR) test_runner: support expecting a test-case to fail (Jacob Smith) #60669
  • [8e900af6ba] - (SEMVER-MINOR) util: add convertProcessSignalToExitCode utility (Erick Wendel) #60963

Commits

  • [180778fb9a] - assert: fix loose deepEqual arrays with undefined and null failing (Ruben Bridgewater) #61587
  • [8b6d31d379] - (SEMVER-MINOR) async_hooks: add trackPromises option to createHook() (Joyee Cheung) #61415
  • [83bcd38d35] - benchmark: add streaming TextDecoder benchmark (Сковорода Никита Андреевич) #61549
  • [4c105844c5] - build: add support for Visual Studio 2026 (Michaël Zasso) #60727
  • [1f84fd91d9] - build: skip sscache action on non-main branches (Joyee Cheung) #61790
  • [30601b680f] - build: add --shared-nbytes configure flag (Antoine du Hamel) #61341
  • [c6253eda49] - build: add --shared-hdr-histogram configure flag (Antoine du Hamel) #61280
  • [584c189037] - build: add --shared-gtest configure flag (Antoine du Hamel) #61279
  • [5998987881] - build: aix: deoptimize implementation-visitor.cc with –shared (Stewart X Addison) #61550
  • [68da144b4e] - build,deps: replace cjs-module-lexer with merve (Yagiz Nizipli) #61456
  • [6a4511bafb] - build,win: fix vs2022 compilation (Stefan Stojanovic) #61530
  • [2d6735db8a] - deps: upgrade npm to 11.9.0 (npm team) #61685
  • [699e2f8f81] - deps: update amaro to 1.1.7 (Node.js GitHub Bot) #61730
  • [7be76316d6] - deps: update minimatch to 10.1.2 (Node.js GitHub Bot) #61732
  • [97e5a65013] - deps: update undici to 7.21.0 (Node.js GitHub Bot) #61683
  • [74e4710ee7] - deps: update googletest to 56efe3983185e3f37e43415d1afa97e3860f187f (Node.js GitHub Bot) #61605
  • [b5113e2a2a] - deps: update amaro to 1.1.6 (Node.js GitHub Bot) #61603
  • [f3a24c76e4] - (SEMVER-MINOR) deps: add LIEF as a dependency (Joyee Cheung) #61167
  • [c370c3dc06] - (SEMVER-MINOR) deps: add tools and scripts to pull LIEF as a dependency (Joyee Cheung) #61167
  • [e54975e17d] - deps: V8: cherry-pick highway\@dcc0ca1cd42 (Richard Lau) #61008
  • [625b90b76b] - deps: update undici to 7.19.2 (Node.js GitHub Bot) #61566
  • [05e9a9fb5e] - deps: update undici to 7.19.1 (Node.js GitHub Bot) #61514
  • [3d41643e38] - deps: update undici to 7.19.0 (Node.js GitHub Bot) #61470
  • [17b363a66c] - dns: fix Windows SRV ECONNREFUSED by adjusting c-ares fallback detection (notvivek12) #61453
  • [33d0a8c22d] - doc: clarify EventEmitter error handling in threat model (Matteo Collina) #61701
  • [5b8e72cf85] - doc: mention default option for test runner env (Steven) #61659
  • [f44e67fac2] - doc: fix –inspect security warning section (Tim Perry) #61675
  • [a0e09c9043] - doc: document url.format(urlString) as deprecated under DEP0169 (René) #61644
  • [5e719248fe] - doc: deprecation add more codemod (Augustin Mauroy) #61642
  • [8f5a3e5df4] - doc: fix grammatical error in README.md (ayj8201) #61653
  • [d52b535163] - doc: correct tools README Boxstarter link (Mike McCready) #61638
  • [4889dc4f59] - doc: update server.dropMaxConnection link (YuSheng Chen) #61584
  • [8e48e72f2a] - doc: clean up writing-and-running-benchmarks.md (Hardanish Singh) #61345
  • [1948861d23] - (SEMVER-MINOR) events: repurpose events.listenerCount() to accept EventTargets (René) #60214
  • [d6f7c8d06f] - (SEMVER-MINOR) fs: add ignore option to fs.watch (Matteo Collina) #61433
  • [2d7e5f9581] - http: implement slab allocation for HTTP header parsing (Mert Can Altin) #61375
  • [cb54b3ca6e] - (SEMVER-MINOR) http: add http.setGlobalProxyFromEnv() (Joyee Cheung) #60953
  • [6df8be48ce] - lib: use utf8 fast path for streaming TextDecoder (Сковорода Никита Андреевич) #61549
  • [830fff0aca] - lib: recycle queues (Robert Nagy) #61461
  • [069874bdbd] - lib: use StringPrototypeStartsWith from primordials in locks (Taejin Kim) #61492
  • [7824c7589e] - lib: unify ICU and no-ICU TextDecoder (Сковорода Никита Андреевич) #61409
  • [f81430702a] - lib: prefer call() over apply() if argument list is not array (Livia Medeiros) #60796
  • [a723f72e1e] - lib: add support for readable byte streams to .toWeb() (Hans Klunder) #58664
  • [b78d814b3d] - meta: persist sccache daemon until end of build workflows (René) #61639
  • [40a872a4b9] - meta: bump github/codeql-action from 4.31.9 to 4.32.0 (dependabot[bot]) #61622
  • [0637bdb3be] - meta: bump step-security/harden-runner from 2.14.0 to 2.14.1 (dependabot[bot]) #61621
  • [e8d9bd9fc5] - meta: bump actions/setup-python from 6.1.0 to 6.2.0 (dependabot[bot]) #61627
  • [c517df2b65] - meta: bump actions/setup-node from 6.1.0 to 6.2.0 (dependabot[bot]) #61625
  • [9a64f2f25d] - meta: bump actions/cache from 5.0.1 to 5.0.3 (dependabot[bot]) #61624
  • [0e5922e95e] - meta: bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 (dependabot[bot]) #61623
  • [5da7b51091] - meta: bump actions/stale from 10.1.0 to 10.1.1 (dependabot[bot]) #61620
  • [c085c8a43f] - meta: bump actions/checkout from 6.0.1 to 6.0.2 (dependabot[bot]) #61619
  • [ce2acf0275] - meta: bump actions/download-artifact from 6.0.0 to 7.0.0 (dependabot[bot]) #61242
  • [629f0eaac5] - meta: bump actions/checkout from 6.0.0 to 6.0.1 (dependabot[bot]) #61239
  • [cd80d369c9] - meta: bump actions/upload-artifact from 5.0.0 to 6.0.0 (dependabot[bot]) #61238
  • [8c75e4e1fa] - meta: bump actions/checkout from 5.0.1 to 6.0.0 (dependabot[bot]) #60925
  • [5a9e9f4127] - meta: bump actions/checkout from 5.0.0 to 5.0.1 (dependabot[bot]) #60767
  • [1519251dd1] - module: do not invoke resolve hooks twice for imported cjs (Joyee Cheung) #61529
  • [8d7190b3fe] - module: do not wrap module._load when tracing is not enabled (Joyee Cheung) #61479
  • [35b1759d06] - (SEMVER-MINOR) module: allow subpath imports that start with #/ (Jan Martin) #60864
  • [7a83b38921] - net: defer synchronous destroy calls in internalConnect (RajeshKumar11) #61658
  • [16bab79421] - process: do not truncate long strings in --print (Mohamed Akram) #61497
  • [2d72ea66f2] - (SEMVER-MINOR) process: preserve AsyncLocalStorage in queueMicrotask only when needed (Gürgün Dayıoğlu) #60913
  • [9cc1c4604f] - repl: fix getters triggering side effects during completion (Dario Piotrowicz) #61043
  • [93703306a1] - repl: tab completion targets <class> instead of new <class> (Đỗ Trọng Hải) #60319
  • [6f4a4f6c8e] - (SEMVER-MINOR) sea: split sea binary manipulation code (Joyee Cheung) #61167
  • [46a2dad4db] - sqlite: avoid extra copy for large text binds (Ali Hassan) #61580
  • [f91a377f7e] - sqlite: use DictionaryTemplate for run() result (Mert Can Altin) #61432
  • [0e7571ae3e] - sqlite: change approach to fix segfault SQLTagStore (Bart Louwers) #60462
  • [8e8f70524a] - sqlite: reserve vectors space (Guilherme Araújo) #61540
  • [c0ceb9b065] - (SEMVER-MINOR) sqlite: enable defensive mode by default (Bart Louwers) #61266
  • [33d8e8303b] - (SEMVER-MINOR) sqlite: add sqlite prepare options args (Guilherme Araújo) #61311
  • [f0d8f37002] - src: elide heap allocation in structured clone implementation (Anna Henningsen) #61703
  • [db478c4336] - src: use simdutf for one-byte string UTF-8 write in stringBytes (Mert Can Altin) #61696
  • [563ab699eb] - (SEMVER-MINOR) src: add initial support for ESM in embedder API (Joyee Cheung) #61548
  • [da13186a15] - src: throw RangeError on failed ArrayBuffer BackingStore allocation (Chengzhong Wu) #61480
  • [4c80031000] - (SEMVER-MINOR) stream: add bytes() method to stream/consumers (wantaek) #60426
  • [f5233df4ff] - (SEMVER-MINOR) stream: do not pass readable.compose() output via Readable.from() (René) #60907
  • [ad04a469c8] - test: restraint version replacement pattern in snapshots (Chengzhong Wu) #61748
  • [2d3b4a8d65] - test: print stack immediately avoiding GC interleaving (Chengzhong Wu) #61699
  • [38f43a6d4e] - test: fix case-insensitive path matching on Windows (Matteo Collina) #61682
  • [06513f5ff2] - test: fix flaky test-performance-eventloopdelay (Matteo Collina) #61629
  • [9d79c66c61] - test: remove duplicate wpt tests (Filip Skokan) #61617
  • [eac9f4f401] - test: fix race condition in watch mode tests (Matteo Collina) #61615
  • [ecf5947575] - test: update WPT for url to e3c46fdf55 (Node.js GitHub Bot) #61602
  • [356ff5fece] - test: use the skipIfNoWatch() utility function (Luigi Pinca) #61531
  • [4b2187aea2] - test: unify assertSnapshot common patterns (Chengzhong Wu) #61590
  • [8c25489d63] - test: split test-fs-watch-ignore-* (Luigi Pinca) #61494
  • [43b8a2b7e7] - test: add some validation for JSON doc output (Antoine du Hamel) #61413
  • [345a40fda3] - (SEMVER-MINOR) test: use fixture directories for sea tests (Joyee Cheung) #61167
  • [24cf6b8326] - test: reveal wpt evaluation errors in status files (Chengzhong Wu) #61358
  • [d4034dfb62] - test: forbid use of named imports for fixtures (Antoine du Hamel) #61228
  • [4f871ee897] - test: enforce better never-settling-promise detection (Antoine du Hamel) #60976
  • [8e9adedf02] - test: ensure assertions are reached on all tests (Antoine du Hamel) #60845
  • [273832802e] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60763
  • [e06adcb52f] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60760
  • [aeed0ccc02] - test: use RegExp.escape to improve test reliability (Antoine du Hamel) #60803
  • [74bcd0adab] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60728
  • [407807b08e] - test: skip tests not passing without NODE_OPTIONS support (Antoine du Hamel) #60912
  • [a9e70cefb0] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60634
  • [21b23cd0d0] - test_runner: fix test enqueue when test file has syntax error (Edy Silva) #61573
  • [6a4de694b2] - test_runner: fix passing expectFailure (Moshe Atlow) #61568
  • [6640de2b0f] - test_runner: differentiate todo and failure styles (Moshe Atlow) #61564
  • [972f82411d] - (SEMVER-MINOR) test_runner: add env option to run function (Ethan Arrowood) #61367
  • [d77f98c4b6] - (SEMVER-MINOR) test_runner: support expecting a test-case to fail (Jacob Smith) #60669
  • [f98986cbb9] - tools: switch to ARM runners on GHA jobs (Antoine du Hamel) #61903
  • [034589dd93] - tools: avoid building twice in coverage jobs (Antoine du Hamel) #61899
  • [e50e2f00bb] - tools: use ubuntu-slim runner in GHA (Antoine du Hamel) #61759
  • [f658f48ccb] - tools: use ubuntu-slim runner in GHA (Antoine du Hamel) #61734
  • [65c77d74ff] - tools: use ubuntu-latest runner in notify-on-push workflow (Antoine du Hamel) #61742
  • [605905556a] - tools: enforce removal of lts-watch-* labels on release proposals (Antoine du Hamel) #61672
  • [f0f98d4c03] - tools: use ubuntu-slim runner in meta GitHub Actions (Tierney Cyren) #61663
  • [ab63ddf354] - tools: add LIEF to license builder (Chengzhong Wu) #61523
  • [8a0f6192c9] - tools: enforce trailing commas in test/es-module (Antoine du Hamel) #60891
  • [4afbbcf39e] - tools: enforce trailing commas in test/sequential (Antoine du Hamel) #60892
  • [4c1abf752c] - tools,win: upgrade install additional tools to Visual Studio 2026 (Mike McCready) #61562
  • [8e900af6ba] - (SEMVER-MINOR) util: add convertProcessSignalToExitCode utility (Erick Wendel) #60963

Update Feb 10, 2026 tracked by Updatify

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

Notable Changes

  • [47df4328d7] - build,deps: replace cjs-module-lexer with merve (Yagiz Nizipli) #61456

Commits

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

Update Feb 10, 2026 tracked by Updatify

2026-02-10, Version 24.13.1 'Krypton' (LTS), @aduh95

Notable Changes

  • [1f64d6841e] - build: add support for Python 3.14 (Christian Clauss) #59983
  • [30e500fc09] - cli: mark --heapsnapshot-near-heap-limit as stable (Joyee Cheung) #60956
  • [bc0a55f086] - crypto: update root certificates to NSS 3.119 (Node.js GitHub Bot) #61419
  • [8a67c00bf5] - doc: mark --build-snapshot and --build-snapshot-config as stable (Joyee Cheung) #60954
  • [3999c2a910] - meta: add avivkeller to collaborators (Aviv Keller) #61115
  • [fa542fbae6] - meta: add gurgunday to collaborators (Gürgün Dayıoğlu) #61094
  • [ff11eda2f2] - meta: add Renegade334 to collaborators (Renegade334) #60714
  • [2e387fb969] - url: update ada to v3.4.2 and support unicode 17 (Yagiz Nizipli) #61593
  • [bb206782d4] - v8: mark v8.queryObjects() as stable (Joyee Cheung) #60957

Commits

  • [a73279c60d] - assert: use a set instead of an array for faster lookup (Ruben Bridgewater) #61076
  • [6a61bcd73c] - assert,util: fix deep comparison for sets and maps with mixed types (Ruben Bridgewater) #61388
  • [cf0eabcd42] - assert,util: improve deep comparison performance (Ruben Bridgewater) #61076
  • [ff3b9ac183] - benchmark: add SQLite benchmarks (Guilherme Araújo) #61401
  • [e1f7d68c94] - benchmark: use boolean options in benchmark tests (SeokhunEom) #60129
  • [91127c91cd] - benchmark: allow boolean option values (SeokhunEom) #60129
  • [170fda55f6] - benchmark: add microbench on isInsideNodeModules (Chengzhong Wu) #60991
  • [3976381b41] - benchmark: fix incorrect base64 input in byteLength benchmark (semimikoh) #60841
  • [c702fccd76] - benchmark: use typescript for import cjs benchmark (Joyee Cheung) #60663
  • [92c517c62d] - buffer: make methods work on Uint8Array instances (Neal Beeken) #56578
  • [be95382edb] - buffer: let Buffer.of use heap (Сковорода Никита Андреевич) #60503
  • [1f64d6841e] - build: test on Python 3.14 (Christian Clauss) #59983
  • [ea4687981b] - build: update android-patches/trap-handler.h.patch (Mo Luo) #60369
  • [b3a7a8c780] - build: update devcontainer.json to use paired nix env (Joyee Cheung) #61414
  • [7168d0b5e3] - build: add embedtest into native suite (Joyee Cheung) #61357
  • [e00755a977] - build: fix misplaced comma in ldflags (hqzing) #61294
  • [72fcc3ee9d] - build: fix crate vendor file checksums on windows (Chengzhong Wu) #61329
  • [76a73d68fd] - build: expose libplatform symbols in shared libnode (Joyee Cheung) #61144
  • [ef8d26ce5c] - build: fix inconsistent quoting in Makefile (Antoine du Hamel) #60511
  • [2d23968783] - build: remove temporal updater (Chengzhong Wu) #61151
  • [4c2655f1c2] - build: update test-wpt-report to use NODE instead of OUT_NODE (Filip Skokan) #61024
  • [eaea6821fc] - build: skip build-ci on actions with a separate test step (Chengzhong Wu) #61073
  • [dfd4e12037] - build: run embedtest with node_g when BUILDTYPE=Debug (Chengzhong Wu) #60850
  • [775c77234b] - build,tools: fix addon build deadlock on errors (Vladimir Morozov) #61321
  • [5deafc10fa] - build,win: improve logs when ClangCL is missing (Mike McCready) #61438
  • [e2481c5c6e] - build,win: update WinGet configurations to Python 3.14 (Mike McCready) #61431
  • [d2586b7e4c] - child_process: treat ipc length header as unsigned uint32 (Ryuhei Shima) #61344
  • [30e500fc09] - cli: mark –heapsnapshot-near-heap-limit as stable (Joyee Cheung) #60956
  • [2c7da15612] - cluster: fix port reuse between cluster (Ryuhei Shima) #60141
  • [bc0a55f086] - crypto: update root certificates to NSS 3.119 (Node.js GitHub Bot) #61419
  • [2d5f20e9c3] - crypto: update root certificates to NSS 3.117 (Node.js GitHub Bot) #60741
  • [fba95be188] - deps: update archs files for openssl-3.5.5 (Node.js GitHub Bot) #61547
  • [08697289e0] - deps: upgrade openssl sources to openssl-3.5.5 (Node.js GitHub Bot) #61547
  • [403c50c04d] - deps: update corepack to 0.34.6 (Node.js GitHub Bot) #61510
  • [3b24691aeb] - deps: upgrade npm to 11.8.0 (npm team) #61466
  • [2bba7efdc4] - deps: update googletest to 85087857ad10bd407cd6ed2f52f7ea9752db621f (Node.js GitHub Bot) #61417
  • [8f8c6f6162] - deps: update sqlite to 3.51.2 (Node.js GitHub Bot) #61339
  • [c46009053c] - deps: update icu to 78.2 (Node.js GitHub Bot) #60523
  • [b46b8dd91b] - deps: update ada to v3.4.0 (Yagiz Nizipli) #61315
  • [88c6b17e18] - deps: update zlib to 1.3.1-e00f703 (Node.js GitHub Bot) #61135
  • [0030c05ba9] - deps: update cjs-module-lexer to 2.2.0 (Node.js GitHub Bot) #61271
  • [77437cff89] - deps: update nbytes to 0.1.2 (Node.js GitHub Bot) #61270
  • [fb0f05a937] - deps: update timezone to 2025c (Node.js GitHub Bot) #61138
  • [b426a47c05] - deps: nghttp2: revert 7784fa979d0b (Antoine du Hamel) #61136
  • [c07a38f700] - deps: update nghttp2 to 1.68.0 (nodejs-github-bot) #61136
  • [c2ddc9a18b] - deps: update simdjson to 4.2.4 (Node.js GitHub Bot) #61056
  • [f38cd6da8e] - deps: update googletest to 065127f1e4b46c5f14fc73cf8d323c221f9dc68e (Node.js GitHub Bot) #61055
  • [a9a6a4cdb2] - deps: brotli: cherry-pick e230f474b87 (liujiahui) #61003
  • [5a40023aae] - deps: upgrade npm to 11.7.0 (npm team) #61011
  • [4121e7a413] - deps: update sqlite to 3.51.1 (Node.js GitHub Bot) #60899
  • [e8a09fc896] - deps: update zlib to 1.3.1-63d7e16 (Node.js GitHub Bot) #60898
  • [8df5862ee5] - deps: upgrade npm to 11.6.4 (npm team) #60853
  • [6c1c8cbdcc] - deps: update sqlite to 3.51.0 (Node.js GitHub Bot) #60614
  • [2d1efc7c1b] - deps: upgrade npm to 11.6.3 (npm team) #60785
  • [3a2de1c23b] - deps: update brotli to 1.2.0 (Node.js GitHub Bot) #60540
  • [58c5d40bd1] - deps: update simdjson to 4.2.2 (Node.js GitHub Bot) #60740
  • [e6b607ef50] - deps: update googletest to 1b96fa13f549387b7549cc89e1a785cf143a1a50 (Node.js GitHub Bot) #60739
  • [650c9e0305] - deps: update minimatch to 10.1.1 (Node.js GitHub Bot) #60543
  • [ef1951d5d5] - deps: update inspector_protocol to 1b1bcbbe060e8c8cd8704f00f78978c50991 (Node.js GitHub Bot) #60705
  • [eb068305dd] - deps: update cjs-module-lexer to 2.1.1 (Node.js GitHub Bot) #60646
  • [ee1d99131c] - deps: update simdjson to 4.2.1 (Node.js GitHub Bot) #60644
  • [23582967b7] - deps: V8: cherry-pick 1441665e0d87 (Domagoj Stolfa) #60989
  • [155eaedff2] - deps: V8: cherry-pick 394a8053b59e (Lu Yahan) #60962
  • [c95a4a0f43] - deps: V8: backport bbaae8e36164 (Lu Yahan) #60962
  • [6f123f186d] - doc: move Security-Team from TSC to SECURITY (Rafael Gonzaga) #61495
  • [2e3337d15b] - doc: added requestOCSP option to tls.connect (ikeyan) #61064
  • [f505f81577] - doc: restore @ChALkeR to collaborators (Сковорода Никита Андреевич) #61553
  • [12fb95d0c9] - doc: update IBM/Red Hat volunteers with dedicated project time (Beth Griggs) #61588
  • [283ab61ed2] - doc: align Buffer.concat documentation with behavior (Gürgün Dayıoğlu) #60405
  • [fc9c906d5f] - doc: remove v prefix for version references (Mike McCready) #61488
  • [4a88ed09e8] - doc: mention constructor comparison in assert.deepStrictEqual (Hamza Kargin) #60253
  • [9b29d56491] - doc: add CVE delay mention (Rafael Gonzaga) #61465
  • [4815e4ac52] - doc: update previous version links in BUILDING (Mike McCready) #61457
  • [8a43244e6c] - doc: include OpenJSF handle for security stewards (Rafael Gonzaga) #61454
  • [89a7f184a1] - doc: clarify process.argv[1] behavior for -e/–eval (Jeevankumar S) #61366
  • [b4041aba1c] - doc: remove Windows Dev Home instructions from BUILDING (Mike McCready) #61434
  • [fa7830bac0] - doc: clarify TypedArray properties on Buffer (Roman Reiss) #61355
  • [45663c8956] - doc: update Python 3.14 manual install instructions (Windows) (Mike McCready) #61428
  • [0248357f26] - doc: note resume build should not be done on node-test-commit (Stewart X Addison) #61373
  • [b254bab513] - doc: refine WebAssembly error documentation (sangwook) #61382
  • [8aca37c6ef] - doc: add deprecation history for url.parse (Eng Zer Jun) #61389
  • [8047ac3aac] - doc: add marco and rafael in last sec release (Marco Ippolito) #61383
  • [61190bf4b4] - doc: packages: example of private import switch to internal (coderaiser) #61343
  • [346311c42f] - doc: add esm and cjs examples to node:v8 (Alfredo González) #61328
  • [c07c80717c] - doc: added ‘secure’ event to tls.TLSSocket (ikeyan) #61066
  • [9f68d30f11] - doc: restore @watilde to collaborators (Daijiro Wachi) #61350
  • [a3b08ddb51] - doc: run license-builder (github-actions[bot]) #61348
  • [4990812dd9] - doc: document ALPNCallback option for TLSSocket constructor (ikeyan) #61331
  • [89e9d19693] - doc: update MDN links (Livia Medeiros) #61062
  • [dcffa88fec] - doc: correct description of error.stack accessor behavior (René) #61090
  • [31476cd4d1] - doc: add documentation for process.traceProcessWarnings (Alireza Ebrahimkhani) #53641
  • [99c783b9ec] - doc: add sqlite session disposal method (René) #61273
  • [c7764bed35] - doc: fix filename typo (Hardanish Singh) #61297
  • [0f16bca9d8] - doc: fix typos and grammar in BUILDING.md & onboarding.md (Hardanish Singh) #61267
  • [4b691b562d] - doc: mention –newVersion release script (Rafael Gonzaga) #61255
  • [32e56ab71f] - doc: correct typo in api contributing doc (Mike McCready) #61260
  • [9ebf1ffbeb] - doc: add PR-URL requirement for security backports (Rafael Gonzaga) #61256
  • [940f83d95d] - doc: add reusePort error behavior to net module (mag123c) #61250
  • [8881859ee0] - doc: note corepack package removal in distribution doc (Mike McCready) #61207
  • [03a1540cd1] - doc: fix tls.connect() timeout documentation (Azad Gupta) #61079
  • [816ce7530d] - doc: missing passed, error and passed properties on TestContext (Xavier Stouder) #61185
  • [d825c8858a] - doc: clarify threat model for application-level API exposure (Rafael Gonzaga) #61184
  • [a3dd30d0e0] - doc: correct options for net.Socket class and socket.connect (Xavier Stouder) #61179
  • [c3e776becd] - doc: document error event on readline InterfaceConstructor (Xavier Stouder) #61170
  • [05a6372d30] - doc: add a smooth scrolling effect to the sidebar (btea) #59007
  • [76a7eb09ef] - doc: fix test settime docs (Efe) #61117
  • [bcbbde6ccc] - doc: correct invalid collaborator profile (JJ) #61091
  • [084741d09d] - doc: add a tip about developer mode on Windows (Joyee Cheung) #61112
  • [ed4de371d3] - doc: exclude compile-time flag features from security policy (Matteo Collina) #61109
  • [3999c2a910] - doc: add @avivkeller to collaborators (Aviv Keller) #61115
  • [f3ec066f1a] - doc: warn about short GCM tags visibly (Tobias Nießen) #61082
  • [fa542fbae6] - doc: add gurgunday to collaborators (Gürgün Dayıoğlu) #61094
  • [49f36722dc] - doc: mark sync module hooks as release candidate (Joyee Cheung) #60960
  • [a0adc6afd2] - doc: reorganize docs of module customization hooks (Joyee Cheung) #60960
  • [a4097ca048] - doc: mark crypto.hash as stable (Joyee Cheung) #60994
  • [8a67c00bf5] - doc: mark –build-snapshot and –build-snapshot-config as stable (Joyee Cheung) #60954
  • [0c83169c35] - doc: add File modes cross-references in fs methods (Mohit Raj Saxena) #60286
  • [dae815262a] - doc: add missing zstd to mjs example of zlib (Deokjin Kim) #60915
  • [28b284880e] - doc: clarify fileURLToPath security considerations (Rafael Gonzaga) #60887
  • [6c440af39b] - doc: show the use of string expressions in the SQLTagStore example (schliepa) #60873
  • [4c5b62209c] - doc: replace column with columnNumber in example of util.getCallSites (Deokjin Kim) #60881
  • [8875c9148e] - doc: correct spelling in BUILDING.md (Rich Trott) #60875
  • [d6cb762426] - doc: update debuglog examples to use ‘foo-bar’ instead of ‘foo’ (xiaoyao) #60867
  • [9eae518796] - doc: correct ‘event handle’ to ‘event handler’ in Utf8Stream drop event (Riddhi) #60692
  • [c3c3ed27c1] - doc: fix typos in changelogs (Rich Trott) #60855
  • [1b975e3017] - doc: mark module.register as active development (Chengzhong Wu) #60849
  • [6a6fc0c851] - doc: add fullName property to SuiteContext (PaulyBearCoding) #60762
  • [8347d734e6] - doc: add additional codemods for deprecation (Augustin Mauroy) #60811
  • [7cc87037c3] - doc: keep sidebar module visible when navigating docs (Botato) #60410
  • [1c6618f643] - doc: correct concurrency wording in test() documentation (Azad Gupta) #60773
  • [488208004e] - doc: clarify that CQ only picks up PRs targeting main (René) #60731
  • [34517940c2] - doc: clarify license section and add contributor note (KaleruMadhu) #60590
  • [f080721df4] - doc: correct and expand documentation for SQLTagStore (René) #60200
  • [be3d26709d] - doc: correct tls ALPNProtocols types (René) #60143
  • [ef82c53131] - doc: remove mention of SMS 2FA (Antoine du Hamel) #60707
  • [11b190f63e] - doc: add info about renamed flag in cli.md (Antoine du Hamel) #60690
  • [59db9bc654] - doc: fix incorrect slh-dsa oids in crypto.md (Artsiom Malakhau) #60681
  • [ad52750cf6] - doc: domain.add() does not accept timer objects (René) #60675
  • [2592d94e29] - doc: fix v24 changelog after security release (Marco Ippolito) #61371
  • [e0f4ad0af0] - doc,test: add documentation and test on how to use addons in SEA (Joyee Cheung) #59582
  • [13af640d94] - esm: ensure watch mode restarts after syntax errors (Xavier Stouder) #61232
  • [31afe95d15] - esm: avoid throw when module specifier is not url (Craig Macomber (Microsoft)) #61000
  • [311a04cf2d] - esm: improve error messages for ambiguous module syntax (mag123c) #60376
  • [cacef92937] - events: remove redundant todo (Gürgün Dayıoğlu) #60595
  • [42e1f72561] - events: remove eventtarget custom inspect branding (Efe) #61128
  • [fd8b61369b] - fs: remove duplicate getValidatedPath calls (Mert Can Altin) #61359
  • [9bb9fc7f2c] - fs: fix errorOnExist behavior for directory copy in fs.cp (Nicholas Paun) #60946
  • [55a3c70780] - fs: fix ENOTDIR in globSync when file is treated as dir (sangwook) #61259
  • [073a145095] - fs: remove duplicate fd validation in sync functions (Mert Can Altin) #61361
  • [b132ecdf60] - fs: validate statfs path (Efe) #61230
  • [0ed0a30f74] - fs: fix rmSync to handle non-ASCII characters (Yeaseen) #61108
  • [99632b1a3b] - fs: remove broken symlinks in rmSync (sangwook) #61040
  • [9cb6757a67] - fs: detect dot files when using globstar (Robin van Wijngaarden) #61012
  • [e22aad19e0] - gyp: aix: change gcc version detection so CXX=”ccache g++” works (Stewart X Addison) #61464
  • [59d94ba7e7] - http: fix rawHeaders exceeding maxHeadersCount limit (Max Harari) #61285
  • [ae6a1fd40a] - http,https: fix double ERR_PROXY_TUNNEL emission (Shima Ryuhei) #60699
  • [53bfbaa4b1] - http2: validate initialWindowSize per HTTP/2 spec (Matteo Collina) #61402
  • [14b421b677] - http2,zlib: prefer call() over apply() if argument list is not array (Livia Medeiros) #60834
  • [32b03d0604] - (CVE-2025-59465) lib: add TLSSocket default error handler (RafaelGSS) nodejs-private/node-private#750
  • [4ef7a6c77e] - lib: backport _tls_common and _tls_wrap refactors (Dario Piotrowicz) #57643
  • [820e0a5cfa] - lib: fix typo in util.js comment (Taejin Kim) #61365
  • [8de391e1cb] - lib: fix TypeScript support check in jitless mode (sangwook) #61382
  • [f22f622b3e] - lib: add lint rules for reflective function calls (Michaël Zasso) #60825
  • [603f0bf8e1] - lib: implement all 1-byte encodings in js (Сковорода Никита Андреевич) #61093
  • [1c0a1aa5ef] - lib: gbk decoder is gb18030 decoder per spec (Сковорода Никита Андреевич) #61099
  • [2cf963df73] - lib: enforce use of URLParse (Antoine du Hamel) #61016
  • [bb90630470] - lib: use FastBuffer for empty buffer allocation (Gürgün Dayıoğlu) #60558
  • [10893a6f13] - lib: refactor JWK import PQC support check (Filip Skokan) #60586
  • [d43806291f] - lib,src: isInsideNodeModules should test on the first non-internal frame (Chengzhong Wu) #60991
  • [0bb8f5fe03] - lib,src,test: fix tests without SQLite (Antoine du Hamel) #60906
  • [f3fe0e7fc2] - lib,test: enforce use of assert.fail via a lint rule (Antoine du Hamel) #61004
  • [8b783d46ef] - meta: do not fast-track npm updates (Antoine du Hamel) #61475
  • [de4a11b50e] - meta: fix typos in issue template config (Daijiro Wachi) #61399
  • [97b1492783] - meta: label v8 module PRs (René) #61325
  • [9bf899b743] - meta: bump step-security/harden-runner from 2.13.2 to 2.14.0 (dependabot[bot]) #61245
  • [4df7134324] - meta: bump actions/setup-node from 6.0.0 to 6.1.0 (dependabot[bot]) #61244
  • [ff98f610d8] - meta: bump actions/cache from 4.3.0 to 5.0.1 (dependabot[bot]) #61243
  • [86950a41ab] - meta: bump github/codeql-action from 4.31.6 to 4.31.9 (dependabot[bot]) #61241
  • [96901b4828] - meta: bump codecov/codecov-action from 5.5.1 to 5.5.2 (dependabot[bot]) #61240
  • [c90fc7c0d3] - meta: bump peter-evans/create-pull-request from 7.0.9 to 8.0.0 (dependabot[bot]) #61237
  • [f130d4b6de] - meta: move lukekarrys to emeritus (Node.js GitHub Bot) #60985
  • [416f34ccfc] - meta: bump actions/setup-python from 6.0.0 to 6.1.0 (dependabot[bot]) #60927
  • [2239939305] - meta: bump github/codeql-action from 4.31.3 to 4.31.6 (dependabot[bot]) #60926
  • [7f146b6a97] - meta: bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 (dependabot[bot]) #60924
  • [d9020f0089] - meta: bump github/codeql-action from 4.31.2 to 4.31.3 (dependabot[bot]) #60770
  • [4bba259d3b] - meta: bump step-security/harden-runner from 2.13.1 to 2.13.2 (dependabot[bot]) #60769
  • [ff11eda2f2] - meta: add Renegade334 to collaborators (Renegade334) #60714
  • [e3b5593c0f] - module: fix sync resolve hooks for require with node: prefixes (Joyee Cheung) #61088
  • [edec5be805] - module: preserve URL in the parent created by createRequire() (Joyee Cheung) #60974
  • [5cc3596eb4] - node-api: fix node_api_create_object_with_properties name (Vladimir Morozov) #61319
  • [179162fe42] - node-api: use Node-API in comments (Vladimir Morozov) #61320
  • [b3fe457a89] - node-api: add napi_set_prototype (siaeyy) #60711
  • [1e13e84f16] - node-api: fix data race and use-after-free in napi_threadsafe_function (Mika Fischer) #55877
  • [36ce6d636d] - node-api: add support for Float16Array (Ilyas Shabi) #58879
  • [95e6659e2b] - node-api: support SharedArrayBuffer in napi_create_dataview (Kevin Eady) #60473
  • [54f58e2fb2] - os: freeze signals constant (Xavier Stouder) #61038
  • [31489310f8] - process: improve process.cwd() error message (TseIan) #61164
  • [f7450a90ed] - repl: move completion logic to internal module (Dario Piotrowicz) #59889
  • [27117625df] - sqlite: add some tests (Guilherme Araújo) #61410
  • [d56066ce8c] - sqlite: improve error messages for tag store (Pramit Sharma) #61096
  • [9d993be6c1] - sqlite: make SQLTagStore.prototype.size a getter (René) #60246
  • [ceaa200d16] - src: improve StringBytes::Encode perf on UTF8 (Сковорода Никита Андреевич) #61131
  • [034a5f2346] - src: add missing override specifier to Clean() (Tobias Nießen) #61429
  • [977f46cc20] - src: cache context lookup in vectored io loops (Mert Can Altin) #61387
  • [bb9e4e0784] - src: cache missing package.json files in the C++ package config cache (Michael Smith) #60425
  • [c1aa9f49cd] - src: use starts_with instead of rfind/find (Tobias Nießen) #61426
  • [d3676d0a82] - src: use C++ nullptr in sqlite (Tobias Nießen) #61416
  • [001be8aa7c] - src: use C++ nullptr in webstorage (Tobias Nießen) #61407
  • [4f832b1e3d] - src: fix pointer alignment (jhofstee) #61336
  • [a0a8c96fd1] - src: dump snapshot source with node:generate_default_snapshot_source (Joyee Cheung) #61101
  • [b6d3caeda8] - src: improve StringBytes::Encode perf on ASCII (Сковорода Никита Андреевич) #61119
  • [9c80e5ac87] - src: add HandleScope to edge loop in heap_utils (Mert Can Altin) #60885
  • [09ccd94312] - src: remove redundant CHECK (Tobias Nießen) #61130
  • [6008354b8a] - src: remove unused private field in SQLTagStore (Michaël Zasso) #61027
  • [7484a34a7d] - src: implement Windows-1252 encoding support and update related tests (Mert Can Altin) #60893
  • [47851db855] - src: fix off-thread cert loading in bundled cert mode (Joyee Cheung) #60764
  • [4702a8696b] - src: handle DER decoding errors from system certificates (Joyee Cheung) #60787
  • [19a4926965] - src: use static_cast instead of C-style cast (Michaël Zasso) #60868
  • [6529334dec] - src: add test flag to config file (Marco Ippolito) #60798
  • [d153b30773] - src: split inspector protocol domains files (Chengzhong Wu) #60754
  • [7191b847c6] - src,permission: fix permission.has on empty param (Rafael Gonzaga) #60674
  • [a188b954bb] - src,permission: add debug log on is_tree_granted (Rafael Gonzaga) #60668
  • [b483b5a8ea] - stream: export namespace object from internal end-of-stream module (René) #61455
  • [0472104536] - stream: fix isErrored/isWritable for WritableStreams (René) #60905
  • [dd13f1046f] - test: skip –build-sea tests on platforms where SEA is flaky (Joyee Cheung) #61504
  • [6c18bf26f4] - test: update WPT for url to 81a2aed262 (Node.js GitHub Bot) #61509
  • [f511c24d6b] - test: fix flaky debugger test (Ryuhei Shima) #58324
  • [41710ba953] - test: ensure removeListener event fires for once() listeners (sangwook) #60137
  • [0035f3fa0f] - test: delay writing the files only on macOS (Luigi Pinca) #61532
  • [99c29eb261] - test: add implicit test for fs dispose handling with using (Ilyas Shabi) #61140
  • [e349d34c8a] - test: check new WebCryptoAPI enum values (Filip Skokan) #61406
  • [e75617d25f] - test: split test-esm-loader-hooks (Joyee Cheung) #61374
  • [42110af62a] - test: aix: mark test-emit-on-destroyed as flaky (Stewart X Addison) #61381
  • [180fdbf188] - test: update url web-platform tests (Yagiz Nizipli) #61315
  • [4bac4ecd9d] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60761
  • [39ca74e57e] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60759
  • [7327b04875] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60726
  • [fd6601c710] - test: asserts that import.meta.resolve invokes sync loader hooks (Chengzhong Wu) #61158
  • [da4d4d4fde] - test: check util.parseArgs argv parsing with actual process execution (René) #61089
  • [368b32d410] - test: update WPT for urlpattern to a2e15ad405 (Node.js GitHub Bot) #61134
  • [e880062de8] - test: make buffer sizes 32bit-aware in test-internal-util-construct-sab (René) #61026
  • [f2706e1166] - test: remove unneccessary repl magic_mode tests (Dario Piotrowicz) #61053
  • [327dd25f86] - test: skip sea tests on riscv64 (Stewart X Addison) #61111
  • [6da34027e2] - test: simplify test-cli-node-options-docs (Antoine du Hamel) #61006
  • [74df70d1da] - test: mark stringbytes-external-max flaky on AIX (Stewart X Addison) #60995
  • [5513338446] - test: update test426 fixtures (Rich Trott) #60982
  • [9f594f53a7] - test: update WPT for urlpattern to aed1f3d244 (Node.js GitHub Bot) #60642
  • [18e3b91bf1] - test: deflake test-repl-paste-big-data (Livia Medeiros) #60975
  • [28ecdc5c98] - test: skip SEA inspect test if inspector is not available (Livia Medeiros) #60872
  • [24a50b31e0] - test: update WPT for WebCryptoAPI to 1e4933113d (Node.js GitHub Bot) #60896
  • [78ad2f4dad] - test: lint more assert(regexp.test(...)) cases (René) #60878
  • [280d567e1c] - test: use assert.match for non-literal regexp tests (René) #60879
  • [74b14258cb] - test: fix embedtest in debug windows (Vladimir Morozov) #60806
  • [163c17de51] - test: skip failing tests when compiled without amaro (Yuki Okita) #60815
  • [5763a304d2] - test: fix debug test crashes caused by sea tests (Vladimir Morozov) #60807
  • [1fb83e240d] - test: add lint rule to forbid use of assert.ok(/regex/.test(…)) (Antoine du Hamel) #60832
  • [8c97827913] - test: replace deprecated regex test assertions in http trailers test (Aditya Chopra) #60831
  • [a88bffeedc] - test: prefer major GC in cppgc-object teardown (sangwook) #60672
  • [2e2963f3ed] - test: ensure assertions are reached on HTTP2 tests (Antoine du Hamel) #60730
  • [9b748942ec] - test: ensure assertions are reached on HTTP tests (Antoine du Hamel) #60729
  • [37947e0adf] - test: skip test that cause timeout on IBM i (SRAVANI GUNDEPALLI) #60700
  • [357825979e] - test: add missing r.close() calls in REPL multiline tests (sangwook) #60226
  • [ccecbd9f80] - test: update WPT for WebCryptoAPI to c58b6f4e0e (Node.js GitHub Bot) #60702
  • [63a2400c64] - test: limit the concurrency of WPTRunner for RISC-V (Levi Zim) #60591
  • [ec40989dfb] - test: fix test-strace-openat-openssl for RISC-V (Levi Zim) #60588
  • [b09129df18] - test: split test-runner-run-watch.mjs (Joyee Cheung) #60653
  • [0f05221aec] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60641
  • [078cfa2cd6] - test_runner: fix memory leaks in runner (Abhishek Kv. Savani) #60860
  • [73146e9c50] - test_runner: fix coverage report when a directory is named file (Heath Dutton🕴️) #61169
  • [8fc61e45e2] - test_runner: print info when test restarts (Xavier Stouder) #61160
  • [9382be5b16] - test_runner: fix rerun ambiguous test failures (Moshe Atlow) #61392
  • [ce417b14c0] - test_runner: nix dead reporter code (Vas Sudanagunta) #59700
  • [ce79c72829] - test_runner: fix lazy test.assert accessor (René) #61097
  • [9a25541bd2] - test_runner: propagate V8 options to child process (Pietro Marchini) #60999
  • [d61b0584ca] - test_runner: fix line feed escaping in JUnit (Aliaksandr) #60274
  • [fc98343591] - test_runner: simplify code and make it more consistent (Antoine du Hamel) #60777
  • [36e29bf400] - (CVE-2026-21637) tls: route callback exceptions through error handlers (Matteo Collina) nodejs-private/node-private#782
  • [bc610a825d] - tools: update gyp-next to 0.21.1 (Node.js GitHub Bot) #61528
  • [c335462a6a] - tools: validate release commit diff as part of lint-release-proposal (Antoine du Hamel) #61440
  • [0e53c48ab6] - tools: fix vcbuild lint-js-build (Vladimir Morozov) #61318
  • [f989fdc469] - tools: bump the eslint group in /tools/eslint with 2 updates (dependabot[bot]) #61246
  • [f104719490] - tools: only report commit validation failure on Slack (Antoine du Hamel) #61124
  • [0267293e79] - tools: use sparse-checkout in linter jobs (Antoine du Hamel) #61123
  • [2c861d4bd4] - tools: simplify notify-on-push (Antoine du Hamel) #61050
  • [678f2caa71] - tools: fix update-nghttp2 signature verification (Richard Lau) #61035
  • [2ef5be0570] - tools: improve log output of create-release-proposal (Antoine du Hamel) #61028
  • [cd5c76cffe] - tools: fix vcbuild test when path contain spaces (stduhpf) #56481
  • [da6cb8e1d2] - tools: do not run test-linux workflow for changes on vcbuild.bat (Antoine du Hamel) #60979
  • [49f7a8c07a] - tools: bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /tools/doc (dependabot[bot]) #60930
  • [4f12d38359] - tools: replace deprecated eslint-plugin-markdown (Michaël Zasso) #60908
  • [78aef6c098] - tools: remove deprecated ESLint plugins (Michaël Zasso) #60908
  • [de57704198] - tools: update ESLint dependencies (Michaël Zasso) #60908
  • [fd155c9764] - tools: disable some new cpplint rules before update (Michaël Zasso) #60901
  • [f7f987305b] - tools: don’t fetch V8 deps in the source tree (Richard Lau) #60883
  • [f7a7e363f9] - tools: add temporal updater (Chengzhong Wu) #60828
  • [a7bb9746ba] - tools: dump config.gypi as json (Chengzhong Wu) #60794
  • [23792b1334] - tools: bump js-yaml from 4.1.0 to 4.1.1 in /tools/lint-md (dependabot[bot]) #60781
  • [5b75fec005] - tools: bump js-yaml from 4.1.0 to 4.1.1 in /tools/doc in the doc group (dependabot[bot]) #60766
  • [a8cf03323b] - tools: update install_tools.bat old echo from 2019 to 2022 (David Hidalgo) #60736
  • [1e9281e147] - tools: remove unsupported cooldown from Dependabot config (Antoine du Hamel) #60747
  • [497184baff] - tools: update sccache to v0.12.0 (Michaël Zasso) #60723
  • [0a33189050] - tools: update gyp-next to 0.21.0 (Node.js GitHub Bot) #60645
  • [d2c8dd29cc] - tools,doc: fix format-md files list (Stefan Stojanovic) #61147
  • [0ca4fac44a] - typings: add typing for string_decoder (Taejin Kim) #61368
  • [2e387fb969] - url: update ada to v3.4.2 and support unicode 17 (Yagiz Nizipli) #61593
  • [d65326c4e6] - url: add fast path to getPathFromURL decoder (Gürgün Dayıoğlu) #60749
  • [77f72e0bfc] - url: remove array.reduce usage (Gürgün Dayıoğlu) #60748
  • [bfee9d0187] - util: optimize toASCIILower function using V8s native toLowerCase (Mert Can Altin) #61107
  • [6acc9d75ec] - util: limit inspect to only show own properties (Ruben Bridgewater) #61032
  • [bb6e680eb1] - util: fix parseArgs skipping positional arg with –eval and –print (azadgupta1) #60814
  • [b97081a7ba] - util: assert getCallSites does not invoke Error.prepareStackTrace (Chengzhong Wu) #60922
  • [722094ca3a] - util: safely inspect getter errors whose message throws (Yves M.) #60684
  • [746206b6ee] - v8: add GCProfiler support for erm (Ilyas Shabi) #61191
  • [bb206782d4] - v8: mark v8.queryObjects() as stable (Joyee Cheung) #60957
  • [e0ff861a8e] - worker: update code examples for node:worker_threads module (fisker Cheung) #58264
  • [06be1db72c] - worker: remove not implemented declarations (Artur Gawlik) #60655
  • [c9b0dc60ec] - zlib: validate write_result array length (Ryuhei Shima) #61342
  • [ba318c5d44] - zlib: add CHECK to validate fast path input (Matteo Collina) #61175

Update Feb 3, 2026 tracked by Updatify

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

Notable Changes

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

Commits

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

Update Jan 26, 2026 tracked by Updatify

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

Notable Changes

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

Commits

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

Update Jan 19, 2026 tracked by Updatify

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

Notable Changes

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

Commits

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

Update Jan 13, 2026 tracked by Updatify

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

This is a security release.

Notable Changes

lib:

Commits

Update Jan 13, 2026 tracked by Updatify

2026-01-13, Version 24.13.0 'Krypton' (LTS), @marco-ippolito

This is a security release.

Notable Changes

lib:

Commits

Update Jan 13, 2026 tracked by Updatify

2026-01-13, Version 22.22.0 'Jod' (LTS), @marco-ippolito

This is a security release.

Notable Changes

lib:

  • (CVE-2025-59465) add TLSSocket default error handler
  • (CVE-2025-55132) disable futimes when permission model is enabled lib,permission:
  • (CVE-2025-55130) require full read and write to symlink APIs src:
  • (CVE-2025-59466) rethrow stack overflow exceptions in async_hooks src,lib:
  • (CVE-2025-55131) refactor unsafe buffer creation to remove zero-fill toggle tls:
  • (CVE-2026-21637) route callback exceptions through error handlers

Commits

Update Jan 13, 2026 tracked by Updatify

2026-01-13, Version 20.20.0 'Iron' (LTS), @marco-ippolito

This is a security release.

Notable Changes

lib:

Commits

Update Dec 10, 2025 tracked by Updatify

2025-12-10, Version 24.12.0 'Krypton' (LTS), @targos

Notable Changes

  • [1a00b5f68a] - (SEMVER-MINOR) http: add optimizeEmptyRequests server option (Rafael Gonzaga) #59778
  • [ff5754077d] - (SEMVER-MINOR) lib: add options to util.deprecate (Rafael Gonzaga) #59982
  • [8987159234] - (SEMVER-MINOR) module: mark type stripping as stable (Marco Ippolito) #60600
  • [92c484ebf4] - (SEMVER-MINOR) node-api: add napi_create_object_with_properties (Miguel Marcondes Filho) #59953
  • [b11bc5984e] - (SEMVER-MINOR) sqlite: allow setting defensive flag (Bart Louwers) #60217
  • [e7da5b4b7d] - (SEMVER-MINOR) src: add watch config namespace (Marco Ippolito) #60178
  • [a7f7d10c06] - (SEMVER-MINOR) src: add an option to make compile cache portable (Aditi) #58797
  • [92ea669240] - (SEMVER-MINOR) src,permission: add –allow-inspector ability (Rafael Gonzaga) #59711
  • [05d7509bd2] - (SEMVER-MINOR) v8: add cpu profile (theanarkh) #59807

Commits

  • [e4a23a35ac] - benchmark: focus on import.meta intialization in import-meta benchmark (Joyee Cheung) #60603
  • [b6114ae5c9] - benchmark: add per-suite setup option (Joyee Cheung) #60574
  • [ac8e90af7c] - buffer: speed up concat via TypedArray#set (Gürgün Dayıoğlu) #60399
  • [acbc8ca13e] - build: upgrade Python linter ruff, add rules ASYNC,PERF (Christian Clauss) #59984
  • [f97a609a07] - console: optimize single-string logging (Gürgün Dayıoğlu) #60422
  • [6cd9bdc580] - crypto: ensure documented RSA-PSS saltLength default is used (Filip Skokan) #60662
  • [0fafe24d9b] - crypto: fix argument validation in crypto.timingSafeEqual fast path (Joyee Cheung) #60538
  • [54421e0419] - debugger: fix event listener leak in the run command (Joyee Cheung) #60464
  • [c361a628b4] - deps: V8: cherry-pick 72b0e27bd936 (pthier) #60732
  • [c70f4588dd] - deps: V8: cherry-pick 6bb32bd2c194 (Erik Corry) #60732
  • [881fe784c5] - deps: V8: cherry-pick 0dd2318b5237 (Erik Corry) #60732
  • [457c33efcc] - deps: V8: cherry-pick df20105ccf36 (Erik Corry) #60732
  • [0bf45a829c] - deps: V8: backport e5dbbbadcbff (Darshan Sen) #60524
  • [4993bdc476] - deps: V8: cherry-pick 5ba9200cd046 (Juan José Arboleda) #60620
  • [1e9abe0078] - deps: update corepack to 0.34.5 (Node.js GitHub Bot) #60842
  • [3f704ed08f] - deps: update corepack to 0.34.4 (Node.js GitHub Bot) #60643
  • [04e360fdb1] - deps: V8: cherry-pick 06bf293610ef, 146962dda8d2 and e0fb10b5148c (Michaël Zasso) #60713
  • [fcbd8dbbde] - deps: patch V8 to 13.6.233.17 (Michaël Zasso) #60712
  • [28e9433f39] - deps: V8: cherry-pick 87356585659b (Joyee Cheung) #60069
  • [3cac85b243] - deps: V8: backport 2e4c5cf9b112 (Michaël Zasso) #60654
  • [1daece1970] - deps: call OPENSSL_free after ANS1_STRING_to_UTF8 (Rafael Gonzaga) #60609
  • [5f55a9c9ea] - deps: nghttp2: revert 7784fa979d0b (Antoine du Hamel) #59790
  • [1d9e7c1f4d] - deps: update nghttp2 to 1.67.1 (nodejs-github-bot) #59790
  • [3140415068] - deps: update simdjson to 4.1.0 (Node.js GitHub Bot) #60542
  • [d911f9f1b8] - deps: update amaro to 1.1.5 (Node.js GitHub Bot) #60541
  • [daaaf04a32] - deps: V8: cherry-pick 2abc61361dd4 (Richard Lau) #60177
  • [b4f63ee5f8] - doc: update Collaborators list to reflect hybrist handle change (Antoine du Hamel) #60650
  • [effcf7a8ab] - doc: fix link in --env-file=file section (N. Bighetti) #60563
  • [7011736703] - doc: fix linter issues (Antoine du Hamel) #60636
  • [5cc79d8945] - doc: add missing history entry for sqlite.md (Antoine du Hamel) #60607
  • [bbc649057c] - doc: correct values/references for buffer.kMaxLength (René) #60305
  • [ea7ecb517b] - doc: recommend events.once to manage ‘close’ event (Dan Fabulich) #60017
  • [58bff04cc2] - doc: highlight module loading difference between import and require (Ajay A) #59815
  • [bbcbff9b4d] - doc: add CJS code snippets in sqlite.md (Allon Murienik) #60395
  • [f8af33d5a7] - doc: fix typo in process.unref documentation (우혁) #59698
  • [df105dc351] - doc: add some entries to glossary.md (Mohataseem Khan) #59277
  • [4955cb2b5b] - doc: improve agent.createConnection docs for http and https agents (JaeHo Jang) #58205
  • [6283bb5cc9] - doc: fix pseudo code in modules.md (chirsz) #57677
  • [d5059ea537] - doc: add missing variable in code snippet (Koushil Mankali) #55478
  • [900de373ae] - doc: add missing word in single-executable-applications.md (Konstantin Tsabolov) #53864
  • [5735044c8b] - doc: fix typo in http.md (Michael Solomon) #59354
  • [2dee6df831] - doc: update devcontainer.json and add documentation (Joyee Cheung) #60472
  • [8f2d98d7d2] - doc: add haramj as triager (Haram Jeong) #60348
  • [bbd7fdfff4] - doc: clarify require(esm) description (dynst) #60520
  • [33ad11a764] - doc: instantiate resolver object (Donghoon Nam) #60476
  • [81a61274f3] - doc: correct module loading descriptions (Joyee Cheung) #60346
  • [77911185fe] - doc: clarify –use-system-ca support status (Joyee Cheung) #60340
  • [185f6e95d9] - doc,crypto: link keygen to supported types (Filip Skokan) #60585
  • [772d6c6608] - doc,src,lib: clarify experimental status of Web Storage support (Antoine du Hamel) #60708
  • [ad98e11ac2] - esm: use sync loading/resolving on non-loader-hook thread (Joyee Cheung) #60380
  • [1a00b5f68a] - (SEMVER-MINOR) http: add optimizeEmptyRequests server option (Rafael Gonzaga) #59778
  • [5703ce68bc] - http: replace startsWith with strict equality (btea) #59394
  • [2b696ffad8] - http2: add diagnostics channels for client stream request body (Darshan Sen) #60480
  • [dbdf4cb5a5] - inspector: inspect HTTP response body (Chengzhong Wu) #60572
  • [9dc9a7d33d] - inspector: support inspecting HTTP/2 request and response bodies (Darshan Sen) #60483
  • [89fa2befe4] - inspector: fix crash when receiving non json message (Shima Ryuhei) #60388
  • [ff5754077d] - (SEMVER-MINOR) lib: add options to util.deprecate (Rafael Gonzaga) #59982
  • [33baaf42c8] - lib: replace global SharedArrayBuffer constructor with bound method (Renegade334) #60497
  • [b047586a08] - meta: bump actions/download-artifact from 5.0.0 to 6.0.0 (dependabot[bot]) #60532
  • [64192176d7] - meta: bump actions/upload-artifact from 4.6.2 to 5.0.0 (dependabot[bot]) #60531
  • [af6d4a6b9b] - meta: bump github/codeql-action from 3.30.5 to 4.31.2 (dependabot[bot]) #60533
  • [c17276fd24] - meta: bump actions/setup-node from 5.0.0 to 6.0.0 (dependabot[bot]) #60529
  • [6e8b52a7dc] - meta: bump actions/stale from 10.0.0 to 10.1.0 (dependabot[bot]) #60528
  • [a12658595b] - meta: call create-release-post.yml post release (Aviv Keller) #60366
  • [8987159234] - (SEMVER-MINOR) module: mark type stripping as stable (Marco Ippolito) #60600
  • [36da413663] - module: fix directory option in the enableCompileCache() API (Joyee Cheung) #59931
  • [92c484ebf4] - (SEMVER-MINOR) node-api: add napi_create_object_with_properties (Miguel Marcondes Filho) #59953
  • [545162b0d4] - node-api: use local files for instanceof test (Vladimir Morozov) #60190
  • [526c011d89] - perf_hooks: fix stack overflow error (Antoine du Hamel) #60084
  • [1de0476939] - perf_hooks: move non-standard performance properties to perf_hooks (Chengzhong Wu) #60370
  • [07ec1239ef] - repl: fix pasting after moving the cursor to the left (Ruben Bridgewater) #60470
  • [b11bc5984e] - (SEMVER-MINOR) sqlite: allow setting defensive flag (Bart Louwers) #60217
  • [273c9661fd] - sqlite,doc: fix StatementSync section (Edy Silva) #60474
  • [d92ec21a4c] - src: use CP_UTF8 for wide file names on win32 (Fedor Indutny) #60575
  • [baef0468ed] - src: move Node-API version detection to where it is used (Anna Henningsen) #60512
  • [e7da5b4b7d] - (SEMVER-MINOR) src: add watch config namespace (Marco Ippolito) #60178
  • [a7f7d10c06] - (SEMVER-MINOR) src: add an option to make compile cache portable (Aditi) #58797
  • [566add0b19] - src: avoid C strings in more C++ exception throws (Anna Henningsen) #60592
  • [9b796347c1] - src: add internal binding for constructing SharedArrayBuffers (Renegade334) #60497
  • [3b01cbb411] - src: move napi_addon_register_func to node_api_types.h (Anna Henningsen) #60512
  • [02fb7f4ecb] - src: remove unconditional NAPI_EXPERIMENTAL in node.h (Chengzhong Wu) #60345
  • [bd09ae24e4] - src: clean up generic counter implementation (Anna Henningsen) #60447
  • [cd6bf51dbd] - src: add enum handle for ToStringHelper + formatting (Burkov Egor) #56829
  • [92ea669240] - (SEMVER-MINOR) src,permission: add –allow-inspector ability (Rafael Gonzaga) #59711
  • [ac3dbe48f7] - stream: don’t try to read more if reading (Robert Nagy) #60454
  • [790288a93b] - test: ensure assertions are reachable in test/internet (Antoine du Hamel) #60513
  • [0a85132989] - test: fix status when compiled without inspector (Antoine du Hamel) #60289
  • [2f57673172] - test: deflake test-perf-hooks-timerify-histogram-sync (Joyee Cheung) #60639
  • [09726269de] - test: apply a delay to watch-mode-kill-signal tests (Joyee Cheung) #60610
  • [45537b9562] - test: async iife in repl (Tony Gorez) #44878
  • [4ca81f101d] - test: parallelize sea tests when there’s enough disk space (Joyee Cheung) #60604
  • [ea71e96191] - test: only show overridden env in child process failures (Joyee Cheung) #60556
  • [06b2e348c7] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60498
  • [de9c8cb670] - test: ensure assertions are reachable in test/es-module (Antoine du Hamel) #60501
  • [75bc40fced] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60485
  • [1a6084cfd3] - test: ensure assertions are reached on more tests (Antoine du Hamel) #60500
  • [2c651c90cf] - test: split test-perf-hooks-timerify (Joyee Cheung) #60568
  • [6e8b5f7345] - test: add more logs to test-esm-loader-hooks-inspect-wait (Joyee Cheung) #60466
  • [9dea7ffa30] - test: mark stringbytes-external-exceed-max tests as flaky on AIX (Joyee Cheung) #60565
  • [0b3c3b710a] - test: split test-esm-wasm.js (Joyee Cheung) #60491
  • [a15b795b34] - test: correct conditional secure heap flags test (Shelley Vohr) #60385
  • [38b77b3a44] - test: fix flaky test-watch-mode-kill-signal-* (Joyee Cheung) #60443
  • [e8d7598057] - test: capture stack trace in debugger timeout errors (Joyee Cheung) #60457
  • [674befeb81] - test: ensure assertions are reachable in test/sequential (Antoine du Hamel) #60412
  • [952c08a735] - test: ensure assertions are reachable in more folders (Antoine du Hamel) #60411
  • [bbca57584b] - test: split test-runner-watch-mode (Joyee Cheung) #60391
  • [e78e0cf6e7] - test: move test-runner-watch-mode helper into common (Joyee Cheung) #60391
  • [84576ef021] - test: ensure assertions are reachable in test/addons (Antoine du Hamel) #60142
  • [1659078c11] - test: ignore EPIPE errors in https proxy invalid URL test (Joyee Cheung) #60269
  • [79ffee80ec] - test: ensure assertions are reachable in test/client-proxy (Antoine du Hamel) #60175
  • [e5a812243a] - test: ensure assertions are reachable in test/async-hooks (Antoine du Hamel) #60150
  • [e924fd72e3] - test,crypto: handle a few more BoringSSL tests (Shelley Vohr) #59030
  • [a55ac11611] - test,crypto: update x448 and ed448 expectation when on boringssl (Shelley Vohr) #60387
  • [55d5e9ec73] - tls: fix leak on invalid protocol method (Shelley Vohr) #60427
  • [5763c96e7c] - tools: replace invalid expression in dependabot config (Riddhi) #60649
  • [b6e21b47d7] - tools: skip unaffected GHA jobs for changes in test/internet (Antoine du Hamel) #60517
  • [999664c76d] - tools: do not use short hashes for deps versioning to avoid collision (Antoine du Hamel) #60407
  • [ada856d0fb] - tools: only add test reporter args when node:test is used (Joyee Cheung) #60551
  • [1812c56bb3] - tools: fix update-icu script (Michaël Zasso) #60521
  • [747040438a] - tools: fix linter for semver-major release proposals (Antoine du Hamel) #60481
  • [f170551e40] - tools: fix failing release-proposal linter for LTS transitions (Antoine du Hamel) #60465
  • [2db4ea0ce4] - tools: remove undici from daily wpt.fyi job (Filip Skokan) #60444
  • [2a85aa4e7b] - tools: add lint rule to ensure assertions are reached (Antoine du Hamel) #60125
  • [48299ef5fb] - tools,doc: update JavaScript primitive types to match MDN Web Docs (JustApple) #60581
  • [7ec04cf936] - util: fix stylize of special properties in inspect (Ge Gao) #60479
  • [05d7509bd2] - (SEMVER-MINOR) v8: add cpu profile (theanarkh) #59807
  • [884fe884a1] - vm: hint module identifier in instantiate errors (Chengzhong Wu) #60199
  • [a2caf19f70] - watch: fix interaction with multiple env files (Marco Ippolito) #60605

Update Nov 25, 2025 tracked by Updatify

2025-11-25, Version 20.19.6 'Iron' (LTS), @marco-ippolito

Notable Changes

  • [6277910a15] - crypto: update root certificates to NSS 3.114 (Node.js GitHub Bot) #59571
  • [082e50d4a2] - doc: update the instruction on how to verify releases (Antoine du Hamel) #59113
  • [db68cec4cb] - doc: deprecate HTTP/2 priority signaling (Matteo Collina) #58313

Commits

  • [0f644df42e] - build: fix ‘implicit-function-declaration’ on OpenHarmony platform (hqzing) #59547
  • [fba0025b9c] - build: use windows-2025 runner (Michaël Zasso) #59673
  • [3456ec946d] - crypto: update root certificates to NSS 3.116 (Node.js GitHub Bot) #59956
  • [6277910a15] - crypto: update root certificates to NSS 3.114 (Node.js GitHub Bot) #59571
  • [1788fb5f3d] - deps: update undici to 6.22.0 (Matteo Collina) #60112
  • [5d61b55f24] - deps: update uvwasi to 0.0.23 (Node.js GitHub Bot) #59791
  • [9f1e5e4637] - deps: update histogram to 0.11.9 (Node.js GitHub Bot) #59689
  • [d0edb01d25] - deps: update googletest to eb2d85e (Node.js GitHub Bot) #59335
  • [576242ff39] - deps: V8: cherry-pick a0d0d4fc4f19 (Ho Cheung) #60716
  • [a07a277020] - deps: update corepack to 0.34.1 (Node.js GitHub Bot) #60314
  • [fa5c5af8ce] - deps: update archs files for openssl-3.0.17 (Node.js GitHub Bot) #59134
  • [556113e2fc] - deps: upgrade openssl sources to openssl-3.0.17 (Node.js GitHub Bot) #59134
  • [cd1536ca90] - deps: update corepack to 0.34.0 (Node.js GitHub Bot) #59133
  • [acec79989e] - deps: V8: cherry-pick 6b1b9bca2a8 (zhoumingtao) #59283
  • [e65b930aa7] - deps: V8: backport 2e4c5cf9b112 (Michaël Zasso) #60654
  • [1b75a601f7] - doc: fix typo on child_process.md (Angelo Gazzola) #60114
  • [a2bcb217c6] - doc: fix typo in section on microtask order (Tobias Nießen) #59932
  • [2426d3f3ff] - doc: add security escalation policy (Ulises Gascón) #59806
  • [e7f6f04758] - doc: add Miles Guicent as triager (Miles Guicent) #59562
  • [e51ef3f48b] - doc: update install_tools.bat free disk space (Stefan Stojanovic) #59579
  • [8a504d900a] - doc: fix missing link to the Error documentation in the http page (Alexander Makarenko) #59080
  • [8c5c8aa71d] - doc: clarify experimental platform vulnerability policy (Matteo Collina) #59591
  • [109c4bff77] - doc: add security incident reponse plan (Rafael Gonzaga) #59470
  • [4f004efdf3] - doc: add RafaelGSS as performance strategic lead (Rafael Gonzaga) #59445
  • [caa2db4bac] - doc: fix links in test.md (Vas Sudanagunta) #58876
  • [082e50d4a2] - doc: update the instruction on how to verify releases (Antoine du Hamel) #59113
  • [19a66365d9] - doc: clarify DEP0194 scope (Antoine du Hamel) #58504
  • [db68cec4cb] - doc: deprecate HTTP/2 priority signaling (Matteo Collina) #58313
  • [3b2368774f] - doc: make Stability labels not sticky in Stability index (Livia Medeiros) #58291
  • [960d05ad7d] - doc: add history entries to --input-type section (Antoine du Hamel) #58175
  • [20616f1750] - http2: do not crash on mismatched ping buffer length (René) #60135
  • [9eb94232c8] - lib: handle superscript variants on windows device (Rafael Gonzaga) #59261
  • [dc58b4e35f] - meta: move Michael to emeritus (Michael Dawson) #60070
  • [d943cfb260] - meta: bump actions/setup-node from 4.4.0 to 5.0.0 (dependabot[bot]) #60093
  • [de9a3aaf0f] - meta: bump step-security/harden-runner from 2.12.2 to 2.13.1 (dependabot[bot]) #60094
  • [b4b5d4a4d7] - meta: bump ossf/scorecard-action from 2.4.2 to 2.4.3 (dependabot[bot]) #60096
  • [e5b4eee901] - meta: bump actions/setup-python from 5.6.0 to 6.0.0 (dependabot[bot]) #60090
  • [7cb032c2c1] - meta: update devcontainer to the latest schema (Aviv Keller) #54347
  • [bb108191aa] - meta: call create-release-post.yml post release (Aviv Keller) #60366
  • [2a11d50526] - module: correctly detect top-level await in ambiguous contexts (Shima Ryuhei) #58646
  • [144233b71a] - process: fix wrong asyncContext under unhandled-rejections=strict (Shima Ryuhei) #60103
  • [409cb773a4] - repl: fix cpu overhead pasting big strings to the REPL (Ruben Bridgewater) #59857
  • [d1c9d80cac] - repl: add isValidParentheses check before wrap input (Xuguang Mei) #59607
  • [b8d145db2c] - src: fix order of CHECK_NOT_NULL/dereference (Tobias Nießen) #59487
  • [2c8a73f95f] - src: remove duplicate assignment of O_EXCL in node_constants.cc (Daniel Osvaldo R) #59049
  • [b1da374503] - test: fix typo of test-benchmark-readline.js (Deokjin Kim) #59993
  • [4b4e38f497] - test: mark sea tests flaky on macOS x64 (Richard Lau) #60068
  • [cbf4fc34c3] - test: skip more sea tests on Linux ppc64le (Richard Lau) #59755
  • [9543facad7] - test: mark test-inspector-network-fetch as flaky again (Joyee Cheung) #59640
  • [4f858d22ac] - test: skip test-fs-cp* tests that are constantly failing on Windows (Joyee Cheung) #59637
  • [3ec534dbe8] - test: skip sea tests on Linux ppc64le (Richard Lau) #59563
  • [a7a109f926] - test: fix typos (Lee Jiho) #59330
  • [fd9d43da46] - test: skip failing test on macOS 15.7+ (Antoine du Hamel) #60419
  • [bc3ffbd713] - test_runner: fix isSkipped check in junit (Sungwon) #59414
  • [0cace96472] - test_runner: correct “already mocked” error punctuation placement (Jacob Smith) #58840
  • [76001f9480] - tools: remove unused actions from build-tarball.yml (Antoine du Hamel) #59787
  • [69904844bb] - tools: do not attempt to compress tgz archive (Antoine du Hamel) #59785
  • [a6e7adb173] - tools: fix return value of try_check_compiler (theanarkh) #59434
  • [6443ad2da5] - tools: drop deprecated macos-13 runner (Richard Lau) #60679
  • [45ec702ef7] - tools: fix tools/make-v8.sh for clang (Richard Lau) #59893
  • [393ff7226e] - util: fix numericSeparator with negative fractional numbers (sangwook) #59379
  • [9e8beff0f4] - util: fix error’s namespaced node_modules highlighting using inspect (Ruben Bridgewater) #59446

Update Nov 17, 2025 tracked by Updatify

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

This release reverts the spec-compliant behavior of sometimes throwing on localStorage access. We received feedback that this change on an experimental API was too breaking for a semver-minor release, so we decided to push it back for Node.js 26.0.0.

Commits

  • [ff89b7b6c7] - crypto: ensure documented RSA-PSS saltLength default is used (Filip Skokan) #60662
  • [5316b580eb] - deps: V8: backport 2e4c5cf9b112 (Michaël Zasso) #60654
  • [ca878bc90e] - doc,src,lib: clarify experimental status of Web Storage support (Antoine du Hamel) #60708
  • [a4dee613fd] - Revertlib: throw from localStorage getter on missing storage path” (Antoine du Hamel) #60750

Update Nov 11, 2025 tracked by Updatify

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

Notable Changes

  • [a37c01e6a1] - (SEMVER-MINOR) lib: add options to util.deprecate (Rafael Gonzaga) #59982
  • [4fbb1ab101] - lib: throw from localStorage getter on missing storage path (René) #60351
  • [727560a96d] - (SEMVER-MINOR) module: mark type stripping as stable (Marco Ippolito) #60600
  • [506b79e888] - (SEMVER-MINOR) net: increase network family autoselection timeout to 500ms (Rod Vagg) #60334
  • [166c72ec02] - (SEMVER-MINOR) node-api: add napi_create_object_with_properties (Miguel Marcondes Filho) #59953
  • [399b340022] - (SEMVER-MINOR) v8: adding total_allocated_bytes to HeapStatistics (Caio Lima) #60573

Commits

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

Update Nov 11, 2025 tracked by Updatify

2025-11-11, Version 24.11.1 'Krypton' (LTS), @aduh95

Notable Changes

The known issue relating to Buffer.allocUnsafe incorrectly zero-filling buffers has now been addressed and now returns uninitialized memory as documented in the Buffer.allocUnsafe documentation.

Commits

  • [0a15ccf3f4] - benchmark: improve cpu.sh for safety and usability (Nam Yooseong) #60162
  • [a1c7d1dac9] - benchmark: add benchmark for leaf source text modules (Joyee Cheung) #60205
  • [99e2acf46b] - benchmark: add vm.SourceTextModule benchmark (Joyee Cheung) #59396
  • [c01c72b407] - benchmark: use non-deprecated WriteUtf8V2 method (Michaël Zasso) #60173
  • [a42dbd138e] - build: ibmi follow aix visibility (SRAVANI GUNDEPALLI) #60360
  • [5673a54a5d] - build: use call command when calling python configure (Jacob Nichols) #60098
  • [c67cb727cb] - build: build v8 with -fvisibility=hidden -fvisibility-inlines-hidden (Joyee Cheung) #56290
  • [b03f7b93b1] - build: remove V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE defs (Joyee Cheung) #60296
  • [2505568531] - build, src: fix include paths for vtune files (Rahul) #59999
  • [95330b036f] - crypto: update root certificates to NSS 3.116 (Node.js GitHub Bot) #59956
  • [c221d892ef] - deps: update corepack to 0.34.2 (Node.js GitHub Bot) #60550
  • [bc00aa4c77] - deps: update simdjson to 4.0.7 (Node.js GitHub Bot) #59883
  • [d03b89ec53] - deps: update corepack to 0.34.1 (Node.js GitHub Bot) #60314
  • [b7882090de] - deps: update inspector_protocol to af7f5a8173fdbc29f0835ec94395932e328b (Node.js GitHub Bot) #60312
  • [7007f9dd65] - deps: update googletest to 279f847 (Node.js GitHub Bot) #60219
  • [a56aa9ffa8] - deps: upgrade npm to 11.6.2 (npm team) #60168
  • [0bf8952721] - doc: mention more codemods in deprecations.md (Augustin Mauroy) #60243
  • [2473ca77f6] - doc: add missing CAA type to dns.resolveAny() & dnsPromises.resolveAny() (Jimmy Leung) #58899
  • [39ddd8522e] - doc: use any for worker_threads.Worker ‘error’ event argument err (Jonas Geiler) #60300
  • [eaa825fd97] - doc: update decorator documentation to reflect actual policy (Muhammad Salman Aziz) #60288
  • [a744e42282] - doc: document wildcard supported by tools/test.py (Joyee Cheung) #60265
  • [ec0d5beb09] - doc: add –heap-snapshot-on-oom to useful v8 flag (jakecastelli) #60260
  • [13da0df12a] - doc: fix blob.bytes() heading level (XTY) #60252
  • [8e771632b7] - doc: fix not working code example in vm docs (Artur Gawlik) #60224
  • [70c2080bff] - doc: improve code snippet alternative of url.parse() using WHATWG URL (Steven) #60209
  • [beadcf176e] - doc: createSQLTagStore -> createTagStore (Aviv Keller) #60182
  • [b0da3b9c6a] - doc: use markdown when branch-diff major release (Rafael Gonzaga) #60179
  • [688115aa6b] - doc: update teams in collaborator-guide.md and add links (Bart Louwers) #60065
  • [923082a064] - doc: disambiguate top-level worker_threads module exports (René) #59890
  • [7be4330870] - doc: add known issue to v24.11.0 release notes (Richard Lau) #60467
  • [4d8f62aeaf] - doc, module: change async customization hooks to experimental (Gerhard Stöbich) #60302
  • [d86a118bbd] - http: lazy allocate cookies array (Robert Nagy) #59734
  • [8c256d4139] - http: fix http client leaky with double response (theanarkh) #60062
  • [265e9d59fa] - http2: rename variable to additionalPseudoHeaders (Tobias Nießen) #60208
  • [65bec037e2] - http2: do not crash on mismatched ping buffer length (René) #60135
  • [9b83ef53b7] - inspector: add network payload buffer size limits (Chengzhong Wu) #60236
  • [03ac05c458] - inspector: support handshake response for websocket inspection (Shima Ryuhei) #60225
  • [aa04f06190] - lib: fix typo in createBlobReaderStream (SeokHun) #60132
  • [5aea1a429e] - lib: fix constructor in _errnoException stack tree (SeokHun) #60156
  • [4f7745acc7] - lib: fix typo in QuicSessionStats (SeokHun) #60155
  • [f8725861ea] - lib: remove redundant destroyHook checks (Gürgün Dayıoğlu) #60120
  • [696c20bf3f] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #60325
  • [90434ff99a] - meta: loop userland-migrations in deprecations (Chengzhong Wu) #60299
  • [ffbc0ae60a] - module: refactor and clarify async loader hook customizations (Joyee Cheung) #60278
  • [6ed6062f7d] - module: handle null source from async loader hooks in sync hooks (Joyee Cheung) #59929
  • [a2871baed2] - msi: fix WiX warnings (Stefan Stojanovic) #60251
  • [6199541d67] - src: fix timing of snapshot serialize callback (Joyee Cheung) #60434
  • [13b687959a] - src: add COUNT_GENERIC_USAGE utility for tests (Joyee Cheung) #60434
  • [a587623b4f] - src: conditionally disable source phase imports by default (Shelley Vohr) #60364
  • [e483267995] - src: use cached primordials_string (Sohyeon Kim) #60255
  • [4c9a64fbaf] - src: replace Environment::GetCurrent with args.GetIsolate (Sohyeon Kim) #60256
  • [eb8a0493d1] - src: initial enablement of IsolateGroups (James M Snell) #60254
  • [463c6450cf] - src: use Utf8Value and TwoByteValue instead of V8 helpers (Anna Henningsen) #60244
  • [b370e02789] - src: add a default branch for module phase (Chengzhong Wu) #60261
  • [4e1c5c5601] - src: make additional cleanups in node locks impl (James M Snell) #60061
  • [f00d4c10fc] - src: update locks to use DictionaryTemplate (James M Snell) #60061
  • [1c8716e97c] - test: increase debugger waitFor timeout on macOS (Chengzhong Wu) #60367
  • [17b4f38e9c] - test: put helper in test-runner-output into common (Joyee Cheung) #60330
  • [43b9ea8389] - test: fix small compile warning in test_network_requests_buffer.cc (xiaocainiao633) #60281
  • [38a62980ad] - test: split test-runner-watch-mode-kill-signal (Joyee Cheung) #60298
  • [34e4c8c84f] - test: fix incorrect calculation in test-perf-hooks.js (Joyee Cheung) #60271
  • [4481feb17b] - test: parallelize test-without-async-context-frame correctly (Joyee Cheung) #60273
  • [91ea9b06e0] - test: skip sea tests on x64 macOS (Joyee Cheung) #60250
  • [cedba09e60] - test: move sea tests into test/sea (Joyee Cheung) #60250
  • [635af55e12] - Reverttest: ensure message event fires in worker message port test” (Luigi Pinca) #60126
  • [68f678028e] - test: skip tests that cause timeouts on IBM i (SRAVANI GUNDEPALLI) #60148
  • [cc3a70598c] - test: deflake test-fs-promises-watch-iterator (Luigi Pinca) #60060
  • [3d784dd766] - test: prepare junit file attribute normalization (sangwook) #59432
  • [84974d97ad] - test: skip failing test on macOS 15.7+ (Antoine du Hamel) #60419
  • [fabf8e4975] - test,crypto: fix conditional SHA3-* skip on BoringSSL (Filip Skokan) #60379
  • [8faa494bf2] - test,crypto: sha3 algorithms aren’t supported with BoringSSL (Shelley Vohr) #60374
  • [538a00c0f6] - test,doc: skip –max-old-space-size-percentage on 32-bit platforms (Asaf Federman) #60144
  • [9ac5dbb694] - test_runner: use module.registerHooks in module mocks (Joyee Cheung) #60326
  • [f6ff6e7166] - test_runner: fix suite timeout (Moshe Atlow) #59853
  • [455bfeb52d] - test_runner: add junit file attribute support (sangwook) #59432
  • [223c5e105d] - tools: update gyp-next to 0.20.5 (Node.js GitHub Bot) #60313
  • [2949408fc1] - tools: limit inspector protocol PR title length (Chengzhong Wu) #60324
  • [b36a898650] - tools: fix inspector_protocol updater (Chengzhong Wu) #60277
  • [d60f002b62] - tools: optimize wildcard execution in tools/test.py (Joyee Cheung) #60266
  • [9d4e422419] - tools: add inspector_protocol updater (Chengzhong Wu) #60245
  • [2f93a9894f] - tools: use cooldown property correctly (Rafael Gonzaga) #60134
  • [9468ade95d] - typings: add missing properties and method in Worker (Woohyun Sung) #60257
  • [f611ec0a9e] - typings: add missing properties in HTTPParser (Woohyun Sung) #60257
  • [301c1347a1] - typings: delete undefined property in ConfigBinding (Woohyun Sung) #60257
  • [80fdb3d39b] - typings: add buffer internalBinding typing (방진혁) #60163
  • [8cb3b77039] - util: use more defensive code when inspecting error objects (Antoine du Hamel) #60139
  • [748d4f6430] - util: mark special properties when inspecting them (Ruben Bridgewater) #60131
  • [6183a759d7] - vm: make vm.Module.evaluate() conditionally synchronous (Joyee Cheung) #60205
  • [4b8506628f] - win: upgrade Visual Studio workload from 2019 to 2022 (Jiawen Geng) #60318

Update Oct 28, 2025 tracked by Updatify

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

Notable Changes

  • [4395fe14b9] - (SEMVER-MINOR) http: add optimizeEmptyRequests server option (Rafael Gonzaga) #59778
  • [2e55c6ad04] - (SEMVER-MINOR) sqlite: allow setting defensive flag (Bart Louwers) #60217
  • [f437204491] - (SEMVER-MINOR) src: add watch config namespace (Marco Ippolito) #60178

Commits

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

Update Oct 28, 2025 tracked by Updatify

2025-10-28, Version 22.21.1 'Jod' (LTS), @aduh95

Commits

  • [af33e8e668] - benchmark: remove unused variable from util/priority-queue (Bruno Rodrigues) #59872
  • [6764ce8756] - benchmark: update count to n in permission startup (Bruno Rodrigues) #59872
  • [4e8d99f0dc] - benchmark: update num to n in dgram offset-length (Bruno Rodrigues) #59872
  • [af0a8ba7f8] - benchmark: adjust dgram offset-length len values (Bruno Rodrigues) #59708
  • [78efd1be4a] - benchmark: update num to n in dgram offset-length (Bruno Rodrigues) #59708
  • [df72dc96e9] - console,util: improve array inspection performance (Ruben Bridgewater) #60037
  • [ef67d09f50] - http: improve writeEarlyHints by avoiding for-of loop (Haram Jeong) #59958
  • [23468fd76b] - http2: fix allowHttp1+Upgrade, broken by shouldUpgradeCallback (Tim Perry) #59924
  • [56abc4ac76] - lib: optimize priority queue (Gürgün Dayıoğlu) #60039
  • [ea5cfd98c5] - lib: implement passive listener behavior per spec (BCD1me) #59995
  • [c2dd6eed2f] - process: fix wrong asyncContext under unhandled-rejections=strict (Shima Ryuhei) #60103
  • [81a3055710] - process: fix default env for process.execve (Richard Lau) #60029
  • [fe492c7ace] - process: fix hrtime fast call signatures (Renegade334) #59600
  • [76b4cab8fc] - src: bring permissions macros in line with general C/C++ standards (Anna Henningsen) #60053
  • [21970970c7] - src: remove AnalyzeTemporaryDtors option from .clang-tidy (iknoom) #60008
  • [609c063e81] - src: remove unused variables from report (Moonki Choi) #60047
  • [987841a773] - src: avoid unnecessary string allocations in SPrintF impl (Anna Henningsen) #60052
  • [6e386c0632] - src: make ToLower/ToUpper input args more flexible (Anna Henningsen) #60052
  • [c3be1226c7] - src: allow std::string_view arguments to SPrintF() and friends (Anna Henningsen) #60058
  • [764d35647d] - src: remove unnecessary std::string error messages (Anna Henningsen) #60057
  • [1289ef89ec] - src: remove unnecessary shadowed functions on Utf8Value & BufferValue (Anna Henningsen) #60056
  • [d1fb8a538d] - src: avoid unnecessary string -> char* -> string round trips (Anna Henningsen) #60055
  • [54b439fb5a] - src: fill options_args, options_env after vectors are finalized (iknoom) #59945
  • [c7c597e2ca] - src: use RAII for uv_process_options_t (iknoom) #59945
  • [b928ea9716] - test: ensure that the message event is fired (Luigi Pinca) #59952
  • [e4b95a5158] - test: replace diagnostics_channel stackframe in output snapshots (Chengzhong Wu) #60024
  • [4206406694] - test: mark test-web-locks skip on IBM i (SRAVANI GUNDEPALLI) #59996
  • [26394cd5bf] - test: expand tls-check-server-identity coverage (Diango Gavidia) #60002
  • [b58df47995] - test: fix typo of test-benchmark-readline.js (Deokjin Kim) #59993
  • [af3a59dba8] - test: verify tracing channel doesn’t swallow unhandledRejection (Gerhard Stöbich) #59974
  • [cee362242b] - timers: fix binding fast call signatures (Renegade334) #59600
  • [40fea57fdd] - tools: add message on auto-fixing js lint issues in gh workflow (Dario Piotrowicz) #59128
  • [aac90d351b] - tools: verify signatures when updating nghttp* (Antoine du Hamel) #60113
  • [9fae03c7d9] - tools: use dependabot cooldown and move tools/doc (Rafael Gonzaga) #59978
  • [81548abdf6] - wasi: fix WasiFunction fast call signature (Renegade334) #59600

Update Oct 28, 2025 tracked by Updatify

2025-10-28, Version 24.11.0 'Krypton' (LTS), @richardlau

Notable Changes

This release marks the transition of Node.js 24.x into Long Term Support (LTS) with the codename ‘Krypton’. It will continue to receive updates through to the end of April 2028.

Other than updating metadata, such as the process.release object, to reflect that the release is LTS, no further changes from Node.js 24.10.0 are included.

Known issue

An issue has been identified in the Node.js 24.x line with Buffer.allocUnsafe unintentionally returning zero-filled buffers. This API is documented to return uninitialized memory. The documented behavior will be restored in the next Node.js 24.x LTS release to bring it back in line with previous releases. For more information, see #60423.

Update Oct 20, 2025 tracked by Updatify

2025-10-20, Version 22.21.0 'Jod' (LTS), @aduh95

Notable Changes

  • [1486fedea1] - (SEMVER-MINOR) cli: add --use-env-proxy (Joyee Cheung) #59151
  • [bedaaa11fc] - (SEMVER-MINOR) http: support http proxy for fetch under NODE_USE_ENV_PROXY (Joyee Cheung) #57165
  • [af8b5fa29d] - (SEMVER-MINOR) http: add shouldUpgradeCallback to let servers control HTTP upgrades (Tim Perry) #59824
  • [42102594b1] - (SEMVER-MINOR) http,https: add built-in proxy support in http/https.request and Agent (Joyee Cheung) #58980
  • [686ac49b82] - (SEMVER-MINOR) src: add percentage support to --max-old-space-size (Asaf Federman) #59082

Commits

  • [a71dd592e3] - benchmark: calibrate config dgram multi-buffer (Bruno Rodrigues) #59696
  • [16c4b466f4] - benchmark: calibrate config cluster/echo.js (Nam Yooseong) #59836
  • [53cb9f3b6c] - build: add the missing macro definitions for OpenHarmony (hqzing) #59804
  • [ec5290fe01] - build: do not include custom ESLint rules testing in tarball (Antoine du Hamel) #59809
  • [1486fedea1] - (SEMVER-MINOR) cli: add –use-env-proxy (Joyee Cheung) #59151
  • [1f93913446] - crypto: use return await when returning Promises from async functions (Renegade334) #59841
  • [f488b2ff73] - crypto: use async functions for non-stub Promise-returning functions (Renegade334) #59841
  • [aed9fd5ac4] - crypto: avoid calls to promise.catch() (Renegade334) #59841
  • [37c2d186f0] - deps: update amaro to 1.1.4 (pmarchini) #60044
  • [28aea13419] - deps: update archs files for openssl-3.5.4 (Node.js GitHub Bot) #60101
  • [ddbc1aa0bb] - deps: upgrade openssl sources to openssl-3.5.4 (Node.js GitHub Bot) #60101
  • [badbba2da9] - deps: update googletest to 50b8600 (Node.js GitHub Bot) #59955
  • [48aaf98a08] - deps: update archs files for openssl-3.5.3 (Node.js GitHub Bot) #59901
  • [e02a562ea6] - deps: upgrade openssl sources to openssl-3.5.3 (Node.js GitHub Bot) #59901
  • [7e0e86cb92] - deps: upgrade npm to 10.9.4 (npm team) #60074
  • [91dda5facf] - deps: update undici to 6.22.0 (Matteo Collina) #60112
  • [3a3220a2f0] - dgram: restore buffer optimization in fixBufferList (Yoo) #59934
  • [09bdcce6b8] - diagnostics_channel: fix race condition with diagnostics_channel and GC (Ugaitz Urien) #59910
  • [b3eeb3bd13] - doc: provide alternative to url.parse() using WHATWG URL (Steven) #59736
  • [1ddaab1904] - doc: mention reverse proxy and include simple example (Steven) #59736
  • [3b3b71e99c] - doc: mark .env files support as stable (Santeri Hiltunen) #59925
  • [d37f67d1bd] - doc: remove optional title prefixes (Aviv Keller) #60087
  • [ca2dff63f9] - doc: fix typo on child_process.md (Angelo Gazzola) #60114
  • [3fca564a05] - doc: add automated migration info to deprecations (Augustin Mauroy) #60022
  • [4bc366fc16] - doc: use “WebAssembly” instead of “Web Assembly” (Tobias Nießen) #59954
  • [4808dbdd9a] - doc: fix typo in section on microtask order (Tobias Nießen) #59932
  • [d6e303d645] - doc: update V8 fast API guidance (René) #58999
  • [0a3a3f729e] - doc: add security escalation policy (Ulises Gascón) #59806
  • [8fd669c70d] - doc: type improvement of file http.md (yusheng chen) #58189
  • [9833dc6060] - doc: rephrase dynamic import() description (Nam Yooseong) #59224
  • [2870a73681] - doc,crypto: update subtle.generateKey and subtle.importKey (Filip Skokan) #59851
  • [85818db93c] - fs,win: do not add a second trailing slash in readdir (Gerhard Stöbich) #59847
  • [bedaaa11fc] - (SEMVER-MINOR) http: support http proxy for fetch under NODE_USE_ENV_PROXY (Joyee Cheung) #57165
  • [af8b5fa29d] - (SEMVER-MINOR) http: add shouldUpgradeCallback to let servers control HTTP upgrades (Tim Perry) #59824
  • [758271ae66] - http: optimize checkIsHttpToken for short strings (방진혁) #59832
  • [42102594b1] - (SEMVER-MINOR) http,https: add built-in proxy support in http/https.request and Agent (Joyee Cheung) #58980
  • [a33ed9bf96] - inspector: ensure adequate memory allocation for Binary::toBase64 (René) #59870
  • [34c686be2b] - lib: update inspect output format for subclasses (Miguel Marcondes Filho) #59687
  • [12e553529c] - lib: add source map support for assert messages (Chengzhong Wu) #59751
  • [d2a70571f8] - lib,src: refactor assert to load error source from memory (Chengzhong Wu) #59751
  • [20a9e86b5d] - meta: move Michael to emeritus (Michael Dawson) #60070
  • [c591cca15c] - meta: bump github/codeql-action from 3.30.0 to 3.30.5 (dependabot[bot]) #60089
  • [090ba141b1] - meta: bump codecov/codecov-action from 5.5.0 to 5.5.1 (dependabot[bot]) #60091
  • [a0ba6884a5] - meta: bump actions/stale from 9.1.0 to 10.0.0 (dependabot[bot]) #60092
  • [0feca0c541] - meta: bump actions/setup-node from 4.4.0 to 5.0.0 (dependabot[bot]) #60093
  • [7cd2b42d18] - meta: bump step-security/harden-runner from 2.12.2 to 2.13.1 (dependabot[bot]) #60094
  • [1f3b9d66ac] - meta: bump actions/cache from 4.2.4 to 4.3.0 (dependabot[bot]) #60095
  • [0fedbb3de7] - meta: bump ossf/scorecard-action from 2.4.2 to 2.4.3 (dependabot[bot]) #60096
  • [04590b8267] - meta: bump actions/setup-python from 5.6.0 to 6.0.0 (dependabot[bot]) #60090
  • [2bf0a9318f] - meta: add .npmrc with ignore-scripts=true (Joyee Cheung) #59914
  • [e10dc7b81c] - module: allow overriding linked requests for a ModuleWrap (Chengzhong Wu) #59527
  • [2237142369] - module: link module with a module request record (Chengzhong Wu) #58886
  • [6d24b88fbc] - node-api: added SharedArrayBuffer api (Mert Can Altin) #59071
  • [4cc84c96f4] - node-api: make napi_delete_reference use node_api_basic_env (Jeetu Suthar) #59684
  • [e790eb6b50] - repl: fix cpu overhead pasting big strings to the REPL (Ruben Bridgewater) #59857
  • [99ea08dc43] - repl: add isValidParentheses check before wrap input (Xuguang Mei) #59607
  • [e4a4f63019] - sqlite: fix crash session extension callbacks with workers (Bart Louwers) #59848
  • [42c5544b97] - src: assert memory calc for max-old-space-size-percentage (Asaf Federman) #59460
  • [686ac49b82] - (SEMVER-MINOR) src: add percentage support to –max-old-space-size (Asaf Federman) #59082
  • [84701ff668] - src: clear all linked module caches once instantiated (Chengzhong Wu) #59117
  • [8e182e561f] - src: remove unnecessary Environment::GetCurrent() calls (Moonki Choi) #59814
  • [c9cde35c4d] - src: simplify is_callable by making it a concept (Tobias Nießen) #58169
  • [892b425ee1] - src: rename private fields to follow naming convention (Moonki Choi) #59923
  • [36b68db7f5] - src: reduce the nearest parent package JSON cache size (Michael Smith) #59888
  • [26b40bad02] - src: replace FIXED_ONE_BYTE_STRING with Environment-cached strings (Moonki Choi) #59891
  • [34dcb7dc32] - src: create strings in FIXED_ONE_BYTE_STRING as internalized (Anna Henningsen) #59826
  • [4d748add05] - src: remove std::array overload of FIXED_ONE_BYTE_STRING (Anna Henningsen) #59826
  • [bb6fd7c2d1] - src: ensure v8::Eternal is empty before setting it (Anna Henningsen) #59825
  • [7a91282bf9] - src: use simdjson::pad (0hm☘️) #59391
  • [ba00875f01] - stream: use new AsyncResource instead of bind (Matteo Collina) #59867
  • [ebec3ef68b] - (SEMVER-MINOR) test: move http proxy tests to test/client-proxy (Joyee Cheung) #58980
  • [7067d79fb3] - test: mark sea tests flaky on macOS x64 (Richard Lau) #60068
  • [ca1942c9d5] - test: testcase demonstrating issue 59541 (Eric Rannaud) #59801
  • [660d57355e] - test,doc: skip –max-old-space-size-percentage on 32-bit platforms (Asaf Federman) #60144
  • [19a7b1ef26] - tls: load bundled and extra certificates off-thread (Joyee Cheung) #59856
  • [095e7a81fc] - tls: only do off-thread certificate loading on loading tls (Joyee Cheung) #59856
  • [c42c1204c7] - tools: fix tools/make-v8.sh for clang (Richard Lau) #59893
  • [b632a1d98d] - tools: skip test-internet workflow for draft PRs (Michaël Zasso) #59817
  • [6021c3ac76] - tools: copyedit build-tarball.yml (Antoine du Hamel) #59808
  • [ef005d0c9b] - typings: update ‘types’ binding (René) #59692
  • [28ef564ecd] - typings: remove unused imports (Nam Yooseong) #59880
  • [f88752ddb6] - url: replaced slice with at (Mikhail) #59181
  • [24c224960c] - url: add type checking to urlToHttpOptions() (simon-id) #59753
  • [f2fbcc576d] - util: fix debuglog.enabled not being present with callback logger (Ruben Bridgewater) #59858
  • [6277058e43] - vm: sync-ify SourceTextModule linkage (Chengzhong Wu) #59000
  • [5bf21a4309] - vm: explain how to share promises between contexts w/ afterEvaluate (Eric Rannaud) #59801
  • [312b33a083] - vm: “afterEvaluate”, evaluate() return a promise from the outer context (Eric Rannaud) #59801
  • [1eadab863c] - win,tools: add description to signature (Martin Costello) #59877
  • [816e1befb1] - zlib: reduce code duplication (jhofstee) #57810

Update Oct 15, 2025 tracked by Updatify

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

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

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

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

Notable Changes

  • [8bc7dfd16f] - build: test on Python 3.14 release candidate 3 (Christian Clauss) #59983
  • [663554abdf] - (SEMVER-MAJOR) lib: expose global ErrorEvent (Richie Bendall) #58920
  • [3312e4e946] - (SEMVER-MAJOR) src: unflag –experimental-webstorage by default (Daniel M Brasil) #57666
  • [462c74181d] - (SEMVER-MAJOR) src,permission: add –allow-net permission (Rafael Gonzaga) #58517

Deprecations and Removals

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

Semver-Major Commits

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

Semver-Minor Commits

  • [94422e8a40] - (SEMVER-MINOR) src: add an option to make compile cache portable (Aditi) #58797
  • [29738c7b42] - (SEMVER-MINOR) src,permission: add –allow-inspector ability (Rafael Gonzaga) #59711
  • [f9fcc746f3] - (SEMVER-MINOR) v8: add cpu profile (theanarkh) #59807
  • [4396cf2d45] - (SEMVER-MINOR) wasm: enable JSPI (Guy Bedford) #59941

Semver-Patch Commits

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

Update Oct 11, 2025 tracked by Updatify

2025-10-08, Version 24.10.0 (Current), @RafaelGSS

Notable Changes

  • [31bb476895] - (SEMVER-MINOR) console: allow per-stream inspectOptions option (Anna Henningsen) #60082
  • [3b92be2fb8] - (SEMVER-MINOR) lib: remove util.getCallSite (Rafael Gonzaga) #59980
  • [18c79d9e1c] - (SEMVER-MINOR) sqlite: create authorization api (Guilherme Araújo) #59928

Commits

  • [e8cff3d51e] - benchmark: remove unused variable from util/priority-queue (Bruno Rodrigues) #59872
  • [03294252ab] - benchmark: update count to n in permission startup (Bruno Rodrigues) #59872
  • [3c8a609d9b] - benchmark: update num to n in dgram offset-length (Bruno Rodrigues) #59872
  • [7b2032b13e] - benchmark: adjust dgram offset-length len values (Bruno Rodrigues) #59708
  • [552d887aee] - benchmark: update num to n in dgram offset-length (Bruno Rodrigues) #59708
  • [31bb476895] - (SEMVER-MINOR) console: allow per-stream inspectOptions option (Anna Henningsen) #60082
  • [0bf022d4c0] - console,util: improve array inspection performance (Ruben Bridgewater) #60037
  • [04d568e591] - deps: V8: cherry-pick f93055fbd5aa (Olivier Flückiger) #60105
  • [621058b3bf] - deps: update archs files for openssl-3.5.4 (Node.js GitHub Bot) #60101
  • [81b3009fe6] - deps: upgrade openssl sources to openssl-3.5.4 (Node.js GitHub Bot) #60101
  • [dc44c9f349] - deps: upgrade npm to 11.6.1 (npm team) #60012
  • [ec0f137198] - deps: update ada to 3.3.0 (Node.js GitHub Bot) #60045
  • [f490f91874] - deps: update amaro to 1.1.4 (pmarchini) #60044
  • [de7a7cd0d7] - deps: update ada to 3.2.9 (Node.js GitHub Bot) #59987
  • [a533e5b5db] - doc: add automated migration info to deprecations (Augustin Mauroy) #60022
  • [7fb8fe4875] - doc: fix typo on child_process.md (Angelo Gazzola) #60114
  • [24c1ef9846] - doc: remove optional title prefixes (Aviv Keller) #60087
  • [08b9eb8e19] - doc: mark .env files support as stable (Santeri Hiltunen) #59925
  • [66d90b8063] - doc: mention reverse proxy and include simple example (Steven) #59736
  • [14aa1119cb] - doc: provide alternative to url.parse() using WHATWG URL (Steven) #59736
  • [f9412324f6] - doc: fix typo of built-in module specifier in worker_threads (Deokjin Kim) #59992
  • [64e738a342] - doc,crypto: reorder ML-KEM in the asymmetric key types table (Filip Skokan) #60067
  • [1b25008b41] - http: improve writeEarlyHints by avoiding for-of loop (Haram Jeong) #59958
  • [35f9b6b28f] - inspector: improve batch diagnostic channel subscriptions (Chengzhong Wu) #60009
  • [3b92be2fb8] - (SEMVER-MINOR) lib: remove util.getCallSite (Rafael Gonzaga) #59980
  • [c495e1fe57] - lib: optimize priority queue (Gürgün Dayıoğlu) #60039
  • [6be31fb9f3] - lib: implement passive listener behavior per spec (BCD1me) #59995
  • [c5e4aa763b] - meta: bump actions/setup-python from 5.6.0 to 6.0.0 (dependabot[bot]) #60090
  • [50fa1f4a76] - meta: bump ossf/scorecard-action from 2.4.2 to 2.4.3 (dependabot[bot]) #60096
  • [def4ce976c] - meta: bump actions/cache from 4.2.4 to 4.3.0 (dependabot[bot]) #60095
  • [24b5abc0e9] - meta: bump step-security/harden-runner from 2.12.2 to 2.13.1 (dependabot[bot]) #60094
  • [8ccf2b0b34] - meta: bump actions/setup-node from 4.4.0 to 5.0.0 (dependabot[bot]) #60093
  • [78580147ef] - meta: bump actions/stale from 9.1.0 to 10.0.0 (dependabot[bot]) #60092
  • [705686b5c4] - meta: bump codecov/codecov-action from 5.5.0 to 5.5.1 (dependabot[bot]) #60091
  • [423a6bc744] - meta: bump github/codeql-action from 3.30.0 to 3.30.5 (dependabot[bot]) #60089
  • [9d9bd0fb4f] - meta: move Michael to emeritus (Michael Dawson) #60070
  • [dbeee55824] - module: use sync cjs when importing cts (Marco Ippolito) #60072
  • [a722f677ac] - perf_hooks: fix histogram fast call signatures (Renegade334) #59600
  • [b3295b8353] - process: fix wrong asyncContext under unhandled-rejections=strict (Shima Ryuhei) #60103
  • [cff4a7608a] - process: fix default env for process.execve (Richard Lau) #60029
  • [cd034e927f] - process: fix hrtime fast call signatures (Renegade334) #59600
  • [18c79d9e1c] - (SEMVER-MINOR) sqlite: create authorization api (Guilherme Araújo) #59928
  • [d949222043] - sqlite: replace ToLocalChecked and improve filter error handling (Edy Silva) #60028
  • [6417dc879e] - src: bring permissions macros in line with general C/C++ standards (Anna Henningsen) #60053
  • [e273c2020c] - src: update contextify to use DictionaryTemplate (James M Snell) #60059
  • [5f9ff60664] - src: remove AnalyzeTemporaryDtors option from .clang-tidy (iknoom) #60008
  • [9db54adccc] - src: update cares_wrap to use DictionaryTemplates (James M Snell) #60033
  • [fc0ceb7b82] - src: correct the error handling in StatementExecutionHelper (James M Snell) #60040
  • [3e8fdc1d8d] - src: remove unused variables from report (Moonki Choi) #60047
  • [d744324d8e] - src: avoid unnecessary string allocations in SPrintF impl (Anna Henningsen) #60052
  • [de65a5c719] - src: make ToLower/ToUpper input args more flexible (Anna Henningsen) #60052
  • [354026df5a] - src: allow std::string_view arguments to SPrintF() and friends (Anna Henningsen) #60058
  • [42f7d7cb20] - src: remove unnecessary std::string error messages (Anna Henningsen) #60057
  • [30c2c0fedd] - src: remove unnecessary shadowed functions on Utf8Value & BufferValue (Anna Henningsen) #60056
  • [eb99eec09b] - src: avoid unnecessary string -> char* -> string round trips (Anna Henningsen) #60055
  • [c1f1dbdce2] - src: remove useless dereferencing in THROW_... (Anna Henningsen) #60054
  • [ea0f5e575d] - src: fill options_args, options_env after vectors are finalized (iknoom) #59945
  • [415fff217a] - src: use RAII for uv_process_options_t (iknoom) #59945
  • [982b03ecbd] - test: mark test-runner-run-watch flaky on macOS (Richard Lau) #60115
  • [831a0d3d28] - test: ensure that the message event is fired (Luigi Pinca) #59952
  • [5538cfc1e8] - test: replace diagnostics_channel stackframe in output snapshots (Chengzhong Wu) #60024
  • [77ec400d90] - test: mark test-web-locks skip on IBM i (SRAVANI GUNDEPALLI) #59996
  • [1aaadb9e31] - test: ensure message event fires in worker message port test (Jarred Sumner) #59885
  • [1d5cc5e57a] - test: mark sea tests flaky on macOS x64 (Richard Lau) #60068
  • [c412b1855d] - test: expand tls-check-server-identity coverage (Diango Gavidia) #60002
  • [ad87975029] - test: fix typo of test-benchmark-readline.js (Deokjin Kim) #59993
  • [bad4b9b878] - test: add new startNewREPLSever testing utility (Dario Piotrowicz) #59964
  • [ef90b0f456] - test: verify tracing channel doesn’t swallow unhandledRejection (Gerhard Stöbich) #59974
  • [d7285459fe] - timers: fix binding fast call signatures (Renegade334) #59600
  • [6529ae9b0c] - tools: add message on auto-fixing js lint issues in gh workflow (Dario Piotrowicz) #59128
  • [1ca116a6ea] - tools: verify signatures when updating nghttp* (Antoine du Hamel) #60113
  • [20d10a2398] - tools: use dependabot cooldown and move tools/doc (Rafael Gonzaga) #59978
  • [275c07064c] - typings: update ‘types’ binding (René) #59692
  • [8c21c4b286] - wasi: fix WasiFunction fast call signature (Renegade334) #59600
  • [b865074641] - win,tools: add description to signature (Martin Costello) #59877

Update Sep 25, 2025 tracked by Updatify

2025-09-25, Version 24.9.0 (Current), @targos

Notable Changes

  • [9b043a9096] - (SEMVER-MINOR) http: add shouldUpgradeCallback to let servers control HTTP upgrades (Tim Perry) #59824
  • [a6456ab90a] - (SEMVER-MINOR) sqlite: cleanup ERM support and export Session class (James M Snell) #58378
  • [5563361d22] - (SEMVER-MINOR) sqlite: add tagged template (0hm☘️) #58748
  • [04013ee933] - (SEMVER-MINOR) worker: add heap profile API (theanarkh) #59846

Commits

  • [cbec4fd6de] - benchmark: calibrate config dgram multi-buffer (Bruno Rodrigues) #59696
  • [9a4bbdc3c5] - benchmark: calibrate config cluster/echo.js (Nam Yooseong) #59836
  • [0b284d86e8] - build: add the missing macro definitions for OpenHarmony (hqzing) #59804
  • [43e6e54d66] - build: do not include custom ESLint rules testing in tarball (Antoine du Hamel) #59809
  • [039ac19154] - crypto: expose signatureAlgorithm on X509Certificate (Patrick Costa) #59235
  • [647c332704] - crypto: use return await when returning Promises from async functions (Renegade334) #59841
  • [8ed4587cf0] - crypto: use async functions for non-stub Promise-returning functions (Renegade334) #59841
  • [bb051c56ef] - crypto: avoid calls to promise.catch() (Renegade334) #59841
  • [05e560dd25] - deps: update googletest to 50b8600 (Node.js GitHub Bot) #59955
  • [fa40d3a785] - deps: update archs files for openssl-3.5.3 (Node.js GitHub Bot) #59901
  • [8c85570d18] - deps: upgrade openssl sources to openssl-3.5.3 (Node.js GitHub Bot) #59901
  • [b71125664e] - deps: update undici to 7.16.0 (Node.js GitHub Bot) #59830
  • [dea5dd7077] - dgram: restore buffer optimization in fixBufferList (Yoo) #59934
  • [b0c1e67532] - diagnostics_channel: fix race condition with diagnostics_channel and GC (Ugaitz Urien) #59910
  • [0b37b594c3] - doc: use “WebAssembly” instead of “Web Assembly” (Tobias Nießen) #59954
  • [1e723f9c6b] - doc: fix typo in section on microtask order (Tobias Nießen) #59932
  • [a28962a85c] - doc: update V8 fast API guidance (René) #58999
  • [bd767c5d1b] - doc: add security escalation policy (Ulises Gascón) #59806
  • [9df91e59e1] - doc: type improvement of file http.md (yusheng chen) #58189
  • [e4f571680b] - doc: deprecate closing fs.Dir on garbage collection (Livia Medeiros) #59839
  • [e9cb986fa5] - doc: rephrase dynamic import() description (Nam Yooseong) #59224
  • [026d4e33f7] - doc,crypto: update subtle.generateKey and subtle.importKey (Filip Skokan) #59851
  • [2b2591db52] - esm: make hasAsyncGraph non-enumerable (Joyee Cheung) #59905
  • [993f05d323] - fs,win: do not add a second trailing slash in readdir (Gerhard Stöbich) #59847
  • [7aec53b607] - (SEMVER-MINOR) http: add shouldUpgradeCallback to let servers control HTTP upgrades (Tim Perry) #59824
  • [83ae6102e7] - http: optimize checkIsHttpToken for short strings (방진혁) #59832
  • [6695067636] - http,https: handle IPv6 with proxies (Joyee Cheung) #59894
  • [c5d910a0a9] - http2: fix allowHttp1+Upgrade, broken by shouldUpgradeCallback (Tim Perry) #59924
  • [acada1fb82] - inspector: ensure adequate memory allocation for Binary::toBase64 (René) #59870
  • [396cc8ec65] - lib: update inspect output format for subclasses (Miguel Marcondes Filho) #59687
  • [fed1dac8de] - lib: update isDeepStrictEqual to support options (Miguel Marcondes Filho) #59762
  • [d785929fd7] - lib: add source map support for assert messages (Chengzhong Wu) #59751
  • [ff13d1d61e] - lib,src: cache ModuleWrap.hasAsyncGraph (Chengzhong Wu) #59703
  • [b200cd8470] - lib,src: refactor assert to load error source from memory (Chengzhong Wu) #59751
  • [e94c57301b] - meta: add .npmrc with ignore-scripts=true (Joyee Cheung) #59914
  • [728472a57b] - module: only put directly require-d ESM into require.cache (Joyee Cheung) #59874
  • [be48760b93] - node-api: added SharedArrayBuffer api (Mert Can Altin) #59071
  • [f006a14522] - node-api: make napi_delete_reference use node_api_basic_env (Jeetu Suthar) #59684
  • [0f46c1c3b0] - repl: fix cpu overhead pasting big strings to the REPL (Ruben Bridgewater) #59857
  • [3eeb7b47ea] - sqlite: fix crash session extension callbacks with workers (Bart Louwers) #59848
  • [0fe53375ec] - (SEMVER-MINOR) sqlite: cleanup ERM support and export Session class (James M Snell) #58378
  • [9a3e58a007] - (SEMVER-MINOR) sqlite: add tagged template (0hm☘️) #58748
  • [f14ed5ab7b] - src: simplify watchdog instantiations via std::optional (Anna Henningsen) #59960
  • [e330f03f84] - src: update crypto objects to use DictionaryTemplate (James M Snell) #59942
  • [69b5607cf4] - src: simplify is_callable by making it a concept (Tobias Nießen) #58169
  • [86150f3401] - src: rename private fields to follow naming convention (Moonki Choi) #59923
  • [d17f299539] - src: use DictionaryTemplate more in URLPattern (James M Snell) #59892
  • [ac784912ac] - src: reduce the nearest parent package JSON cache size (Michael Smith) #59888
  • [abecdcb536] - src: replace FIXED_ONE_BYTE_STRING with Environment-cached strings (Moonki Choi) #59891
  • [2bb152500b] - src: create strings in FIXED_ONE_BYTE_STRING as internalized (Anna Henningsen) #59826
  • [03116a7cd8] - src: remove std::array overload of FIXED_ONE_BYTE_STRING (Anna Henningsen) #59826
  • [8a5325d6e3] - src: ensure v8::Eternal is empty before setting it (Anna Henningsen) #59825
  • [f0c20ccd81] - src: remove unnecessary Environment::GetCurrent() calls (Moonki Choi) #59814
  • [213188e491] - stream: use new AsyncResource instead of bind (Matteo Collina) #59867
  • [ce8435b003] - test: testcase demonstrating issue 59541 (Eric Rannaud) #59801
  • [8f32746142] - test: guard write to proxy client if proxy connection is ended (Joyee Cheung) #59742
  • [6790093fcb] - tls: load bundled and extra certificates off-thread (Joyee Cheung) #59856
  • [f5d3f919d8] - tls: only do off-thread certificate loading on loading tls (Joyee Cheung) #59856
  • [87bbaa23a0] - tools: fix tools/make-v8.sh for clang (Richard Lau) #59893
  • [0d23fd525b] - tools: skip test-internet workflow for draft PRs (Michaël Zasso) #59817
  • [e17c73731a] - tools: copyedit build-tarball.yml (Antoine du Hamel) #59808
  • [97c4e1bac9] - typings: remove unused imports (Nam Yooseong) #59880
  • [8b29bbca76] - url: replaced slice with at (Mikhail) #59181
  • [6458867a6b] - url: add type checking to urlToHttpOptions() (simon-id) #59753
  • [3c62b3886f] - util: inspect objects with throwing Symbol.toStringTag (Ruben Bridgewater) #59860
  • [6133a82875] - util: fix debuglog.enabled not being present with callback logger (Ruben Bridgewater) #59858
  • [9347ddddf4] - vm: explain how to share promises between contexts w/ afterEvaluate (Eric Rannaud) #59801
  • [44ce971619] - vm: “afterEvaluate”, evaluate() return a promise from the outer context (Eric Rannaud) #59801
  • [6e586a1409] - vm: expose hasTopLevelAwait on SourceTextModule (Chengzhong Wu) #59865
  • [49747a58a3] - (SEMVER-MINOR) worker: add heap profile API (theanarkh) #59846
  • [b970c0bbc2] - zlib: reduce code duplication (jhofstee) #57810
  • [9782ca2b1b] - zlib: implement fast path for crc32 (Gürgün Dayıoğlu) #59813

Update Sep 24, 2025 tracked by Updatify

2025-09-24, Version 22.20.0 'Jod' (LTS), @richardlau

Notable Changes

OpenSSL updated to 3.5.2

For official Node.js builds, or builds using the default build configuration, Node.js now bundles OpenSSL 3.5.2. This update allows Node.js 22.x to be supported through to the planned End-of-Life date of 2027-04-30 as the previously bundled OpenSSL 3.0.x goes out of support in September 2026.

This change does not affect third-party builds of Node.js that link to an external OpenSSL (or OpenSSL-compatible) library.

Other notable changes

  • [5b83e1e0a2] - crypto: update root certificates to NSS 3.114 (Node.js GitHub Bot) #59571
  • [34b25fd97b] - doc: stabilize –disable-sigusr1 (Rafael Gonzaga) #59707
  • [bf41218ed9] - doc: mark path.matchesGlob as stable (Aviv Keller) #59572
  • [1dbad2058f] - (SEMVER-MINOR) http: add Agent.agentKeepAliveTimeoutBuffer option (Haram Jeong) #59315
  • [062e837d5f] - (SEMVER-MINOR) http2: add support for raw header arrays in h2Stream.respond() (Tim Perry) #59455
  • [b8066611c3] - inspector: add http2 tracking support (Darshan Sen) #59611
  • [9b7dd40da8] - (SEMVER-MINOR) sea: implement execArgvExtension (Joyee Cheung) #59560
  • [48bfbd3dca] - (SEMVER-MINOR) sea: support execArgv in sea config (Joyee Cheung) #59314
  • [cf06e74076] - (SEMVER-MINOR) stream: add brotli support to CompressionStream and DecompressionStream (Matthew Aitken) #59464
  • [62bb80c17e] - (SEMVER-MINOR) test_runner: support object property mocking (Idan Goshen) #58438
  • [9e2aa23be9] - (SEMVER-MINOR) worker: add cpu profile APIs for worker (theanarkh) #59428

Commits

  • [b7b78fd565] - assert: cap input size in myersDiff to avoid Int32Array overflow (Haram Jeong) #59578
  • [9da50a6c53] - benchmark: sqlite prevent create both tables on prepare selects (Bruno Rodrigues) #59709
  • [4c1538770e] - benchmark: calibrate config array-vs-concat (Rafael Gonzaga) #59587
  • [fc3f82d683] - benchmark: calibrate config v8/serialize.js (Rafael Gonzaga) #59586
  • [e95c9b2950] - benchmark: reduce readfile-permission-enabled config (Rafael Gonzaga) #59589
  • [e4fea38b31] - benchmark: calibrate length of util.diff (Rafael Gonzaga) #59588
  • [c5d68c4a0f] - benchmark, test: replace CRLF variable with string literal (Lee Jiho) #59466
  • [129a1d673b] - build: fix getting OpenSSL version on Windows (Michaël Zasso) #59609
  • [9f53db7162] - build: fix ‘implicit-function-declaration’ on OpenHarmony platform (hqzing) #59547
  • [3839593e07] - build: use windows-2025 runner (Michaël Zasso) #59673
  • [e430464669] - build: compile bundled uvwasi conditionally (Carlo Cabrera) #59622
  • [e2c9cab0cd] - build: do not set -mminimal-toc with clang (Richard Lau) #59484
  • [208bc810a1] - child_process: remove unsafe array iteration (hotpineapple) #59347
  • [d74799d90c] - crypto: load system CA certificates off thread (Joyee Cheung) #59550
  • [5b83e1e0a2] - crypto: update root certificates to NSS 3.114 (Node.js GitHub Bot) #59571
  • [d289b1d1af] - deps: V8: cherry-pick e3df60f3f5ab (Chengzhong Wu) #58691
  • [cf5d91e2a6] - deps: update uvwasi to 0.0.23 (Node.js GitHub Bot) #59791
  • [1cf24a0445] - deps: update histogram to 0.11.9 (Node.js GitHub Bot) #59689
  • [8638bd3f2e] - deps: update googletest to eb2d85e (Node.js GitHub Bot) #59335
  • [3ff4eb5b37] - deps: update amaro to 1.1.2 (Node.js GitHub Bot) #59616
  • [4d268ac034] - deps: V8: cherry-pick 7b91e3e2cbaf (Milad Fa) #59485
  • [83410eb0e3] - deps: V8: cherry-pick 59d52e311bb1 (Milad Fa) #59485
  • [5780af02cb] - deps: update amaro to 1.1.1 (Node.js GitHub Bot) #59141
  • [2986eca821] - deps: V8: cherry-pick 6b1b9bca2a8 (zhoumingtao) #59283
  • [98e399b3ea] - deps: update archs files for openssl-3.5.2 (Node.js GitHub Bot) #59371
  • [2b983a7520] - deps: upgrade openssl sources to openssl-3.5.2 (Node.js GitHub Bot) #59371
  • [7ffbb42454] - deps: update archs files for openssl-3.5.1 (Node.js GitHub Bot) #59234
  • [bd48a60a75] - deps: upgrade openssl sources to openssl-3.5.1 (Node.js GitHub Bot) #59234
  • [24762a10ca] - deps: fix OpenSSL security level at 1 (Richard Lau) #59859
  • [1233e92d10] - diagnostics_channel: revoke DEP0163 (René) #59758
  • [34b25fd97b] - doc: stabilize –disable-sigusr1 (Rafael Gonzaga) #59707
  • [d7adf8be64] - doc: update “Type stripping in dependencies” section (Josh Kelley) #59652
  • [a1d7e4fdbf] - doc: add Miles Guicent as triager (Miles Guicent) #59562
  • [bf41218ed9] - doc: mark path.matchesGlob as stable (Aviv Keller) #59572
  • [afaa1ccb74] - doc: improve documentation for raw headers in HTTP/2 APIs (Tim Perry) #59633
  • [b95ff56102] - doc: update install_tools.bat free disk space (Stefan Stojanovic) #59579
  • [6ff939b8d3] - doc: fix filehandle.read typo (Ruy Adorno) #59635
  • [963bfa9d6f] - doc: fix missing link to the Error documentation in the http page (Alexander Makarenko) #59080
  • [0e10a8ea27] - doc: improve sqlite.backup() progress/fulfillment documentation (René) #59598
  • [18ceefbabd] - doc: clarify experimental platform vulnerability policy (Matteo Collina) #59591
  • [66cdd00368] - doc: link to TypedArray.from() in signature (Aviv Keller) #59226
  • [9f058ce7c0] - doc: fix typos in environment_variables.md (PhistucK) #59536
  • [3cfec820e9] - doc: add security incident reponse plan (Rafael Gonzaga) #59470
  • [46aa3434e6] - doc: clarify maxRSS unit in process.resourceUsage() (Alex Yang) #59511
  • [adf98f600a] - doc: add missing Zstd strategy constants (RANDRIAMANANTENA Narindra Tiana Annaick) #59312
  • [f335989942] - doc: fix the version tls.DEFAULT_CIPHERS was added (Allon Murienik) #59247
  • [7fa14fcf54] - doc: clarify glob’s exclude option behavior (hotpineapple) #59245
  • [85b8d255c9] - doc: add RafaelGSS as performance strategic lead (Rafael Gonzaga) #59445
  • [16b1f7a602] - doc: add new environment variables doc page (Dario Piotrowicz) #59052
  • [b4a43ed83a] - doc: add missing environment variables to manpage (amir lavasani) #58963
  • [c923cfe898] - doc: fix links in test.md (Vas Sudanagunta) #58876
  • [a93a8b5eda] - doc: mark type stripping as release candidate (Marco Ippolito) #57705
  • [d302cb3bb2] - esm: add experimental support for addon modules (Chengzhong Wu) #55844
  • [d55c3e7f0b] - esm: link modules synchronously when no async loader hooks are used (Joyee Cheung) #59519
  • [9e1fbb620f] - esm: show race error message for inner module job race (Joyee Cheung) #59519
  • [8c4dcd5199] - esm: sync-ify module translation (Joyee Cheung) #59453
  • [71038932d3] - fs: fix wrong order of file names in cpSync error message (Nicholas Paun) #59775
  • [5692dec451] - fs: fix dereference: false on cpSync (Nicholas Paun) #59681
  • [dafd561d37] - fs: fix return value of fs APIs (theanarkh) #58996
  • [da6e8cb75b] - http: unbreak keepAliveTimeoutBuffer (Robert Nagy) #59784
  • [673a48f0a2] - http: use cached ‘1.1’ http version string (Robert Nagy) #59717
  • [1dbad2058f] - (SEMVER-MINOR) http: add Agent.agentKeepAliveTimeoutBuffer option (Haram Jeong) #59315
  • [062e837d5f] - (SEMVER-MINOR) http2: add support for raw header arrays in h2Stream.respond() (Tim Perry) #59455
  • [4d4fb51b89] - http2: report sent headers object in client stream dcs (Darshan Sen) #59419
  • [b8066611c3] - inspector: add http2 tracking support (Darshan Sen) #59611
  • [9b2c013032] - inspector: prevent propagation of promise hooks to noPromise hooks (Shima Ryuhei) #58841
  • [a2329895e7] - lib: fix DOMException subclass support (Chengzhong Wu) #59680
  • [edb9248bdd] - lib: make domexception a native error (Chengzhong Wu) #58691
  • [ccf29cda19] - Revertlib: optimize writable stream buffer clearing” (Yoo) #59743
  • [f291eda277] - lib: fix isReadable and isWritable return type value (Gabriel Quaresma) #59089
  • [10ae8684ea] - lib: revert to using default derived class constructors (René) #59650
  • [5d3b80d62d] - lib: do not modify prototype deprecated asyncResource (encore) (Szymon Łągiewka) #59518
  • [3c4541f878] - lib: simplify IPv6 checks in isLoopback() (Krishnadas) #59375
  • [0b631bbffa] - lib: handle windows reserved device names on UNC (Rafael Gonzaga) #59286
  • [297f62ba1f] - meta: bump codecov/codecov-action (dependabot[bot]) #59726
  • [3dcd8446b6] - meta: bump actions/download-artifact from 4.3.0 to 5.0.0 (dependabot[bot]) #59729
  • [d0d357f683] - meta: bump github/codeql-action from 3.29.2 to 3.30.0 (dependabot[bot]) #59728
  • [2a0e264949] - meta: bump actions/cache from 4.2.3 to 4.2.4 (dependabot[bot]) #59727
  • [0a013d1da1] - meta: bump actions/checkout from 4.2.2 to 5.0.0 (dependabot[bot]) #59725
  • [c690b53d24] - meta: update devcontainer to the latest schema (Aviv Keller) #54347
  • [61171c7756] - module: correctly detect top-level await in ambiguous contexts (Shima Ryuhei) #58646
  • [75bf3f4a87] - node-api: link to other programming language bindings (Chengzhong Wu) #59516
  • [9a05107558] - node-api: clarify enum value ABI stability (Chengzhong Wu) #59085
  • [658c31d60c] - path: refactor path joining logic for clarity and performance (Lee Jiho) #59781
  • [9cc89f55f7] - path,win: fix bug in resolve and normalize (Hüseyin Açacak) #55623
  • [24e825f8f5] - sea: implement sea.getAssetKeys() (Joyee Cheung) #59661
  • [c66af21e55] - sea: allow using inspector command line flags with SEA (Joyee Cheung) #59568
  • [9b7dd40da8] - (SEMVER-MINOR) sea: implement execArgvExtension (Joyee Cheung) #59560
  • [48bfbd3dca] - (SEMVER-MINOR) sea: support execArgv in sea config (Joyee Cheung) #59314
  • [5559456fe4] - sqlite: add sqlite-type symbol for DatabaseSync (Alex Yang) #59405
  • [3478130da3] - sqlite: handle ?NNN parameters as positional (Edy Silva) #59350
  • [312bc4e5d1] - sqlite: avoid useless call to FromMaybe() (Tobias Nießen) #59490
  • [937e9bb1c6] - src: track BaseObjects with an efficient list (Chengzhong Wu) #55104
  • [be2a5e170d] - src: track async resources via pointers to stack-allocated handles (Anna Henningsen) #59704
  • [f232bf2c11] - src: fix build on NetBSD (Thomas Klausner) #59718
  • [e9a685bc3d] - src: fix race on process exit and off thread CA loading (Chengzhong Wu) #59632
  • [24428fc8fb] - src: add name for more threads (theanarkh) #59601
  • [fd7559f8c3] - src: remove JSONParser (Joyee Cheung) #59619
  • [8c296bac99] - src: enforce assumptions in FIXED_ONE_BYTE_STRING (Tobias Nießen) #58155
  • [1b4885a3f2] - src: use simdjson to parse –snapshot-config (Joyee Cheung) #59473
  • [9f798de6b0] - src: fix order of CHECK_NOT_NULL/dereference (Tobias Nießen) #59487
  • [f764be27dc] - src: move shared_ptr objects in KeyObjectData (Tobias Nießen) #59472
  • [d30287fe12] - src: iterate metadata version entries with std::array (Chengzhong Wu) #57866
  • [b2bf620c7b] - src: internalize v8::ConvertableToTraceFormat in traces (Chengzhong Wu) #57866
  • [b3c507c8ef] - src: remove duplicate assignment of O_EXCL in node_constants.cc (Daniel Osvaldo R) #59049
  • [20aec239d4] - src: add Intel CET properties to large_pages.S (tjuhaszrh) #59363
  • [8e0f9cd061] - src: remove unused DSAKeyExportJob (Filip Skokan) #59291
  • [0c2b6df94f] - src,sqlite: refactor value conversion (Edy Silva) #59659
  • [b95cfdf0e5] - stream: replace manual function validation with validateFunction (방진혁) #59529
  • [cf06e74076] - (SEMVER-MINOR) stream: add brotli support to CompressionStream and DecompressionStream (Matthew Aitken) #59464
  • [903ebd373a] - test: skip more sea tests on Linux ppc64le (Richard Lau) #59755
  • [e961060bb6] - test: fix internet/test-dns (Michaël Zasso) #59660
  • [c2b22f50a8] - test: mark test-inspector-network-fetch as flaky again (Joyee Cheung) #59640
  • [4ae958e59b] - test: skip test-fs-cp* tests that are constantly failing on Windows (Joyee Cheung) #59637
  • [d5b0a64598] - test: deflake test-http-keep-alive-empty-line (Luigi Pinca) #59595
  • [eb311f1754] - test: use mustSucceed in test-repl-tab-complete-import (Sohyeon Kim) #59368
  • [8e047e32be] - test: skip sea tests on Linux ppc64le (Richard Lau) #59563
  • [4a250479d8] - test: rename test-net-server-drop-connections-in-cluster.js to -http- (Meghan Denny) #59532
  • [d22f113aaf] - test: lazy-load internalTTy (Pietro Marchini) #59517
  • [36dd856897] - test: fix test-setproctitle status when ps is not available (Antoine du Hamel) #59523
  • [fd02295da6] - test: update WPT for WebCryptoAPI to ff26d9b307 (Node.js GitHub Bot) #59497
  • [cce938c5f9] - test: make test-debug-process locale-independent (BCD1me) #59254
  • [5a8f03df9e] - test: mark test-wasi-pthread as flaky (Joyee Cheung) #59488
  • [94f6d6b969] - test: split test-wasi.js (Joyee Cheung) #59488
  • [162ac9393c] - test: use case-insensitive path checking on Windows in fs.cpSync tests (Joyee Cheung) #59475
  • [ce9d6776c9] - test: add missing hasPostData in test-inspector-emit-protocol-event (Shima Ryuhei) #59412
  • [717ea2866d] - test: refactor error checks to use assert.ifError/mustSucceed (Sohyeon Kim) #59424
  • [b1c3e4a17c] - test: fix typos (Lee Jiho) #59330
  • [3f4bd94b1f] - test: skip test-watch-mode inspect when no inspector (James M Snell) #59440
  • [8b7a8efe96] - test: exclude mock from coverage (Shima Ryuhei) #59348
  • [f39352b55c] - test: split test-fs-cp.js (Joyee Cheung) #59408
  • [fb4180e9f6] - test_runner: fix todo inheritance (Moshe Atlow) #59721
  • [76bf6b908d] - test_runner: set mock timer’s interval undefined (hotpineapple) #59479
  • [0a05d06fcc] - test_runner: do not error when getting fullName of root context (René) #59377
  • [3fdfb187d6] - test_runner: fix isSkipped check in junit (Sungwon) #59414
  • [37c6f7d7d8] - test_runner: remove unused callee convertion (Alex Yang) #59221
  • [57c30093e3] - test_runner: clean up promisified interval generation (René) #58824
  • [88bf1bab91] - test_runner: correct “already mocked” error punctuation placement (Jacob Smith) #58840
  • [d3259d660a] - test_runner: prefer Atomics primordials (Renegade334) #58716
  • [62bb80c17e] - (SEMVER-MINOR) test_runner: support object property mocking (Idan Goshen) #58438
  • [4b19439dea] - tools: print appropriate output when test aborted (hotpineapple) #59794
  • [847963bbba] - tools: use sparse checkout in build-tarball.yml (Antoine du Hamel) #59788
  • [ef11d118a4] - tools: remove unused actions from build-tarball.yml (Antoine du Hamel) #59787
  • [daa0615967] - tools: do not attempt to compress tgz archive (Antoine du Hamel) #59785
  • [fdc85e5045] - tools: add v8windbg target (Chengzhong Wu) #59767
  • [25801b9009] - tools: improve error handling in node_mksnapshot (James M Snell) #59437
  • [92100a813f] - tools: add sccache to test-internet workflow (Antoine du Hamel) #59720
  • [5f0090af53] - tools: update gyp-next to 0.20.4 (Node.js GitHub Bot) #59690
  • [31ee7fc3e9] - tools: add script to make reviewing backport PRs easier (Antoine du Hamel) #59161
  • [45906b0d5c] - tools: update gyp-next to 0.20.3 (Node.js GitHub Bot) #59603
  • [6197eeee9b] - tools: avoid parsing test files twice (Pietro Marchini) #59526
  • [027ae4f67e] - tools: fix return value of try_check_compiler (theanarkh) #59434
  • [77682b52a1] - tools: bump @eslint/plugin-kit from 0.3.3 to 0.3.4 in /tools/eslint (dependabot[bot]) #59271
  • [91fa83fffd] - tools: disable nullability-completeness warnings (Michaël Zasso) #59392
  • [079a68d392] - typings: add typing for ‘uv’ (방진혁) #59606
  • [b8927967d9] - typings: add missing properties in ConfigBinding (Lee Jiho) #59585
  • [9b66ce5ef7] - typings: add missing URLBinding methods (성우현 | Woohyun Sung) #59468

  • [ba5b6597aa] - url: add err.input to ERR_INVALID_FILE_URL_PATH (Joyee Cheung) #59730
  • [f660943471] - util: fix numericSeparator with negative fractional numbers (sangwook) #59379
  • [aed1b883f1] - util: remove unnecessary template strings (btea) #59201
  • [91e9b8d135] - util: remove outdated TODO comment (haramjeong) #59760
  • [421ab3c294] - util: use getOptionValue(‘–no-deprecation’) in deprecated() (haramjeong) #59760
  • [7864ad13bb] - util: hide duplicated stack frames when using util.inspect (Ruben Bridgewater) #59447
  • [a2d2003daa] - util: fix error’s namespaced node_modules highlighting using inspect (Ruben Bridgewater) #59446
  • [f64d0def94] - util: add some additional error classes to wellKnownPrototypes (Mark S. Miller) #59456
  • [9807ffd6a0] - vm: expose import attributes on SourceTextModule.moduleRequests (Chengzhong Wu) #58829
  • [f334e2d539] - wasi: fix clean target in test/wasi/Makefile (Antoine du Hamel) #59576
  • [9e2aa23be9] - (SEMVER-MINOR) worker: add cpu profile APIs for worker (theanarkh) #59428
  • [c5a93a3355] - worker: fix worker name with \0 (theanarkh) #59214
  • [a5ed96bb97] - worker: add worker name to report (theanarkh) #58935
  • [98cd7e27d4] - worker: add name for worker (theanarkh) #59213

Update Sep 10, 2025 tracked by Updatify

2025-09-10, Version 24.8.0 (Current), @targos

Notable Changes

HTTP/2 Network Inspection Support in Node.js

Node.js now supports inspection of HTTP/2 network calls in Chrome DevTools for Node.js.

Usage

Write a test.js script that makes HTTP/2 requests.

const http2 = require('node:http2');

const client = http2.connect('https://nghttp2.org');

const req = client.request([
  ':path', '/',
  ':method', 'GET',
]);

Run it with these options:

node --inspect-wait --experimental-network-inspection test.js

Open about:inspect on Google Chrome and click on Open dedicated DevTools for Node. The Network tab will let you track your HTTP/2 calls.

Contributed by Darshan Sen in #59611.

Other Notable Changes

  • [7a8e2c251d] - (SEMVER-MINOR) crypto: support Ed448 and ML-DSA context parameter in node:crypto (Filip Skokan) #59570
  • [4b631be0b0] - (SEMVER-MINOR) crypto: support Ed448 and ML-DSA context parameter in Web Cryptography (Filip Skokan) #59570
  • [3e4b1e732c] - (SEMVER-MINOR) crypto: add KMAC Web Cryptography algorithms (Filip Skokan) #59647
  • [b1d28785b2] - (SEMVER-MINOR) crypto: add Argon2 Web Cryptography algorithms (Filip Skokan) #59544
  • [430691d1af] - (SEMVER-MINOR) crypto: support SLH-DSA KeyObject, sign, and verify (Filip Skokan) #59537
  • [d6d05ba397] - (SEMVER-MINOR) worker: add cpu profile APIs for worker (theanarkh) #59428

Commits

  • [d913872369] - assert: cap input size in myersDiff to avoid Int32Array overflow (Haram Jeong) #59578
  • [7bbbcf6666] - benchmark: sqlite prevent create both tables on prepare selects (Bruno Rodrigues) #59709
  • [44d7b92271] - benchmark: calibrate config array-vs-concat (Rafael Gonzaga) #59587
  • [7f347fc551] - build: fix getting OpenSSL version on Windows (Michaël Zasso) #59609
  • [4a317150d5] - build: fix ‘implicit-function-declaration’ on OpenHarmony platform (hqzing) #59547
  • [bda32af587] - build: use windows-2025 runner (Michaël Zasso) #59673
  • [a4a8ed8f6e] - build: compile bundled uvwasi conditionally (Carlo Cabrera) #59622
  • [d944a87761] - crypto: refactor subtle methods to use synchronous import (Filip Skokan) #59771
  • [7a8e2c251d] - (SEMVER-MINOR) crypto: support Ed448 and ML-DSA context parameter in node:crypto (Filip Skokan) #59570
  • [4b631be0b0] - (SEMVER-MINOR) crypto: support Ed448 and ML-DSA context parameter in Web Cryptography (Filip Skokan) #59570
  • [3e4b1e732c] - (SEMVER-MINOR) crypto: add KMAC Web Cryptography algorithms (Filip Skokan) #59647
  • [b1d28785b2] - (SEMVER-MINOR) crypto: add Argon2 Web Cryptography algorithms (Filip Skokan) #59544
  • [430691d1af] - (SEMVER-MINOR) crypto: support SLH-DSA KeyObject, sign, and verify (Filip Skokan) #59537
  • [0d1e53d935] - deps: update uvwasi to 0.0.23 (Node.js GitHub Bot) #59791
  • [68732cf426] - deps: update histogram to 0.11.9 (Node.js GitHub Bot) #59689
  • [f12c1ad961] - deps: update googletest to eb2d85e (Node.js GitHub Bot) #59335
  • [45af6966ae] - deps: upgrade npm to 11.6.0 (npm team) #59750
  • [57617244a4] - deps: V8: cherry-pick 6b1b9bca2a8 (Xiao-Tao) #59283
  • [2e6225a747] - deps: update amaro to 1.1.2 (Node.js GitHub Bot) #59616
  • [1f7f6dfae6] - diagnostics_channel: revoke DEP0163 (René) #59758
  • [8671a6cdb3] - doc: stabilize –disable-sigusr1 (Rafael Gonzaga) #59707
  • [583b1b255d] - doc: update OpenSSL default security level to 2 (Jeetu Suthar) #59723
  • [9b5eb6eb50] - doc: fix missing links in the errors page (Nam Yooseong) #59427
  • [e7bf712c57] - doc: update “Type stripping in dependencies” section (Josh Kelley) #59652
  • [96db47f91e] - doc: add Miles Guicent as triager (Miles Guicent) #59562
  • [87f829bd0c] - doc: mark path.matchesGlob as stable (Aviv Keller) #59572
  • [062b2f705e] - doc: improve documentation for raw headers in HTTP/2 APIs (Tim Perry) #59633
  • [6ab9306370] - doc: update install_tools.bat free disk space (Stefan Stojanovic) #59579
  • [c8d6b60da6] - doc: fix quic session instance typo (jakecastelli) #59642
  • [61d0a2d1ba] - doc: fix filehandle.read typo (Ruy Adorno) #59635
  • [3276bfa0d0] - doc: update migration recomendations for util.is**() deprecations (Augustin Mauroy) #59269
  • [11de6c7ebb] - doc: fix missing link to the Error documentation in the http page (Alexander Makarenko) #59080
  • [f5b6829bba] - doc,crypto: add description to the KEM and supports() methods (Filip Skokan) #59644
  • [5bfdc7ee74] - doc,crypto: cleanup unlinked and self method references webcrypto.md (Filip Skokan) #59608
  • [010458d061] - esm: populate separate cache for require(esm) in imported CJS (Joyee Cheung) #59679
  • [dbe6e63baf] - esm: fix missed renaming in ModuleJob.runSync (Joyee Cheung) #59724
  • [8eb0d9d834] - fs: fix wrong order of file names in cpSync error message (Nicholas Paun) #59775
  • [e69be5611f] - fs: fix dereference: false on cpSync (Nicholas Paun) #59681
  • [2865d2ac20] - http: unbreak keepAliveTimeoutBuffer (Robert Nagy) #59784
  • [ade1175475] - http: use cached ‘1.1’ http version string (Robert Nagy) #59717
  • [74a09482de] - inspector: undici as shared-library should pass tests (Aras Abbasi) #59837
  • [772f8f415a] - inspector: add http2 tracking support (Darshan Sen) #59611
  • [3d225572d7] - Revertlib: optimize writable stream buffer clearing” (Yoo) #59743
  • [4fd213ce73] - lib: fix isReadable and isWritable return type value (Gabriel Quaresma) #59089
  • [39befddb87] - lib: prefer TypedArrayPrototype primordials (Filip Skokan) #59766
  • [0748160d2e] - lib: fix DOMException subclass support (Chengzhong Wu) #59680
  • [1a93df808c] - lib: revert to using default derived class constructors (René) #59650
  • [bb0755df37] - meta: bump codecov/codecov-action (dependabot[bot]) #59726
  • [45d148d9be] - meta: bump actions/download-artifact from 4.3.0 to 5.0.0 (dependabot[bot]) #59729
  • [01b66b122e] - meta: bump github/codeql-action from 3.29.2 to 3.30.0 (dependabot[bot]) #59728
  • [34f7ab5502] - meta: bump actions/cache from 4.2.3 to 4.2.4 (dependabot[bot]) #59727
  • [5806ea02af] - meta: bump actions/checkout from 4.2.2 to 5.0.0 (dependabot[bot]) #59725
  • [f667215583] - path: refactor path joining logic for clarity and performance (Lee Jiho) #59781
  • [0340fe92a6] - repl: do not cause side effects in tab completion (Anna Henningsen) #59774
  • [a414c1eb51] - repl: fix REPL completion under unary expressions (Kingsword) #59744
  • [c206f8dd87] - repl: add isValidParentheses check before wrap input (Xuguang Mei) #59607
  • [0bf9775ee2] - sea: implement sea.getAssetKeys() (Joyee Cheung) #59661
  • [bf26b478d8] - sea: allow using inspector command line flags with SEA (Joyee Cheung) #59568
  • [92128a8fe2] - src: use DictionaryTemplate for node_url_pattern (James M Snell) #59802
  • [bcb29fb84f] - src: correctly report memory changes to V8 (Yaksh Bariya) #59623
  • [44c24657d3] - src: fixup node_messaging error handling (James M Snell) #59792
  • [2cd6a3b7ec] - src: track async resources via pointers to stack-allocated handles (Anna Henningsen) #59704
  • [34d752586f] - src: fix build on NetBSD (Thomas Klausner) #59718
  • [15fa779ac5] - src: fix race on process exit and off thread CA loading (Chengzhong Wu) #59632
  • [15cbd3966a] - src: separate module.hasAsyncGraph and module.hasTopLevelAwait (Joyee Cheung) #59675
  • [88d1ca8990] - src: use non-deprecated Get/SetPrototype methods (Michaël Zasso) #59671
  • [56ac9a2d46] - src: migrate WriteOneByte to WriteOneByteV2 (Chengzhong Wu) #59634
  • [3d88aa9f2f] - src: remove duplicate code (theanarkh) #59649
  • [0718a70b2a] - src: add name for more threads (theanarkh) #59601
  • [0379a8b254] - src: remove JSONParser (Joyee Cheung) #59619
  • [90d0a1b2e9] - src,sqlite: refactor value conversion (Edy Silva) #59659
  • [5e025c7ca7] - stream: replace manual function validation with validateFunction (방진혁) #59529
  • [155a999bed] - test: skip tests failing when run under root (Livia Medeiros) #59779
  • [6313706c69] - test: update WPT for urlpattern to cff1ac1123 (Node.js GitHub Bot) #59602
  • [41245ad4c7] - test: skip more sea tests on Linux ppc64le (Richard Lau) #59755
  • [df63d37ec4] - test: fix internet/test-dns (Michaël Zasso) #59660
  • [1f6c335e82] - test: mark test-inspector-network-fetch as flaky again (Joyee Cheung) #59640
  • [1798683df1] - test: skip test-fs-cp* tests that are constantly failing on Windows (Joyee Cheung) #59637
  • [4c48ec09e5] - test: deflake test-http-keep-alive-empty-line (Luigi Pinca) #59595
  • [dcdb259e85] - test_runner: fix todo inheritance (Moshe Atlow) #59721
  • [24177973a2] - test_runner: set mock timer’s interval undefined (hotpineapple) #59479
  • [83d11f8a7a] - tools: print appropriate output when test aborted (hotpineapple) #59794
  • [1eca2cc548] - tools: use sparse checkout in build-tarball.yml (Antoine du Hamel) #59788
  • [89fa1a929d] - tools: remove unused actions from build-tarball.yml (Antoine du Hamel) #59787
  • [794ca3511d] - tools: do not attempt to compress tgz archive (Antoine du Hamel) #59785
  • [377bdb9b7e] - tools: add v8windbg target (Chengzhong Wu) #59767
  • [6696d1d6c9] - tools: improve error handling in node_mksnapshot (James M Snell) #59437
  • [8dbd0f13e8] - tools: add sccache to test-internet workflow (Antoine du Hamel) #59720
  • [6523c2d7d9] - tools: update gyp-next to 0.20.4 (Node.js GitHub Bot) #59690
  • [19d633f40c] - tools: add script to make reviewing backport PRs easier (Antoine du Hamel) #59161
  • [15e547b3a4] - typings: add typing for ‘uv’ (방진혁) #59606
  • [ad5cfcc901] - typings: add missing properties in ConfigBinding (Lee Jiho) #59585
  • [70d2d6d479] - url: add err.input to ERR_INVALID_FILE_URL_PATH (Joyee Cheung) #59730
  • [e476e43c17] - util: fix numericSeparator with negative fractional numbers (sangwook) #59379
  • [b2e8f40d15] - util: remove unnecessary template strings (btea) #59201
  • [6f79450ea2] - util: remove outdated TODO comment (haramjeong) #59760
  • [32731432ef] - util: use getOptionValue(‘–no-deprecation’) in deprecated() (haramjeong) #59760
  • [65e4e68c90] - util: hide duplicated stack frames when using util.inspect (Ruben Bridgewater) #59447
  • [2086f3365f] - vm: sync-ify SourceTextModule linkage (Chengzhong Wu) #59000
  • [c16163511d] - wasi: fix clean target in test/wasi/Makefile (Antoine du Hamel) #59576
  • [2e54411cb6] - worker: optimize cpu profile implement (theanarkh) #59683
  • [d6d05ba397] - (SEMVER-MINOR) worker: add cpu profile APIs for worker (theanarkh) #59428

Update Sep 3, 2025 tracked by Updatify

2025-09-03, Version 20.19.5 'Iron' (LTS), @marco-ippolito

Notable Changes

Commits

  • [ea20403467] - build: fix uvwasi pkgname (Antoine du Hamel) #58270
  • [c647aa4b30] - build: fix pointer compression builds (Joyee Cheung) #58171
  • [d2c5e609ae] - build: disable v8_enable_pointer_compression_shared_cage on non-64bit (Shelley Vohr) #58867
  • [84d5c4d244] - build: search for libnode.so in multiple places (Jan Staněk) #58213
  • [068c439552] - crypto: fix SHAKE128/256 breaking change introduced with OpenSSL 3.4 (Filip Skokan) #58942
  • [edff105c34] - debugger: fix behavior of plain object exec in debugger repl (Dario Piotrowicz) #57498
  • [0473e35b7f] - deps: update zlib to 1.3.1-470d3a2 (Node.js GitHub Bot) #58628
  • [1218dbbea5] - deps: update zlib to 1.3.0.1-motley-780819f (Node.js GitHub Bot) #57768
  • [0e3cd9ec00] - deps: update zlib to 1.3.0.1-motley-788cb3c (Node.js GitHub Bot) #56655
  • [a194dd9bd4] - deps: update archs files for openssl-3.0.16 (Node.js GitHub Bot) #57335
  • [cc9b79ca70] - deps: upgrade openssl sources to quictls/openssl-3.0.16 (Node.js GitHub Bot) #57335
  • [82c46d5358] - deps: update cjs-module-lexer to 2.1.0 (Node.js GitHub Bot) #57180
  • [43e3f9b26b] - deps: update cjs-module-lexer to 2.0.0 (Michael Dawson) #56855
  • [91282ff16b] - deps: update corepack to 0.33.0 (Node.js GitHub Bot) #58566
  • [b76bca6f38] - deps: update acorn to 8.15.0 (Node.js GitHub Bot) #58711
  • [ae11481011] - deps: update acorn to 8.14.1 (Node.js GitHub Bot) #57382
  • [142d701201] - deps: update minimatch to 10.0.3 (Node.js GitHub Bot) #58712
  • [fee082d684] - deps: update llhttp to 9.3.0 (Fedor Indutny) #58144
  • [c06f6f3f05] - dns: remove redundant code using common variable (Deokjin Kim) #57386
  • [cded8e7e77] - dns: fix parse memory leaky (theanarkh) #58973
  • [182ae67233] - dns: fix dns query cache implementation (Ethan Arrowood) #58404
  • [621b66a297] - doc: add review guidelines for collaborator nominations (Antoine du Hamel) #57449
  • [b1009b5b72] - doc: explicit mention arbitrary code execution as a vuln (Rafael Gonzaga) #57426
  • [f5b293ad48] - doc: add JonasBa to collaborators (Jonas Badalic) #58355
  • [4e6ae787c6] - doc: add puskin to collaborators (Giovanni Bucci) #58308
  • [530473f479] - doc: add ovflowd back to core collaborators (Claudio W.) #58911
  • [38e8bbc131] - doc: add info on how project manages social media (Michael Dawson) #57318
  • [d06bb4dcc2] - doc: ping nodejs/tsc for each security pull request (Rafael Gonzaga) #57309
  • [d06db658fc] - doc: add Filip Skokan to TSC (Rafael Gonzaga) #58499
  • [8c3bc156ed] - doc: clarify path.isAbsolute is not path traversal mitigation (Eric Fortis) #57073
  • [e688410bda] - doc: fix rendering of DEP0174 description (David Sanders) #56835
  • [e6a0c6a0fa] - doc: add missing assert return types (Colin Ihrig) #57219
  • [026b3cab6a] - doc: add 1ilsang to triage team (1ilsang) #57183
  • [3c6206cac9] - doc: add @geeksilva97 to collaborators (Edy Silva) #57241
  • [ef3a4675c7] - doc: fix web.libera.chat link in pull-requests.md (Samuel Bronson) #57076
  • [1db42b76f7] - doc: remove buffered flag from performance hooks examples (Pavel Romanov) #52607
  • [b73a1356ce] - doc: add module namespace object links (Dario Piotrowicz) #57093
  • [09368db20f] - doc: disambiguate pseudo-code statement (Dario Piotrowicz) #57092
  • [2c3dc569a1] - doc: fix wrong articles used to address modules (Dario Piotrowicz) #57090
  • [cd8259cb4e] - doc: modules.md: fix distance definition (Alexander “weej” Jones) #57046
  • [7b0ea9ab2d] - doc: fix wrong verb form (Dario Piotrowicz) #57091
  • [14fcfc242b] - doc: add a note about require('../common') in testing documentation (Aditi) #56953
  • [bc7d18b6ea] - doc: recommend writing tests in new files and including comments (Joyee Cheung) #57028
  • [acd4d7f269] - doc: improve documentation on argument validation (Aditi) #56954
  • [4cd6b3ca73] - doc: buffer: fix typo on Buffer.copyBytesFrom( offset option (tpoisseau) #57015
  • [01220607f2] - doc: update cleanup to trust on vuln db automation (Rafael Gonzaga) #57004
  • [77a0505a32] - doc: update post sec release process (Rafael Gonzaga) #56907
  • [77dbcfce5f] - doc: add section about using npx with permission model (Rafael Gonzaga) #56539
  • [73e51407b7] - doc: remove RedYetiDev from triagers team (Aviv Keller) #55947
  • [9a36cbb792] - doc: fix relative path mention in –allow-fs (Rafael Gonzaga) #55791
  • [04d9c5baeb] - doc: add scroll margin to links (Roman Reiss) #58982
  • [959a67f6ff] - doc: make Stability labels not sticky in Stability index (Livia Medeiros) #58291
  • [8757a5532f] - doc: update release key for aduh95 (Antoine du Hamel) #58877
  • [6fa0626327] - doc,src,test: fix typos (Noritaka Kobayashi) #58477
  • [9991788e4a] - http: coerce content-length to number (Marco Ippolito) #57458
  • [ff5cf8a428] - http2: fix check for frame->hd.type (hanguanqiang) #57644
  • [2f333b6c51] - lib: optimize prepareStackTrace on builtin frames (Chengzhong Wu) #56299
  • [cdf985071f] - lib: suppress source map lookup exceptions (Chengzhong Wu) #56299
  • [faa08b14ed] - lib: fixup incorrect argument order in assertEncoding (James M Snell) #57177
  • [a683cd1232] - meta: add IlyasShabi to collaborators (Ilyas Shabi) #58916
  • [b145bb28aa] - meta: bump codecov/codecov-action from 5.4.2 to 5.4.3 (dependabot[bot]) #58551
  • [2c59789001] - meta: bump ossf/scorecard-action from 2.4.1 to 2.4.2 (dependabot[bot]) #58550
  • [4095337e96] - meta: bump rtCamp/action-slack-notify from 2.3.2 to 2.3.3 (dependabot[bot]) #58108
  • [631fed8e39] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #58456
  • [7d2f7180b6] - meta: bump codecov/codecov-action from 5.4.0 to 5.4.2 (dependabot[bot]) #58110
  • [1558551ea5] - meta: bump actions/download-artifact from 4.2.1 to 4.3.0 (dependabot[bot]) #58106
  • [e1f12fe737] - meta: ignore mailmap changes in linux ci (Jonas Badalic) #58356
  • [1b78eb1313] - meta: bump actions/setup-node from 4.3.0 to 4.4.0 (dependabot[bot]) #58111
  • [2b8449c39a] - meta: bump actions/setup-python from 5.5.0 to 5.6.0 (dependabot[bot]) #58107
  • [833b70bbc5] - meta: allow penetration testing on live system with prior authorization (Matteo Collina) #57966
  • [c6a88561f5] - meta: bump actions/setup-python from 5.4.0 to 5.5.0 (dependabot[bot]) #57718
  • [9046ef4fb3] - meta: bump peter-evans/create-pull-request from 7.0.7 to 7.0.8 (dependabot[bot]) #57717
  • [46388a4e2a] - meta: bump actions/cache from 4.2.2 to 4.2.3 (dependabot[bot]) #57715
  • [d3970685bd] - meta: bump actions/setup-node from 4.2.0 to 4.3.0 (dependabot[bot]) #57714
  • [47004ef37f] - meta: bump actions/upload-artifact from 4.6.1 to 4.6.2 (dependabot[bot]) #57713
  • [4abe83ec03] - meta: add some clarification to the nomination process (James M Snell) #57503
  • [45e9b88363] - meta: remove collaborator self-nomination (Rich Trott) #57537
  • [d10949b7d8] - meta: edit collaborator nomination process (Antoine du Hamel) #57483
  • [704562fb7a] - meta: move ovflowd to emeritus (Claudio W.) #57443
  • [3f981b8537] - meta: bump codecov/codecov-action from 5.3.1 to 5.4.0 (dependabot[bot]) #57257
  • [7e1ff7b332] - meta: bump ossf/scorecard-action from 2.4.0 to 2.4.1 (dependabot[bot]) #57253
  • [8d4ec412b9] - meta: move RaisinTen back to collaborators, triagers and SEA champion (Darshan Sen) #57292
  • [cc2abb5d17] - meta: bump peter-evans/create-pull-request from 7.0.6 to 7.0.7 (dependabot[bot]) #57259
  • [4fad2b8758] - meta: bump actions/cache from 4.2.0 to 4.2.2 (dependabot[bot]) #57256
  • [5f5bb8b986] - meta: bump actions/upload-artifact from 4.6.0 to 4.6.1 (dependabot[bot]) #57255
  • [e949359a56] - meta: bump actions/setup-python from 5.3.0 to 5.4.0 (dependabot[bot]) #56867
  • [d3c5ad7510] - meta: bump peter-evans/create-pull-request from 7.0.5 to 7.0.6 (dependabot[bot]) #56866
  • [56decfe2d1] - meta: bump codecov/codecov-action from 5.0.7 to 5.3.1 (dependabot[bot]) #56864
  • [52e518444d] - meta: bump actions/cache from 4.1.2 to 4.2.0 (dependabot[bot]) #56862
  • [9cac93d9c3] - meta: bump actions/stale from 9.0.0 to 9.1.0 (dependabot[bot]) #56860
  • [ecf4252f7c] - meta: update last name for jkrems (Jan Martin) #57006
  • [e8beaaaedf] - meta: bump actions/upload-artifact from 4.4.3 to 4.6.0 (dependabot[bot]) #56861
  • [5462c257f8] - meta: bump actions/setup-node from 4.1.0 to 4.2.0 (dependabot[bot]) #56868
  • [89c37891a0] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #56889
  • [2a0175c291] - meta: add @nodejs/url as codeowner (Chengzhong Wu) #56783
  • [c12aae1e78] - meta: bump github/codeql-action from 3.28.18 to 3.29.2 (dependabot[bot]) #58922
  • [4ef09990f1] - meta: bump github/codeql-action from 3.28.16 to 3.28.18 (dependabot[bot]) #58552
  • [889654eb2c] - meta: bump github/codeql-action from 3.28.11 to 3.28.16 (dependabot[bot]) #58112
  • [091e5c1bb9] - meta: bump github/codeql-action from 3.28.10 to 3.28.13 (dependabot[bot]) #57716
  • [01415153de] - meta: bump github/codeql-action from 3.28.8 to 3.28.10 (dependabot[bot]) #57254
  • [72ea8aac34] - meta: bump github/codeql-action from 3.27.5 to 3.28.8 (dependabot[bot]) #56859
  • [99a271e588] - meta: bump step-security/harden-runner from 2.12.0 to 2.12.2 (dependabot[bot]) #58923
  • [b4c4c02490] - meta: bump step-security/harden-runner from 2.11.0 to 2.12.0 (dependabot[bot]) #58109
  • [5361bb9157] - meta: bump step-security/harden-runner from 2.10.4 to 2.11.0 (dependabot[bot]) #57258
  • [28e33acf30] - meta: bump step-security/harden-runner from 2.10.2 to 2.10.4 (dependabot[bot]) #56863
  • [fad773cede] - module: throw error when re-runing errored module jobs (Joyee Cheung) #58957
  • [2531185423] - module: allow cycles in require() in the CJS handling in ESM loader (Joyee Cheung) #58598
  • [ed43b69689] - module: clarify cjs global-like error on ModuleJobSync (Carlos Espa) #56491
  • [6e02db1b12] - module: handle instantiated async module jobs in require(esm) (Joyee Cheung) #58067
  • [badba50d30] - module: fix incorrect formatting in require(esm) cycle error message (haykam821) #57453
  • [939ecf8906] - module: handle cached linked async jobs in require(esm) (Joyee Cheung) #57187
  • [ba7f8a0353] - module: improve error message from asynchronicity in require(esm) (Joyee Cheung) #57126
  • [c1e7fa2586] - module: handle .mjs in .js handler in CommonJS (Joyee Cheung) #55590
  • [41f3dfd21b] - module: fix require.resolve() crash on non-string paths (Aditi) #56942
  • [043dcdd628] - os: fix GetInterfaceAddresses memory lieaky (theanarkh) #58940
  • [9b74e9bfd9] - permission: ignore internalModuleStat on module loading (Rafael Gonzaga) #55797
  • [611a147b45] - readline: fix unresolved promise on abortion (Daniel Venable) #54030
  • [f891ae3421] - repl: avoid deprecated require.extensions in tab completion (baki gul) #58653
  • [7ba44290bf] - repl: fix tab completion not working with computer string properties (Dario Piotrowicz) #58709
  • [eb842048b2] - src: do not format single string argument for THROW_ERR_* (Joyee Cheung) #57126
  • [4f004937ec] - src: fixup errorhandling more in various places (James M Snell) #57852
  • [5daa7fe2e2] - src: fix module buffer allocation (X-BW) #57738
  • [586b1be11b] - src: fix build when using shared simdutf (Antoine du Hamel) #58407
  • [563e61f012] - src: fix possible dereference of null pointer (Eusgor) #58459
  • [cbec07ea0b] - src: fix FIPS init error handling (Tobias Nießen) #58379
  • [80fb80e71b] - src: fix -Wunreachable-code in src/node_api.cc (Shelley Vohr) #58901
  • [5e97719860] - test: skip test-http-imports on macos (Marco Ippolito) #59745
  • [69c43bdfcc] - test: fix internet/test-dns (Michaël Zasso) #59660
  • [6fd58e0338] - tools: update coverage GitHub Actions to fixed version (Rich Trott) #59512
  • [eb7bbce73e] - tools: disable failing coverage jobs (Antoine du Hamel) #58770
  • [65b1669936] - util: fix formatting of objects with built-in Symbol.toPrimitive (Shima Ryuhei) #57832
  • [8a29f13bec] - util: fix parseEnv incorrectly splitting multiple ‘=‘ in value (HEESEUNG) #57421
  • [077d5020c4] - v8: fix missing callback in heap utils destroy (Ruben Bridgewater) #58846
  • [34ae9f8b18] - vm: import call should return a promise in the current context (Chengzhong Wu) #58309
  • [0dd3a8d6d1] - win,build: fix MSVS v17.14 compilation issue (StefanStojanovic) #58902
  • [1b83a2bd2d] - zlib: remove mentions of unexposed Z_TREES constant (Jimmy Leung) #58371
  • [9dc9604502] - zlib: fix pointer alignment (jhofstee) #57727

Update Aug 28, 2025 tracked by Updatify

2025-08-28, Version 22.19.0 'Jod' (LTS), @aduh95

Notable Changes

  • [8e2076a24f] - (SEMVER-MINOR) cli: add NODE_USE_SYSTEM_CA=1 (Joyee Cheung) #59276
  • [e592d739c2] - (SEMVER-MINOR) cli: support ${pid} placeholder in --cpu-prof-name (Haram Jeong) #59072
  • [cda1dab6e2] - (SEMVER-MINOR) crypto: add tls.setDefaultCACertificates() (Joyee Cheung) #58822
  • [1f184513e9] - (SEMVER-MINOR) dns: support max timeout (theanarkh) #58440
  • [bace73a173] - doc: update the instruction on how to verify releases (Antoine du Hamel) #59113
  • [fa9a9e9c69] - (SEMVER-MINOR) esm: unflag --experimental-wasm-modules (Guy Bedford) #57038
  • [390a9dc20b] - (SEMVER-MINOR) http: add server.keepAliveTimeoutBuffer option (Haram Jeong) #59243
  • [c12c5343ad] - lib: docs deprecate _http_* (Sebastian Beltran) #59293
  • [f57ee3d71f] - (SEMVER-MINOR) net: update net.blocklist to allow file save and file management (alphaleadership) #58087
  • [035da74c31] - (SEMVER-MINOR) process: add threadCpuUsage (Paolo Insogna) #56467
  • [8e697d1884] - (SEMVER-MINOR) zlib: add dictionary support to zstdCompress and zstdDecompress (lluisemper) #59240

Commits

  • [73aa0ae37f] - assert: change utils to use index instead of for…of (방진혁) #59278
  • [dfe3a11eed] - benchmark: remove deprecated _extend from benchmark (Rafael Gonzaga) #59228
  • [9b9d30042a] - benchmark: add fs warmup to writefile-promises (Bruno Rodrigues) #59215
  • [a663f7f954] - benchmark: add calibrate-n script (Rafael Gonzaga) #59186
  • [1b9b5bddd6] - benchmark: adjust configuration for string-decoder bench (Rafael Gonzaga) #59187
  • [d0ac3319f9] - benchmark: add –track to benchmark (Rafael Gonzaga) #59174
  • [2044968b86] - benchmark: small lint fix on _cli.js (Rafael Gonzaga) #59172
  • [4e519934cb] - benchmark: drop misc/punycode benchmark (Rafael Gonzaga) #59171
  • [07e173d969] - benchmark: fix sqlite-is-transaction (Rafael Gonzaga) #59170
  • [8440b6177f] - benchmark: reduce N for diagnostics_channel subscribe benchmark (Arthur Angelo) #59116
  • [8615ea6db0] - buffer: cache Environment::GetCurrent to avoid repeated calls (Mert Can Altin) #59043
  • [3deb5361d2] - build: fix node_use_sqlite for GN builds (Shelley Vohr) #59017
  • [0f0ce63116] - build: remove suppressions.supp (Rafael Gonzaga) #59079
  • [b30a2117dc] - build,deps,tools: prepare to update to OpenSSL 3.5 (Richard Lau) #58100
  • [8e2076a24f] - (SEMVER-MINOR) cli: add NODE_USE_SYSTEM_CA=1 (Joyee Cheung) #59276
  • [e592d739c2] - (SEMVER-MINOR) cli: support ${pid} placeholder in –cpu-prof-name (Haram Jeong) #59072
  • [b5571047ed] - crypto: prepare webcrypto key import/export for modern algorithms (Filip Skokan) #59284
  • [cda1dab6e2] - (SEMVER-MINOR) crypto: add tls.setDefaultCACertificates() (Joyee Cheung) #58822
  • [76dab34fb7] - deps: support madvise(3C) across ALL illumos revisions (Dan McDonald) #58237
  • [19d3ed64b6] - deps: update sqlite to 3.50.4 (Node.js GitHub Bot) #59337
  • [38bafc59e0] - deps: V8: backport 493cb53691be (Chengzhong Wu) #59238
  • [e8da171cc3] - deps: update sqlite to 3.50.3 (Node.js GitHub Bot) #59132
  • [fd4ba38ab6] - deps: update googletest to 7e17b15 (Node.js GitHub Bot) #59131
  • [f71f427b95] - deps: update archs files for openssl-3.0.17 (Node.js GitHub Bot) #59134
  • [79c5a8f4d2] - deps: upgrade openssl sources to openssl-3.0.17 (Node.js GitHub Bot) #59134
  • [0dcc84cf53] - deps: update corepack to 0.34.0 (Node.js GitHub Bot) #59133
  • [1f184513e9] - (SEMVER-MINOR) dns: support max timeout (theanarkh) #58440
  • [f64f5df80e] - doc: fix --use-system-ca history (Joyee Cheung) #59411
  • [e22aeaa38f] - doc: add missing section for setReturnArrays in sqlite.md (Edy Silva) #59074
  • [e44ef07235] - doc: rename x509.extKeyUsage to x509.keyUsage (Filip Skokan) #59332
  • [2c5d0aac5e] - doc: fix Pbkdf2Params hash attribute heading (Filip Skokan) #59395
  • [fde94346e5] - doc: fix missing reference links for server.keepAliveTimeoutBuffer (Lee Jiho) #59356
  • [9af8bcea58] - doc: fix grammar in global dispatcher usage (Eng Zer Jun) #59344
  • [0edf17198f] - doc: run license-builder (github-actions[bot]) #59343
  • [7f767a2e38] - doc: correct orthography eg.e.g. (Jacob Smith) #59329
  • [a46ed50350] - doc: clarify the need of compiler compatible with c++20 (Rafael Gonzaga) #59297
  • [212263a305] - doc: clarify release candidate stability index (Filip Skokan) #59295
  • [ce93b8b556] - doc: add WDYT to glossary (btea) #59280
  • [ebaaf2c67f] - doc: add manpage entry for –use-system-ca (Joyee Cheung) #59273
  • [43b5a21916] - doc: add path.join and path.normalize clarification (Rafael Gonzaga) #59262
  • [409c66d328] - doc: fix typo in test/common/README.md (Yoo) #59180
  • [cbb0a8eb13] - doc: add note on process memoryUsage (fengmk2) #59026
  • [9892b15d81] - doc: format safely for doc-kit (Aviv Keller) #59229
  • [bace73a173] - doc: update the instruction on how to verify releases (Antoine du Hamel) #59113
  • [b549deac02] - doc: copyedit SECURITY.md (Rich Trott) #59190
  • [ef1bc3f344] - doc: fix broken sentence in URL.parse (Superchupu) #59164
  • [3c6639e8ec] - doc: improve onboarding instructions (Joyee Cheung) #59159
  • [6ffaac66bc] - doc: add constraints for mem leak to threat model (Rafael Gonzaga) #58917
  • [e419d20144] - doc: add Aditi-1400 to collaborators (Aditi Singh) #59157
  • [ba380f7bf3] - doc: avoid suggesting testing fast api with intense loop (Chengzhong Wu) #59111
  • [fa1a532f2b] - doc: fix typo in writing-test.md (SeokHun) #59123
  • [0b93ca3d19] - doc: add RafaelGSS as steward July 25 (Rafael Gonzaga) #59078
  • [7d747aeac8] - doc: clarify ERR_FS_FILE_TOO_LARGE to reflect fs.readFile() I/O limit (Haram Jeong) #59050
  • [0b5613f9fe] - doc: run license-builder (github-actions[bot]) #59056
  • [1b6b5e72d3] - doc: fix typed list formatting (Aviv Keller) #59019
  • [756c7dd639] - doc: refine util.parseArgs default definition (Slayer95) #58958
  • [0b840523a2] - doc: remove unused import in zlib.md (coderaiser) #59041
  • [3e9ed4b080] - doc: add stability index to the --watch-kill-signal flag (Dario Piotrowicz) #58997
  • [cb08a5d43f] - doc: add missing <code> blocks (Antoine du Hamel) #58995
  • [4a42360fe5] - doc: add scroll margin to links (Roman Reiss) #58982
  • [9d073f32da] - doc: add sponsorship link to RafaelGSS (Rafael Gonzaga) #58983
  • [3cc11fc9ac] - domain: remove deprecated API call (Alex Yang) #59339
  • [fa9a9e9c69] - (SEMVER-MINOR) esm: unflag –experimental-wasm-modules (Guy Bedford) #57038
  • [177ed3b3dd] - esm: js-string Wasm builtins in ESM Integration (Guy Bedford) #59020
  • [4619fe0e04] - fs: fix glob TypeError on restricted dirs (Sylphy-0xd3ac) #58674
  • [ad2089e32d] - fs: correct error message when FileHandle is transferred (Alex Yang) #59156
  • [390a9dc20b] - (SEMVER-MINOR) http: add server.keepAliveTimeoutBuffer option (Haram Jeong) #59243
  • [659002359d] - http2: set Http2Stream#sentHeaders for raw headers (Darshan Sen) #59244
  • [d02831ef73] - inspector: initial support for Network.loadNetworkResource (Shima Ryuhei) #58077
  • [264a838779] - lib: add trace-sigint APIs (theanarkh) #59040
  • [d22d2fa6d4] - lib: optimize writable stream buffer clearing (Yoo) #59406
  • [a5e9759409] - lib: do not modify prototype deprecated asyncResource (RafaelGSS) #59195
  • [9254257fc0] - lib: restructure assert to become a class (Miguel Marcondes Filho) #58253
  • [946eab8d77] - lib: handle superscript variants on windows device (Rafael Gonzaga) #59261
  • [cd857a97b5] - lib: use validateString (hotpineapple) #59296
  • [c12c5343ad] - lib: docs deprecate _http_* (Sebastian Beltran) #59293
  • [a28e5f0938] - lib: add type names in source mapped stack traces (Chengzhong Wu) #58976
  • [6aec5aee7c] - lib: prefer AsyncIteratorPrototype primordial (René) #59097
  • [e704349858] - lib: fix incorrect ArrayBufferPrototypeGetDetached primordial type (Dario Piotrowicz) #58978
  • [2fc25fd400] - lib: flag to conditionally modify proto on deprecate (Rafael Gonzaga) #58928
  • [446ee98e00] - meta: clarify pr objection process further (James M Snell) #59096
  • [46c339e4f3] - meta: add mailmap entry for aditi-1400 (Aditi) #59316
  • [70a586261f] - meta: add tsc and build team as codeowners building.md (Rafael Gonzaga) #59298
  • [e666e06781] - meta: add nodejs/path to path files (Rafael Gonzaga) #59289
  • [251b65dd6c] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #59140
  • [c8a7964da8] - meta: add marco-ippolito to security release stewards (Marco Ippolito) #58944
  • [0eec5cc492] - module: fix conditions override in synchronous resolve hooks (Joyee Cheung) #59011
  • [4acf7cd6d3] - module: throw error when re-runing errored module jobs (Joyee Cheung) #58957
  • [f57ee3d71f] - (SEMVER-MINOR) net: update net.blocklist to allow file save and file management (alphaleadership) #58087
  • [4aefcfc318] - node-api: reword “implementation in an alternative VM” as implementable (Chengzhong Wu) #59036
  • [ff6be2ed5d] - node-api,doc: update links to ecma262 with section names (Chengzhong Wu) #59087
  • [8d60602677] - perf_hooks: do not expose SafeMap via Histogram wrapper (René) #59094
  • [035da74c31] - (SEMVER-MINOR) process: add threadCpuUsage (Paolo Insogna) #56467
  • [74e1aa4d06] - process: make execve’s args argument optional (Allon Murienik) #58412
  • [3366e60bd9] - src: use simdjson to parse SEA configuration (Joyee Cheung) #59323
  • [63cc06977a] - src: mark realm leaf classes final (Anna Henningsen) #59355
  • [133d410cd9] - src: use C++20 contains() method (iknoom) #59304
  • [57fe96fe49] - src: added CHECK_NOT_NULL check for multiple eq_wrap_async (F3lixTheCat) #59267
  • [a8f381a6c5] - src: add nullptr checks in StreamPipe::New (Burkov Egor) #57613
  • [0769e5a0dc] - src: call unmask after install signal handler (theanarkh) #59059
  • [1e7639e9e1] - src: use FastStringKey for TrackV8FastApiCall (Anna Henningsen) #59148
  • [9075a1a4bf] - src: use C++20 consteval for FastStringKey (Anna Henningsen) #59148
  • [5a0fd5689b] - src: remove declarations of removed BaseObject static fns (Anna Henningsen) #59093
  • [c637a2c41d] - src: add cache to nearest parent package json (Ilyas Shabi) #59086
  • [3375a6cfee] - test: deflake sequential/test-tls-session-timeout (Joyee Cheung) #59423
  • [438cb11a15] - test: update WPT resources,WebCryptoAPI,webstorage (Filip Skokan) #59311
  • [68bec19f76] - test: add known issue test for fs.cpSync dereference bug (James M Snell) #58941
  • [a100cce379] - test: deflake stream-readable-to-web test (Ethan Arrowood) #58948
  • [b7577d853b] - test: make test-inspector-network-resource sequential (Shima Ryuhei) #59104
  • [667ee82443] - test: don’t use expose internals in test-http-outgoing-buffer.js (Meghan Denny) #59219
  • [feec26d3bb] - test: use mustSucceed in test-fs-read (Sungwon) #59204
  • [d7e23769ab] - test: prepare test-crypto-rsa-dsa for newer OpenSSL (Richard Lau) #58100
  • [3a9aca91c6] - test: fix flaky test-worker-message-port-transfer-filehandle test (Alex Yang) #59158
  • [3aee7625b9] - test: expand linting rules around assert w literal messages (Anna Henningsen) #59147
  • [667c2ced38] - test: update WPT for WebCryptoAPI to ab08796857 (Node.js GitHub Bot) #59129
  • [89ac344393] - test: update WPT for WebCryptoAPI to 19d82c57ab (Node.js GitHub Bot) #59129
  • [d332957ac6] - test: skip tests that cause timeouts on IBM i (Abdirahim Musse) #59014
  • [a23562ff72] - test: update startCLI to set --port=0 by default (Dario Piotrowicz) #59042
  • [4a12f5d83b] - test: mark test-inspector-network-fetch as flaky on Windows (Joyee Cheung) #59091
  • [ac4f7aa69c] - test: add missing port=0 arg in test-debugger-extract-function-name (Dario Piotrowicz) #58977
  • [8dd09267e3] - test,crypto: skip unsupported ciphers (Shelley Vohr) #59388
  • [45200b43ea] - tools: update coverage GitHub Actions to fixed version (Rich Trott) #59512
  • [8f2b8b3dc4] - tools: allow selecting test subsystems with numbers in their names (Darshan Sen) #59242
  • [f9bc2573dd] - tools: clarify README linter error message (Joyee Cheung) #59160
  • [cba0de128d] - tools: add support for URLs to PR commits in merge.sh (Antoine du Hamel) #59162
  • [039949ef5b] - tools: bump @eslint/plugin-kit from 0.3.1 to 0.3.3 in /tools/eslint (dependabot[bot]) #59119
  • [6a8a73aa35] - tools: ignore CVE mention when linting release proposals (Antoine du Hamel) #59037
  • [d0f40f3a3a] - tools,test: enforce best practices to detect never settling promises (Antoine du Hamel) #58992
  • [9d801a3f00] - typings: improve internal binding types (Nam Yooseong) #59351
  • [6dbda6cb25] - typings: improve internal binding types (Michaël Zasso) #59176
  • [e22dddf859] - util: respect nested formats in styleText (Alex Yang) #59098
  • [491f390515] - worker: add cpuUsage for worker (theanarkh) #59177
  • [8e697d1884] - (SEMVER-MINOR) zlib: add dictionary support to zstdCompress and zstdDecompress (lluisemper) #59240