What changed in Node.js from 24 to 26

10 releases numbered after v24.20.0 up to and including v26.8.1, stable releases only. v24.20.0 and v26.8.1 are the newest stable releases of 24 and 26 we track; this page follows them as new ones ship.

133 changes across 10 releases

Added 39

v26.8.0

  • add --analyze mode to compare.js benchmark tool
  • enable SIV and GCM-SIV modes in Cipher/Decipher APIs
  • add statistical hypothesis testing to histogram in perf_hooks
  • add basic syntax highlighting to REPL
  • add StatementSync.prototype.close() to sqlite
  • add StatementSync.prototype[Symbol.dispose]() to sqlite
  • add non-throwing MIMEType.parse to util
  • add ZipEntry, ZipFile, and ZipBuffer to zlib
  • support aligned allocations in buffer

v26.7.0

  • Support loading private keys through STORE loaders in crypto
  • Add perfetto support to lib
  • Implement Symbol.dispose in ModuleHooks
  • Add support for --test-coverage-include-all flag in test runner

v26.6.0

  • Add `getCurrentEventLoop` to ffi
  • Add `context.log()` and `test:log` event to test runner
  • Report `entryFile` in `TestStream` events

v26.5.0

  • Implement blob.textStream() in buffer
  • Add --experimental-import-text flag to esm
  • Sample delay per event loop iteration in perf_hooks
  • Expose ReadableStreamTee in stream
  • Report negotiated TLS groups in tls
  • Add fast api for isUtf8 and isAscii in buffer

v26.4.0

  • Support caller-supplied buffers in fs.readFile()
  • Close pre-request sockets in http.closeIdleConnections()
  • Implement package maps in loader
  • Support TCP_KEEPINTVL and TCP_KEEPCNT in net.setKeepAlive()
  • Add certificateCompression option to tls
  • Dispatch node:fs/promises to mounted VFS instances
  • Add minimal node:vfs subsystem
  • Support non-byte WebCrypto lengths and cSHAKE

v26.3.0

  • Add httpValidation option to configure header value validation
  • Expose precise coverage start to JS runtime in inspector
  • Add permission.drop to permission system

v26.2.0

  • Add Temporal.Instant support to Stats and BigIntStats
  • Add writeInformation to http module to send arbitrary 1xx status codes
  • Wire ML-DSA and ML-KEM for use when using BoringSSL
  • Wire ChaCha20-Poly1305 in Web Cryptography when using BoringSSL
  • Wire AES-KW in Web Cryptography when using BoringSSL
  • Add --help to node inspect and improve docs
Changed 34

v26.8.0

  • update root certificates to NSS 3.126
  • mark TracingChannel as stable
  • improve histogram implementation
  • improve performance of net.BlockList
  • target Power 9 and z14 in build

v26.7.0

  • Update root certificates to NSS 3.125
  • Bump rustc requirement to >=1.86

v26.6.0

  • Style node --help output with util.styleText
  • Split OpenSSL 3, BoringSSL, and legacy backends
  • Update googletest to fa005b296f90faec4f352d7ab382287bf6548c8d
  • Update histogram to 0.11.10
  • Update amaro to 1.1.11
  • Update timezone to 2026c
  • Update libffi to 3.7.1
  • Update ngtcp2 to 1.24.0
  • Enable OpenSSL asm support for riscv64

v26.5.1

  • Update llhttp to 9.4.3
  • Update undici to 8.9.0

v26.4.0

  • Update blockList stability status to release candidate
  • Optimize Buffer.prototype.copy
  • Use simdutf for two-byte utf8 byteLength
  • Enable maglev by default on Linux ppc64le
  • Pass spawn options to the binding positionally in child_process
  • Serialize advanced IPC messages natively in child_process
  • Use EVP_MAC for HMAC on OpenSSL >=3
  • Make webcrypto aliasKeyFormat directional

v26.3.0

  • Increase Buffer.poolSize default to 64 KiB
  • Update root certificates to NSS 3.123.1
  • Remove async from WebCrypto methods

v26.2.0

  • Mark stream.compose as stable
  • Align verifyOneShot accepted types in crypto
  • Improve system certificate enumeration logic on macOS
  • Improve accuracy of SubtleCrypto.supports
  • Optimize normalizeAlgorithm dispatch hot path
Fixed 29

v26.8.1

  • Fixed node --version reporting an alpha version designation

v26.8.0

  • prevent string write offset overflow in buffer
  • treat detached ArrayBuffers as empty in buffer

v26.7.0

  • Use Clamp conversion in Blob slice
  • Validate copyArrayBuffer offsets against buffer length
  • Preserve OpenSSL errors from KDF failures
  • Fix Argon2 bypassing FIPS mode
  • Clarify missing cipher error
  • Validate key generation options
  • Fix Argon2 validation errors
  • Handle XOF output allocation failure
  • Initialize KeyObjectData mutex eagerly
  • Handle DH operation failures
  • Use user-facing error for output encoding changes
  • Preserve overlapping CDP request state in debugger

v26.6.0

  • Fix TypeError on Maps with null keys in assert and util
  • Normalize lone "\r" in Blob native line endings
  • Fix Blob.stream() leaking source buffer

v26.5.0

  • Remove unreachable overflow check in buffer.atob()
  • Fix permission model propagation via NODE_OPTIONS in child_process
  • Fix large DH generator validation in crypto
  • Skip dns.lookup() for literal IP addresses in dgram
  • Return original thenable in diagnostics_channel

v26.4.0

  • Fix unhandled error in Hash._transform
  • Handle cipher context allocation failures

v26.3.0

  • Coerce -0 keylen to +0 in pbkdf2 and scrypt
  • Surface inspector failures in probe mode in debugger

v26.2.0

  • Reject invalid raw key imports
  • Disambiguate probe location binding in debugger
Deprecated 1

v26.8.0

  • deprecate always enabled --enable-static build option
Security 30

v26.6.0

  • Preserve RSA-PSS legacy pubkey DER
  • Cleanse provider private key copies
  • Handle incomplete RSA private keys
  • Retain legacy DH validation
  • Limit KangarooTwelveParams customization to 512 bytes

v26.5.1

  • Defer rst stream while in scope in http2 module (CVE-2026-56848)
  • Avoid granting radix split nodes in permission module (CVE-2026-58043)
  • Distinguish PFX object-array agent keys in https module (CVE-2026-56850)
  • Bind identity checks to session reuse in https module (CVE-2026-58040)
  • Invalidate tag store iterators on statement reset in sqlite module (CVE-2026-58041)
  • Handle large resolveAny address replies in dns module (CVE-2026-58042)
  • Throw on out-of-bounds write buffers in zlib module (CVE-2026-58045)
  • Enforce fs write permission for trace events in permission module (CVE-2026-56847)
  • Check final report output path in permission module (CVE-2026-58039)
  • Reject requests exceeding max header count in http module (CVE-2026-58044)

v26.5.0

  • Reject small-order EdDSA points during verify in crypto

v26.3.1

  • Normalize hostname for server identity checks in tls (CVE-2026-48618)
  • Guard WebCrypto cipher output length in crypto (CVE-2026-48933)
  • Redact proxy credentials in tunnel errors (CVE-2026-48615)
  • Cap originSet size to prevent unbounded memory growth in http2 (CVE-2026-48619)
  • Fix case-sensitive SNI context matching in tls (CVE-2026-48928)
  • Reject hostnames with embedded NUL bytes in dns and net (CVE-2026-48930)
  • Bind reusable sessions to authenticated host in tls (CVE-2026-48934)
  • Handle process.chdir on writereport in permission (CVE-2026-48617)
  • Fix response queue poisoning in http.Agent (CVE-2026-48931)
  • Disable FileHandle utimes with permission model (CVE-2026-48935)
  • Guard pipe open and chmod with net scope in permission (CVE-2026-48936)

v26.3.0

  • Harden WebCrypto against prototype pollution

v26.2.0

  • Harden CryptoKey algorithm slots
  • Harden KeyObject internal slots

Original release notes, newest first

The list above is our reading of these notes; the originals from OpenJS Foundation are here, one fold per release.

v26.8.12026-08-26, Version 26.8.1 (Current), @aduh95
Notable Changes

Out-of-band release to fix node --version which was reporting an alpha version.

Commits
  • [ebd35a9eec] - src: revert accidental alpha designation (Antoine du Hamel) #65568
  • [0b0dd87fcc] - tools: fix tools/nix/list-requisites.sh (Antoine du Hamel) #65560

View originalPermalink

v26.8.02026-08-26, Version 26.8.0 (Current), @aduh95
Notable Changes
  • [74234ee30e] - (SEMVER-MINOR) benchmark: add --analyze mode to compare.js (James M Snell) #65416
  • [4232997fa2] - crypto: update root certificates to NSS 3.126 (Node.js GitHub Bot) #65495
  • [f0531f1c87] - (SEMVER-MINOR) crypto: enable SIV and GCM-SIV modes in Cipher/Decipher APIs (Filip Skokan) #63411
  • [3f4b80ebb5] - diagnostics_channel: mark TracingChannel as stable (Abdelrahman Awad) #64525
  • [753033c110] - (SEMVER-MINOR) lib,src: improve histogram implementation (James M Snell) #65024
  • [3d7d277493] - (SEMVER-MINOR) net: improve performance of net.BlockList (James M Snell) #64974
  • [9e8e9080fd] - (SEMVER-MINOR) perf_hooks: add statistical hypothesis testing to histogram (James M Snell) #65416
  • [c18b0aa54e] - repl: add basic syntax highlighting (Aviv Keller) #64591
  • [58ea88e1d3] - (SEMVER-MINOR) sqlite: add StatementSync.prototype.close() (Guilherme Araújo) #64232
  • [7c61b08aed] - (SEMVER-MINOR) sqlite: add StatementSync.prototype[Symbol.dispose]() (Guilherme Araújo) #64232
  • [4299cd5897] - (SEMVER-MINOR) util: add non-throwing MIMEType.parse (James M Snell) #64965
  • [df48191061] - (SEMVER-MINOR) zlib: add ZipEntry, ZipFile, and ZipBuffer (Philipp Dunkel) #64339
Commits
  • [162257b403] - assert: improve documentation wording (Kamal Rawal) #64953
  • [74234ee30e] - (SEMVER-MINOR) benchmark: add --analyze mode to compare.js (James M Snell) #65416
  • [2cb96dd462] - benchmark: add test-only and mock timers cases (Luan Muniz) #64097
  • [562168f93f] - benchmark: apply highWaterMark in webstreams pipe-to (Matteo Collina) #65138
  • [fbec4eb386] - benchmark: complete the sqlite is-transaction fix (Edy Silva) #65218
  • [d8acfc45f1] - benchmark: add test runner hooks and options (Luan Muniz) #63754
  • [13e7d54f67] - buffer: prevent string write offset overflow (Matteo Collina) #65043
  • [615273deac] - buffer: support aligned allocations (Robert Nagy) #65003
  • [bc6b630e21] - buffer: treat detached ArrayBuffers as empty (Archkon) #64504
  • [ddf9f9d265] - build: target Power 9 and z14 (Richard Lau) #65439
  • [fda8ee894e] - build: use build-ci for benchmark merge-commit rebuild (Yagiz Nizipli) #65362
  • [03692786ef] - build: add simdutf dir to include path in GN build (Shelley Vohr) #65382
  • [3da555a3ed] - build: pass target architecture to small-icu genccode (ulofiai) #65095
  • [ffe1e7cbea] - build: update binary-upload to use correct tarball name (Stewart X Addison) #65282
  • [50174cb94a] - build: deprecate always enabled --enable-static (Chengzhong Wu) #65103
  • [28f662b424] - build: check FIPS option value in node.gyp (Filip Skokan) #64982
  • [29a2ecefeb] - build: handle malformed OpenSSL macros (Filip Skokan) #64982
  • [6deeef1801] - build: enable perfetto updater (Chengzhong Wu) #64966
  • [312f0c6a7e] - build: add host toolset to perfetto_sdk (Ryuhei Shima) #64751
  • [1a4f5e537b] - build,win: add PGO workload scripts (Stefan Stojanovic) #63696
  • [21655dccbc] - child_process: keep SIGWINCH from killing on Win (Kirill Saied) #64510
  • [4232997fa2] - crypto: update root certificates to NSS 3.126 (Node.js GitHub Bot) #65495
  • [f0531f1c87] - (SEMVER-MINOR) crypto: enable SIV and GCM-SIV modes in Cipher/Decipher APIs (Filip Skokan) #63411
  • [109566a2f7] - crypto: fix missing error checks on ASN1_STRING_to_UTF8() (Nora Dossche) #65200
  • [501f81612d] - crypto: improve SubtleCrypto.supports() accuracy (Filip Skokan) #65222
  • [137ff67fd3] - crypto: use available BoringSSL APIs (Filip Skokan) #65423
  • [0e87576ed4] - crypto: remove obsolete BoringSSL shims (Filip Skokan) #65423
  • [af867ce3e4] - crypto: add mgf1Hash for RSA-OAEP (Adam Mcgrath) #65073
  • [66ee4792bf] - crypto: disable non-FIPS WebCrypto paths in FIPS mode (Filip Skokan) #65172
  • [6a142c03e9] - crypto: read WebCrypto inputs through primordials (Filip Skokan) #65115
  • [92e3110462] - crypto: fix disabling FIPS mode (Filip Skokan) #64982
  • [d69bed2f49] - debugger: wait for target startup (Filip Skokan) #65194
  • [5c7c0b8b15] - deps: update zlib to 1.3.2.1-motley-8002e91 (Node.js GitHub Bot) #65316
  • [4cb6b1335e] - deps: update simdjson to 4.6.7 (Node.js GitHub Bot) #65318
  • [a39ad67482] - deps: update googletest to 49495eacfdbda3f4b6ba219923fedbb2e3f99376 (Node.js GitHub Bot) #65317
  • [46762dad57] - deps: cherry-pick libuv/libuv@e640dc9 (ulofiai) #65118
  • [abb7a15a8d] - deps: update perfetto to 57.2 (Node.js GitHub Bot) #65114
  • [ebd8c6ba52] - deps: float ICU-23262 patch for icu78 (René) #64678
  • [f2cc681109] - deps: enable AVX-512 OpenSSL asm with clang (Daniel Lemire) #65136
  • [f45dc92913] - deps: update undici to 8.10.0 (Node.js GitHub Bot) #65155
  • [4160dfdf81] - deps: update googletest to d89aac5f0dd4021198d903d39de16f896726de21 (Node.js GitHub Bot) #65153
  • [631d3aa37b] - deps: update libffi to 3.8.0 (Node.js GitHub Bot) #65154
  • [788976c626] - dgram: don't swallow bind errors when callback is provided (armanmikoyan) #62602
  • [d286423043] - diagnostics_channel: validate before channel activation (Trivikram Kamat) #65313
  • [3f4b80ebb5] - diagnostics_channel: mark TracingChannel as stable (Abdelrahman Awad) #64525
  • [152a326f92] - dns: validate address type in lookupService (Lazizbek Ergashev) #64878
  • [00c71fec93] - dns: validate port range in setServers() (René) #65021
  • [e9327d1422] - dns: fix crash on setServers with port 0 (Lazizbek Ergashev) #65009
  • [9e227ef20d] - doc: update AHAFS reference link (Taeuk Ha) #65481
  • [5fbf6c57af] - doc: fix property names in os.networkInterfaces() example (Jihwan) #65469
  • [13f16d28d1] - doc: fix broken links in cli.md (Donghoon Kang) #65412
  • [0f36ee3755] - doc: remove outdated WASI version fallback (이혜미) #65303
  • [1ad09f712a] - doc: fix broken GYP link in n-api.md (Donghoon Kang) #65413
  • [24cd694237] - doc: document that an empty OPENSSL_CONF skips config loading (Orgad Shaneh) #64949
  • [dae434132e] - doc: fix broken TLS security level example (soreavis) #65391
  • [96b91dc987] - doc: clarify socket destroyed behavior (Dayun) #65395
  • [9d8d27d444] - doc: update outdated nodejs.org guide links (Donghoon Kang) #65394
  • [65f675086e] - doc: clarify that ipv4 mapped to ipv6 are classified as ipv6 (Vedant Kulkarni) #62117
  • [89aba0c311] - doc: clarify how fs.Dirent file types are determined (soreavis) #64532
  • [3ed0492f52] - doc: update security release prepare command (Rafael Gonzaga) #64699
  • [63583c4e75] - doc: clarify copyFile symlink behavior (T) #62941
  • [abfc51f757] - doc: document setRawMode write access on Windows (Erik Demaine) #63856
  • [4a784cb3e6] - doc: document per-architecture fast FFI argument limits (Seongeun Lee) #65207
  • [262f966155] - doc: add missing return types in fs.md (Chaseton Collins) #65307
  • [695cd896a7] - doc: add missing return types in buffer.md (Yuya Inoue) #65308
  • [676a1228cd] - doc: fix lint clean command (greenhead) #65274
  • [9ea318d4e3] - doc: fix typo in onboarding.md (서울민트초코) #65295
  • [3b6a918ab4] - doc: add missing added: tags to fs.lchmod (Lazizbek Ergashev) #65283
  • [a77b1e61df] - doc: fix SQLite changeset constant descriptions (greenhead) #65265
  • [ab50ae60e4] - doc: document open pull request limit (Matteo Collina) #65250
  • [e2f4ea03a3] - doc: document http2 header constants (Harjoth Khara) #64548
  • [5b5509d0d3] - doc: create ai-guidelines and include to CONTRIBUTING (Rafael Gonzaga) #62105
  • [c63e873073] - doc: fix broken fs.BigIntStats link in vfs.md (greenhead) #65045
  • [d6059e84c0] - doc: update synopsis (Augustin Mauroy) #65171
  • [43f1dc03e7] - doc: document close() error when in a sqlite callback (Trivikram Kamat) #65090
  • [8f5f48ad96] - doc: fix broken internal links (greenhead) #64901
  • [5b64b37739] - doc: report proper return type on urlPattern.test (Brian Muenzenmeyer) #64831
  • [9633bb0f29] - doc: fix permission documentation examples (greenhead) #64897
  • [e52e573fd7] - doc: document sqlite parameter binding (Guilherme Araújo) #65089
  • [fa52f11d3b] - doc: finalize statements in sqlite examples (Guilherme Araújo) #65088
  • [0157c45012] - doc: document quic stopSending() and resetStream() (Issac) #64888
  • [003a913799] - doc: clarify sqlite bare parameter default (Sumit Kumar Das) #62009
  • [c5588d71ad] - doc: remove usage of util.inherits (Augustin Mauroy) #60817
  • [673db40fbf] - doc: fix grammar in worker_threads.md (이혜미) #64913
  • [ee5f72cf16] - doc: fix broken link (Antoine du Hamel) #65078
  • [0450ab6c6a] - doc: update node.1 to fix linter (Antoine du Hamel) #65053
  • [9a256b0693] - doc: clarify OpenSSL FIPS configuration (Filip Skokan) #64982
  • [c321752dcb] - doc: remove --expose-gc flag from CLI documentation (Dario Piotrowicz) #58909
  • [0cf79931bb] - doc: document ArrayBuffer support in pbkd2Sync (kyungrae2002) #64976
  • [3b8a0bacaa] - doc: correct default highWaterMark values (Yilong Li) #64617
  • [be313012e4] - doc: use ffi.suffix in permission example (agape1225) #64914
  • [4a1c9a7ee0] - esm: avoid super-linear data URL MIME regex (Sumit Kumar Das) #61951
  • [b1770bc196] - esm: only register text format when enabled (Efe Karasakal) #64992
  • [f48927fe5b] - esm: fix wasm import name in error message (이혜미) #64950
  • [8d48adf688] - events: inline iterationCondition hybrid dispatch closure (Szymon Łągiewka) #64473
  • [b827c0047e] - events: inline createEvent hybrid dispatch closure (Szymon Łągiewka) #64473
  • [7670c81d99] - ffi: prefer canonical type names (Trivikram Kamat) #65417
  • [1fe7a1c33d] - ffi: validate the value passed to the float setters (Soul Lee) #65342
  • [537feecd0b] - ffi: reject direct SharedArrayBuffer pointers (Trivikram Kamat) #65233
  • [0002f0a718] - ffi: remove dead null check in callback arguments (Trivikram Kamat) #64998
  • [9024ec27b6] - ffi: keep FFI functions non-constructible (Trivikram Kamat) #65184
  • [9b4f349b01] - ffi: refresh cached string buffers on every call (Trivikram Kamat) #65051
  • [eacd65e9c2] - ffi: reject detached ArrayBufferViews (Trivikram Kamat) #65086
  • [be2ab89730] - ffi: reject detached ArrayBuffers as pointers (Trivikram Kamat) #65083
  • [6f9e0846ea] - ffi: validate fast pointer BigInt argument ranges (Trivikram Kamat) #65032
  • [3e6688c5e3] - ffi: reuse the callable created per symbol (Trivikram Kamat) #64971
  • [8b0bdd931c] - ffi: shrink trampoline placement probe window (Trivikram Kamat) #64969
  • [9c282c4532] - ffi: accept pointer BigInts in multi-argument fast calls (Trivikram Kamat) #64964
  • [b98294b57d] - ffi: support SharedArrayBuffer in getRawPointer (Junsoo Ha) #64864
  • [5cac7c2c55] - ffi: reuse libffi call plans (Yilong Li) #64958
  • [262f0ec82a] - fs: stop stat()ing every entry in recursive readdir (Shelley Vohr) #65487
  • [e3ae912e9a] - fs: use sized reads for large files in readFileUtf8 (Shelley Vohr) #65328
  • [bc1e19b4b7] - fs: fix realpath of namespaced drive paths (Jason Zhang) #65378
  • [6673ebadf2] - fs: abort in-flight stat operations (Mert Can Altin) #63143
  • [74dcdbb5f1] - fs: fix glob early return skipping sibling entries (Srinu desetti) #64895
  • [6305a744df] - fs: pass symlink type in cp when filter is provided (Jerry Zhao) #62654
  • [c5cb6bc7e2] - fs: allocate FSReqPromise stat arrays lazily (Samuel Attard) #63886
  • [992af05719] - fs: fix out-of-bounds write in mkdtemp for long prefixes (Hierax_Umbra) #64770
  • [2de845b2dd] - fs: treat std::errc::permission_denied as EPERM error (Kirill Saied) #64698
  • [77fedbd350] - fs: read small files in one thread pool round trip (Shelley Vohr) #65327
  • [810929b6dd] - Revert "fs: fix close listener leak in FileHandle streams" (Mike McCready) #65387
  • [8873b91fce] - fs: fix close listener leak in FileHandle streams (Y1D7NG) #64227
  • [656cfaeb2d] - fs: add windowsHandle option to file streams (Kirill Saied) #63851
  • [c2c31d69fd] - http: improve performance with known-length calls to end() (Tim Perry) #65466
  • [7e9204f4b3] - http: use intrusive lists in ConnectionsList (Matteo Collina) #65296
  • [98e6272c70] - http: cache maxHeaderPairs per header section (GetThatCookie) #64988
  • [6c3516f179] - http: fix keylog listener setup on existing agent sockets (Shani Singh) #65066
  • [dad9548fbc] - http: emit drain on socket takeover and avoid stale HWM reuse (Naman Trivedi) #64991
  • [563cab119b] - http2: avoid uaf while receiving and sending rst_stream (esgor) #64166
  • [099801641b] - inspector: avoid calling into JS from V8 interrupts (Joyee Cheung) #65028
  • [b71d5de0b8] - lib: use bracket notation instead of startsWith/endsWith for single char (Taejin Kim) #61500
  • [e8e2abcc8d] - lib: load fewer builtins when bootstrapping without a snapshot (Shelley Vohr) #65329
  • [3619dc0601] - lib: fix ERR_INVALID_ARG_TYPE with --enable-source-maps (June) #63215
  • [ad7c67026b] - lib: harden webidl dictionary member reads (Filip Skokan) #65115
  • [b5182f0a1c] - lib: use validateArray for array arguments (greenhead) #64959
  • [7f7df06821] - lib: add and test [EnforceRange] in webcrypto dictionaries (Filip Skokan) #65091
  • [753033c110] - (SEMVER-MINOR) lib,src: improve histogram implementation (James M Snell) #65024
  • [8d39d0d660] - meta: add a root-level AGENTS.md (James M Snell) #65493
  • [3770f9baea] - meta: move targos to emeritus (Michaël Zasso) #65393
  • [a9b31dfe30] - meta: add unified http api initiative (James M Snell) #65139
  • [6bffc306aa] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #65182
  • [4abd1c8100] - meta: add support for alpha prerelease tag (Antoine du Hamel) #63135
  • [132c578e97] - meta: add Aviv Keller to .mailmap (Aviv Keller) #65048
  • [7aff78d231] - meta: update sccache to 0.17.0 (René) #64985
  • [97a437e7ea] - module: add a read-only mode to the compile cache (Shelley Vohr) #65302
  • [5821362819] - module: do not split a portable compile cache by uid (Shelley Vohr) #65293
  • [eb5d66e856] - module: report unreadable package.json (Paul Bouchon) #65223
  • [43757d07c1] - module: cache nearest parent package.json per directory (Shelley Vohr) #65326
  • [d7805e00dc] - module: fix --check on ambiguous ESM files (Paul Bouchon) #65203
  • [646221a495] - net: handle undefined parent in _unrefTimer and _destroy (Shivay-98) #64644
  • [3d7d277493] - (SEMVER-MINOR) net: improve performance of net.BlockList (James M Snell) #64974
  • [9e8e9080fd] - (SEMVER-MINOR) perf_hooks: add statistical hypothesis testing to histogram (James M Snell) #65416
  • [01a8ae0ce6] - permission: guard UDP handle adoption (Rafael Gonzaga) #65358
  • [ac3c412aaf] - permission: enforce addon permission in GetLinkedBinding (Rafael Gonzaga) #65432
  • [8765afd4c2] - process: validate resource stats array offsets (Archkon) #65098
  • [d0447c93f6] - quic: changes for nghttp3_conn_close_stream2 (Marten Richter) #64574
  • [91393898b5] - quic: mark drain promise handled (James M Snell) #65319
  • [5c9576bf50] - quic: reset rejected HTTP/3 request streams with H3_REQUEST_REJECTED (trivenay) #65442
  • [ec956f2abc] - quic: write desired size needs update on maxstream (Marten Richter) #64768
  • [41c510803d] - quic: do not destroy incoming streams that have a consumer (trivenay) #65335
  • [009e376581] - quic: fix wake up blob (Marten Richter) #64044
  • [4674a10368] - quic: convert incoming :status header to number (Hallison Pereira Melo) #63589
  • [5953165f53] - quic: fix infinite loop if STOP_SENDING received on a buffering stream (Tim Perry) #64715
  • [bb499c312e] - repl: keep entries added while history file is loading (Mhayk Whandson) #64513
  • [825fcfe4d5] - repl: add benchmarks (Aviv Keller) #64590
  • [c18b0aa54e] - repl: add basic syntax highlighting (Aviv Keller) #64591
  • [f32a8631ad] - sea: avoid dangling CLI option pointers (Archkon) #64755
  • [3126ce5779] - sea: handle NUL bytes in asset keys (Archkon) #64773
  • [64a8843ff2] - sea: reject trailing content in config JSON (Archkon) #64774
  • [1d9dd252f1] - sea: reject malformed --node-options values (Archkon) #64803
  • [6ec735c910] - sqlite: reject reentry while binding parameters (Trevor Burnham) #65294
  • [60cb384c15] - sqlite: remove unused column name helper (Trivikram Kamat) #65401
  • [fce6754a83] - sqlite: reject busy statement finalization in authorizer (Trivikram Kamat) #65369
  • [e2f952f2ff] - sqlite: prevent reentrant session.close() (Trivikram Kamat) #65349
  • [0e8af3378a] - sqlite: reuse cached column names in statement all() and get() (Edy Silva) #65276
  • [e6bfec91be] - sqlite: validate StatementSync.run() integers (Trivikram Kamat) #65178
  • [bbb1226dbe] - sqlite: add diagnostic channel (Guilherme Araújo) #62241
  • [6302168de8] - sqlite: add stmt persistent flag (Guilherme Araújo) #62757
  • [2989311d81] - sqlite: reject connection access from authorizer callbacks (Trevor Burnham) #65156
  • [72c37b133e] - sqlite: expose prepared statement statistics (Edy Silva) #64541
  • [3e50a2f1e9] - sqlite: manage sqlite3_stmt lifetime with RAII (Guilherme Araújo) #62419
  • [3ab7e72555] - sqlite: check sqlite3_step() and sqlite3_reset() results (semimikoh) #63319
  • [5e387ce979] - sqlite: reject statement-less SQL in prepare() (Trevor Burnham) #65157
  • [83169e58f3] - sqlite: reject statement-less SQL in SQLTagStore (Trevor Burnham) #65157
  • [7f31f6226e] - sqlite: isolate applyChangeset filter errors (Trivikram Kamat) #64823
  • [c89878c3c8] - sqlite: reject deserialize() while in a callback (Trivikram Kamat) #64796
  • [5a852b22d4] - sqlite: check null returns from sqlite value functions (Nora Dossche) #63288
  • [5cb78ed300] - sqlite: validate maxSize argument in createTagStore() (Anshika Jain) #63792
  • [ca885876f6] - sqlite: refactor error helpers and user function pointers (Ali Hassan) #62794
  • [06b1758dcd] - sqlite: reject non-positive backup rates (Trivikram Kamat) #64893
  • [ce0ca47023] - sqlite: clear SQLTagStore bindings (Matteo Collina) #65041
  • [49fb028714] - sqlite: bind Boolean (mike-git374) #62001
  • [09d0da99e9] - sqlite: fix undefined behaviour in Session::Changeset() (Nora Dossche) #63637
  • [58ea88e1d3] - (SEMVER-MINOR) sqlite: add StatementSync.prototype.close() (Guilherme Araújo) #64232
  • [7c61b08aed] - (SEMVER-MINOR) sqlite: add StatementSync.prototype[Symbol.dispose]() (Guilherme Araújo) #64232
  • [9167ebd32b] - sqlite: bind ArrayBuffer (mike-git374) #62061
  • [5da6eaa8af] - sqlite: prevent database close during callbacks (Matteo Collina) #64743
  • [29d794bc84] - src: fix heap value deduplication in embedder graph (Ilyas Shabi) #64801
  • [b405e9b039] - src: fix out-of-bounds write when transcoding odd-length ucs2 (nashit hayat) #64512
  • [101a215472] - src: use simdutf for two-byte utf8 conversion (Mert Can Altin) #62248
  • [340b98346f] - src: run same-priority platform tasks in posting order (Shelley Vohr) #65353
  • [83a7949c18] - src: define O_SYNC, O_DSYNC and O_DIRECT on Windows (Kirill Saied) #64707
  • [32bb197f2a] - src: use simdutf for two-byte strings in UTF-8 writes (Shelley Vohr) #65324
  • [613be79cf4] - src: add v8::Local specialization for MaybeStackBuffer (James M Snell) #65159
  • [922d47cbd7] - src: escape Windows environment variables in task runner (Antoine du Hamel) #65217
  • [3a47f1f282] - src: apply minor namespace format tweak in permissions (James M Snell) #65158
  • [981cfa537d] - src: simplify permissions with BooleanPermissions (James M Snell) #65158
  • [5954b13f88] - src: simplify includes in permissions (James M Snell) #65158
  • [d4ced88c09] - src: apply a modest performance perf to permissions (James M Snell) #65158
  • [efb649ec26] - src: make permission storage a bit more efficient (James M Snell) #65158
  • [521aaf10fc] - src: apply multiple general cleanups to permissions (James M Snell) #65158
  • [ac920e0d2b] - src: simplify c++ diagnostics channel API (James M Snell) #65158
  • [ec8fe275a1] - src: make minor cleanup to permission checks (James M Snell) #65158
  • [968bdd0135] - src: use DictionaryTemplate for permission diag channel message (James M Snell) #65158
  • [f77aa2f703] - src: cache permission strings (James M Snell) #65158
  • [4018f3a776] - src: shave about 20 bytes off each TLSWrap instance (James M Snell) #65144
  • [b7a23426d9] - src: add SetAbortHandler (Max H Fisher) #64684
  • [3cfe19489c] - src: use concepts where appropriate (James M Snell) #65148
  • [d8a0f288ab] - src: match cmd.exe case-insensitively in task runner (Archkon) #64907
  • [262d88e6c2] - src: reuse cached env strings in remaining files (Seongeun Lee) #65039
  • [ad35fe97f0] - src: expose Windows-only fs open flags (Kirill Saied) #64775
  • [8c4531bbc9] - src: report why --enable-fips failed (Filip Skokan) #64979
  • [a293dbf0e1] - src: update repeated use strings to env (James M Snell) #64760
  • [044402cf0e] - src: use UTF-8 for task runner filesystem paths (Archkon) #64868
  • [5b7d02e401] - stream: normalize fused stateless transform results (Trivikram Kamat) #65367
  • [1d6ec2ddc5] - stream: encode whole chunks in TextEncoderStream (Matteo Collina) #65414
  • [0afda47ca4] - stream: prevent share from eagerly draining source (Trivikram Kamat) #65338
  • [dc51c7926e] - stream: drain pending writes before broadcast end (Trivikram Kamat) #65334
  • [a77f9f7a32] - stream: reuse unexposed managed read buffers (GetThatCookie) #64990
  • [c42fbcc0d1] - stream: avoid duplicated endReadableNT scheduling (Matteo Collina) #65310
  • [9ec9383d1d] - stream: decouple transform backpressure changes (Matteo Collina) #65143
  • [a9dc50d275] - stream: reject pull on signal abort during flush (Trivikram Kamat) #65346
  • [815424db74] - stream: avoid leaking consumers on signal failure (Trivikram Kamat) #65299
  • [6a2e0561e8] - stream: use validateObject for zlib/iter params (greenhead) #65015
  • [4f6f2cfffa] - stream: use validateNumber for BYOB reader options.min (greenhead) #65014
  • [4d297428e6] - stream: consolidate non-op algorithm callbacks (Matteo Collina) #65138
  • [f7e0c81be4] - stream: cut promise churn in webstreams hot paths (Matteo Collina) #65138
  • [5edffb544f] - stream: speed up async iteration of Readable (Matteo Collina) #64447
  • [0876a29bb6] - stream: preserve falsy cancellation reasons (Trivikram Kamat) #64705
  • [374f7e214d] - stream: use validateBuffer for BYOB reader view (greenhead) #65046
  • [6bd15b2ac9] - stream: fix recursive WritableStream abort (Jeong SeokChan) #64825
  • [f33dba704d] - string_decoder: decode UTF-8 via StringBytes::Encode (Shelley Vohr) #65324
  • [6409983a6c] - test: update WPT for WebCryptoAPI to e235e089b4 (Node.js GitHub Bot) #65478
  • [01cb4f99a0] - test: convert forEach to for of test-messageevent-brandcheck file (Nachiketa Pathak) #65279
  • [359369e24e] - test: use spawnSyncAndAssert in windowsHide test (Junsoo Ha) #65351
  • [9304dee833] - test: remove test-debugger-run-after-quit-restart as flaky on macOS (Yuya Inoue) #65424
  • [30f1a19eec] - test: simplify test-timers-interval-promisified.js (Donghoon Kang) #65322
  • [acaf986ad5] - test: add Headers coverage and benchmark (Yagiz Nizipli) #65365
  • [b6852e2b96] - test: deflake test-net-listen-ipv6only (sangwook) #64173
  • [235a0baf8b] - test: use common/child_process spawnSync helpers (Junsoo Ha) #65377
  • [29f010fbb0] - test: fix Linux debug skip in SEA test guard (구현우) #63751
  • [33d7b4c6b3] - test: add closed-library assertions for getFunctions and getSymbols (Anshika Jain) #63769
  • [24a76e18ec] - test: avoid timer race in event loop delay test (Trivikram Kamat) #64728
  • [fdc1e78595] - test: enforce exit code in test-http-server-stale-close (Antoine du Hamel) #65198
  • [c644f2e07c] - test: convert test-async-local-storage-bind to async loop (freida-code) #65270
  • [1d5e5e8f43] - test: replace forEach() with for...of in parallel tests (Phillip Markert) #65272
  • [9346570fed] - test: convert forEach to for in test-constant.js file (NIxxy25) #65271
  • [7af0a96090] - test: use for-of instead of forEach (Felix P.) #65268
  • [63e6f2edc3] - test: wait for FFI background optimization (Trivikram Kamat) #65300
  • [bca3367583] - test: add a simple test for import defer of a CJS module (Maya Lekova) #64694
  • [00b687bc4a] - test: cover ZIP fd lifecycle and add rollback (Philipp Dunkel) #65016
  • [31742f2f42] - test: cover ZIP header-confusion and DoS guards (Philipp Dunkel) #65016
  • [87ee7bff38] - test: cover realpathSync resolving symlinks after a FIFO stat (Hendrik Liebau) #65113
  • [fd7e904433] - test: update tests to run with OpenSSL >= 3.0 FIPS mode (Filip Skokan) #64960
  • [219495fe2c] - test: account for [EnforceRange] in test-webcrypto-prototype-pollution (Filip Skokan) #65173
  • [bf86fab458] - test: add permission fast api test (James M Snell) #65158
  • [cc19107e5d] - test: update WPT for WebCryptoAPI to 4c2fd05ed5 (Node.js GitHub Bot) #65150
  • [69e4fabb29] - test: update WPT for urlpattern to 4832db4761 (Node.js GitHub Bot) #65151
  • [b1aa78a57e] - test: fix hidden error in test-http-server-stale-close.js (Meghan Denny) #59357
  • [59d7e22a12] - test: avoid deadlock issue in pipeline http2 tests to fix flakiness (Tim Perry) #65079
  • [7074ae30fa] - test: allow half-open CONNECT tunnel sockets (Trivikram Kamat) #64973
  • [82b2d9c08d] - test: update passphrases to comply with the next OpenSSL FIPS mode (Filip Skokan) #65077
  • [7f3a42035c] - test: use libuv clock for immediate queue test (Trivikram Kamat) #64889
  • [7ddd853d8c] - test: increase timeout in probe-failure-hang-during-evaluate (Joyee Cheung) #64719
  • [28cad47cef] - test: update WPT for WebCryptoAPI to 82c3d9069c (Node.js GitHub Bot) #64977
  • [74a3e91bb7] - test: prefer in-memory databases in sqlite tests (Paul Bouchon) #64701
  • [7fc8a3ad8c] - test,doc: cover and document multi-byte offset/size in randomFill (kyungrae2002) #64834
  • [4de7e63883] - test_runner: match dotfiles in default coverage exclude (semimikoh) #63401
  • [79c39c217d] - test_runner: print coverage and diagnostic info with dot reporter (mag123c) #61423
  • [cce803b174] - test_runner: use run options with isolation="none" (Sylvester Keil) #62269
  • [797ef40d23] - test_runner: mock dual-package with conditional exports (Maruthan G) #62943
  • [1ad7ca310a] - test_runner: restore directory search for --test (Paul Bouchon) #64637
  • [400d598b3c] - test_runner: add classname hierarchy for JUnit reporter (mag123c) #60220
  • [9572a0b15f] - test_runner: fix junit report on empty diagnostic (Lazizbek Ergashev) #65357
  • [e3fda695fe] - test_runner: extend tag filter with boolean expression DSL (Chemi Atlow) #63054
  • [4e06739c7b] - test_runner: do not tag-filter test file wrappers (Chemi Atlow) #65170
  • [e73f74738d] - test_runner: fix env option validation (Jihwan) #64865
  • [2a0b1ec4cc] - tls: throw on invalid ALPNProtocols instead of aborting (Sankalp Thakur) #65076
  • [15da4a190b] - tls: fix authorized state on no-cert TLS1.3 client cert resumption (Tim Perry) #64677
  • [1864175435] - tls: don't trigger SNICallback or OCSPRequest from the TLS lib stack (Tim Perry) #64827
  • [8f4ee7eda5] - tls: drop hand-rolled TLS client hello parser (Tim Perry) #64827
  • [a457631496] - tools: improve commit queue failure comment (Filip Skokan) #65433
  • [78175c68f8] - tools: improve nix-changes coverage (Antoine du Hamel) #65403
  • [6f0c08bf80] - tools: refactor shell.nix pkcs11 integration to its own section (Antoine du Hamel) #65404
  • [35b18b4455] - tools: fix max body length handler in create-release-proposal.sh (Antoine du Hamel) #65455
  • [88d5f644a2] - tools: bump brace-expansion in /tools/clang-format (dependabot[bot]) #64984
  • [41edd2f214] - tools: make env variables consistent in cron jobs (Antoine du Hamel) #65168
  • [7c09bd5ece] - tools: fix man-page generation on Windows (James Ross) #64886
  • [1a20d27118] - tools: bump undici from 6.27.0 to 6.28.0 in /tools/doc (dependabot[bot]) #65011
  • [ebbe4af869] - tools: fix linter when permittedInsecurePackages is empty (Antoine du Hamel) #65226
  • [17d2b067bf] - tools: update BoringSSL pin on v26.x (Filip Skokan) #65483
  • [be4e7de04c] - tools: only include fast-tracked and old enough PRs in CQ (Antoine du Hamel) #65197
  • [53d52731c9] - tools: fix quote escaping in update-nixpkgs-pin.sh (Antoine du Hamel) #65166
  • [40b1b18839] - tools: remove skip logic in commit-queue.sh (Antoine du Hamel) #65162
  • [5506f77924] - tools: bump js-yaml from 4.2.0 to 4.3.1 in /tools/lint-md (dependabot[bot]) #65129
  • [fc038a0ef5] - tools: bump js-yaml from 4.2.0 to 4.3.1 in /tools/eslint (dependabot[bot]) #65130
  • [10b2c8a873] - tools: fix GITHUB_TOKEN permissions for CQ workflow (Antoine du Hamel) #65192
  • [73de450845] - tools: use the read-only token when filtering PRs in CQ (Antoine du Hamel) #65169
  • [31c1bcb627] - tools: delay removal of commit-queue label (Antoine du Hamel) #65101
  • [89d3905595] - tools: move ncu config to global for commit queue (Filip Skokan) #65132
  • [aa3b598e2e] - tools: prefilter commit queue metadata (Filip Skokan) #64343
  • [4f2c634258] - tools: lazy-abort failed PR merges in CQ (Antoine du Hamel) #65004
  • [8657497521] - tools: fix pkcs11-store-test check (Antoine du Hamel) #65023
  • [0e1a99ac24] - tools: add an OpenSSL FIPS build to test-shared.yml (Filip Skokan) #64960
  • [b6fa9c1819] - tools: sync mk-ca-bundle.pl with curl (Archkon) #64753
  • [f0140d7ebd] - tools: store "default" OpenSSL version in openssl-matrix.nix (Antoine du Hamel) #64962
  • [4c8d8afa99] - tools: remove true from branch name for auto-update automation (Antoine du Hamel) #64961
  • [2dd7d4c56f] - tools: add ./tools/nix/pkcs11.nix to nix-changes.yml (Filip Skokan) #64967
  • [cf395004ed] - tty: add raw-vt and io raw modes (Samuel Williams) #64140
  • [a5e5c7f756] - typings: add signal_wrap internal binding types (Seongeun Lee) #65229
  • [5219e53dd6] - typings: add diagnostics_channel typings (Seongeun Lee) #65227
  • [215223dff1] - typings: add watchdog internal binding types (Seongeun Lee) #65228
  • [eb095a94bd] - typings: add internal_only_v8 binding typeis (Donghoon Kang) #65071
  • [9fc811a0f2] - typings: add credentials internal binding types (Donghoon Kang) #65036
  • [f032c22430] - url: skip unused href reuse comparison (Yagiz Nizipli) #65361
  • [2a64032141] - url: speed up WHATWG URL parsing (Yagiz Nizipli) #65361
  • [c4dbe14ec6] - url: speed up URLSearchParams (Yagiz Nizipli) #65363
  • [001c37c0a2] - url: bounds-check short Windows file URL paths (Archkon) #64788
  • [1a63416b1a] - url: handle unparsable serialized URLs in setters (Matteo Collina) #64651
  • [cb4b89c018] - util: allow single-line format when break length is infinite (Hamid Reza Ghavami) #64238
  • [f644853680] - util: fix OSC 8 hyperlink stripping in stripVTControlCharacters (Dushyant Singh Hada) #64319
  • [eb1ebbb39d] - util: fix formatting of functions returned from getters (Richard Gibson) #64839
  • [f373dab724] - util: use more primordials in comparisons.js (Ayoub Mabrouk) #61198
  • [6ca9c1e078] - util: preserve function names without source map names (Hiroki Osame) #65108
  • [4299cd5897] - (SEMVER-MINOR) util: add non-throwing MIMEType.parse (James M Snell) #64965
  • [1aafd19813] - zlib: roll back a failed add() directory rewrite (Philipp Dunkel) #65016
  • [d29cc0926a] - zlib: let a ZipFile read finish before close() (Philipp Dunkel) #65016
  • [2bda6db916] - zlib: do not hang archiving a FIFO or device (Philipp Dunkel) #65016
  • [55b04957c9] - zlib: reject local/central ZIP header mismatch (Philipp Dunkel) #65016
  • [575260d3b4] - zlib: validate central directory record count (Matteo Collina) #65002
  • [8e848d9be3] - zlib: reject ambiguous ZIP archive ends (Matteo Collina) #65007
  • [df48191061] - (SEMVER-MINOR) zlib: add ZipEntry, ZipFile, and ZipBuffer (Philipp Dunkel) #64339
  • [ee7bf09090] - zlib: validate pledgedSrcSize for sync zstd (Archkon) #64601

View originalPermalink

v26.7.02026-08-05, Version 26.7.0 (Current), @aduh95
Notable Changes
  • [58717685a1] - (SEMVER-MINOR) crypto: support loading private keys through STORE loaders (Filip Skokan) #63949
  • [44b940ee8c] - crypto: update root certificates to NSS 3.125 (Node.js GitHub Bot) #64746
  • [c1e4f7365e] - (SEMVER-MINOR) lib: add perfetto support (Chengzhong Wu) #64565
  • [11c2f9c642] - (SEMVER-MINOR) module: implement Symbol.dispose in ModuleHooks (Remco Haszing) #63928
  • [a646319f61] - (SEMVER-MINOR) test_runner: add support for --test-coverage-include-all (avivkeller) #64830
Commits
  • [a2d3f891d3] - async_hooks: use validateBoolean for trackPromises (Soul Lee) #64731
  • [d7266cdd99] - benchmark: fix calibrate-n option handling (Luan Muniz) #64146
  • [2e64293e3f] - buffer: use Clamp conversion in Blob slice (Donghoon Kang) #64739
  • [5fda0958bd] - buffer: validate copyArrayBuffer offsets against buffer length (Ilia Alshanetsky) #63904
  • [5298db40f9] - build: run perfetto build and test on GHA (Chengzhong Wu) #64721
  • [e3eac7cef9] - build: fix v8_use_perfetto source scraping (Chengzhong Wu) #64721
  • [ab5f076d7f] - build: bump rustc requirement to >=1.86 (Renegade334) #64543
  • [df608e061f] - (SEMVER-MINOR) build: perfetto-sdk (Chengzhong Wu) #64565
  • [74928adc46] - build,tools: fix shared library cross-compile (Kirill Saied) #63963
  • [58717685a1] - (SEMVER-MINOR) crypto: support loading private keys through STORE loaders (Filip Skokan) #63949
  • [58d13b6f3d] - crypto: preserve OpenSSL errors from KDF failures (Filip Skokan) #64776
  • [478a719cb5] - crypto: fix Argon2 bypassing FIPS mode (Filip Skokan) #64776
  • [44b940ee8c] - crypto: update root certificates to NSS 3.125 (Node.js GitHub Bot) #64746
  • [fde85237c7] - crypto: clarify missing cipher error (Filip Skokan) #64852
  • [c604d8846d] - crypto: reuse X509 issuer result (Filip Skokan) #64852
  • [c68c7d0112] - crypto: validate key generation options (Filip Skokan) #64852
  • [c36bb1d017] - crypto: fix Argon2 validation errors (Filip Skokan) #64852
  • [f61408bb27] - crypto: handle XOF output allocation failure (Filip Skokan) #64851
  • [2b4053d046] - crypto: initialize KeyObjectData mutex eagerly (Filip Skokan) #64851
  • [4b7b2adf44] - crypto: handle DH operation failures (Filip Skokan) #64851
  • [12170c3753] - crypto: use user-facing error for output encoding changes (Archkon) #64692
  • [474f06d550] - debugger: preserve overlapping CDP request state (Trivikram Kamat) #64467
  • [718cbe9497] - deps: upgrade npm to 11.19.0 (npm team) #64883
  • [657c6154b3] - deps: update ngtcp2 to 1.25.0 (Node.js GitHub Bot) #64944
  • [75a1fbeff9] - deps: update nghttp3 to 1.18.0 (Node.js GitHub Bot) #64943
  • [07d7cb7cd8] - deps: update minimatch to 10.2.6 (Node.js GitHub Bot) #64945
  • [f7d56359f1] - deps: update simdjson to 4.6.6 (Node.js GitHub Bot) #64942
  • [8b06457cfb] - deps: update acorn to 8.18.0 (Node.js GitHub Bot) #64941
  • [5919d01525] - deps: update googletest to 1b6f64d659944658a4c685b7bd9f04c1c3b8a39b (Node.js GitHub Bot) #64940
  • [4a87ad6cff] - deps: update nghttp2 to 1.70.0 (Node.js GitHub Bot) #64939
  • [c96d76a7c8] - deps: update zlib to 1.3.2.1-motley-42c2f19 (Node.js GitHub Bot) #64744
  • [2b59984c0f] - deps: V8: backport 5177b10891e6 (avivkeller) #64631
  • [b839af91da] - deps: update ada to 4.0.0 (Node.js GitHub Bot) #64790
  • [70dedef942] - deps: update sqlite to 3.53.4 (Node.js GitHub Bot) #64745
  • [7bc4c171f5] - deps: update Rust crates for V8 14.6.202.34-node.26 (Renegade334) #64543
  • [308c6b2ac3] - deps: V8: backport 7d9b7e03141d (Manish Goregaokar) #64543
  • [8eeae28e88] - deps: V8: backport c4d06ba586f3 (liujiahui) #63731
  • [bbd6fc58c4] - diagnostics_channel: grow native channel storage (Stephen Belanger) #64497
  • [ce8b292955] - doc: fix grammar and punctuation in dgram documentation (Kamal Rawal) #64957
  • [1a413a60cf] - doc: fix grammar and editorial issues in addons documentation (Kamal Rawal) #64952
  • [63fbd59e64] - doc: formalize fn/name as part of TestOptions API (Christopher Hiller) #64946
  • [b263b0bca1] - doc: remove references to ca/crl as per-context QuicSession options (René) #64769
  • [f37de14b27] - doc: fix typo in maintaining-dependencies.md (greenhead) #64896
  • [16cb77cdc8] - doc: add RafaelGSS as last security release stewards (Rafael Gonzaga) #64843
  • [335c28cd17] - doc: fix typos in documentation (greenhead) #64900
  • [d4bed8ca39] - doc: fix missing references in doc type map (Tim Perry) #64872
  • [e71d09d5f1] - doc: improve TestContext hook descriptions (Kamal Rawal) #64899
  • [7089bd9ae4] - doc: add missing float32/float64 FFI type names (Soul Lee) #64874
  • [8d3ae0830e] - doc: document stream.isDestroyed() (YspritanHyzygy) #64789
  • [a757e62af7] - doc: add contributing detail for git Signed-off-by trailer (Mike McCready) #64862
  • [3e840f43ed] - doc: mark config-file as release candidate (Marco Ippolito) #64516
  • [70cd5df810] - doc: fix duplicated word in test snapshot docs (Kamal Rawal) #64837
  • [d5f36c7adc] - doc: remove obsolete cctest node.gyp instructions (Soul Lee) #64814
  • [a0bf29ea09] - doc: report proper return type on url.format (Brian Muenzenmeyer) #64806
  • [e655e42085] - doc: use ffi.suffix for library paths in examples (Junsoo Ha) #64805
  • [e0f0830dbc] - doc: document --permission-audit audit mode behavior (Adrián Estrada) #64791
  • [efbede6de0] - doc: clarify tlsSocket.authorized on resumption (soreavis) #64584
  • [db95655c4a] - doc: stabilize --disable-warning (Jean Michelet) #64742
  • [a8367200be] - doc: add MDN links for explicit resource management in fs (lluisemper) #59557
  • [1c09165c2e] - doc: mention constructor check in deepStrictEqual (Sumit Kumar Das) #62010
  • [29709324e0] - doc: update technical priorities (Jacob Smith) #64505
  • [522a28e648] - doc: deprecation add more codemod (Augustin Mauroy) #63175
  • [c40aaa6539] - doc: run license-builder (Node.js GitHub Bot) #63918
  • [428e9bc50f] - ffi: fix crash in refCallback and unrefCallback (Trivikram Kamat) #64881
  • [33912103e7] - ffi: reject fast calls after library close (Trivikram Kamat) #64860
  • [b348ed7f92] - ffi: validate fast 32-bit integer argument ranges (Trivikram Kamat) #64691
  • [48f4cfb480] - ffi: fix optimized buffer conversions (Trivikram Kamat) #64639
  • [109ffcd4f3] - ffi: preserve link register in ppc64 trampoline (Trivikram Kamat) #64792
  • [aa3f168b31] - ffi: preserve strings during reentrant calls (Trivikram Kamat) #64551
  • [ca60942f38] - ffi: preserve uint8 semantics for bool fast calls (Trivikram Kamat) #64527
  • [0fb1d2bd65] - ffi: validate fast integer argument ranges (Trivikram Kamat) #64614
  • [b250b40b30] - fs: key glob matcher cache by platform (Archkon) #64571
  • [e26891ec6a] - http: fix writableFinished and 'finish' after write errors (Tim Perry) #64847
  • [dfc192fdfb] - http: avoid aborting IncomingMessage signal on normal close (Archkon) #64392
  • [6794441c85] - http: guard invalid timeout values in checkConnections (Efe Karasakal) #64506
  • [6879aa4aa8] - http: propagate highWaterMark to ClientRequest OutgoingMessage (trivenay) #64653
  • [72448a82f4] - http2: avoid copying the options in respond() (Matteo Collina) #64265
  • [f6692da576] - http2: avoid per-write closures in kWriteGeneric (Matteo Collina) #64265
  • [3ed37153f8] - http2: reduce per-request allocations (Matteo Collina) #64265
  • [bce92debba] - Revert "http2: avoid per-write closures in kWriteGeneric" (Antoine du Hamel) #64663
  • [b5d5dd74a1] - Revert "http2: avoid copying the options in respond()" (Antoine du Hamel) #64663
  • [19b9c14d60] - lib: fix AbortSignal.any() observed-composite leak (Paul Bouchon) #64481
  • [d3cada57c2] - lib: fix typo in comment in _http_client.js (agape1225) #64729
  • [c1e4f7365e] - (SEMVER-MINOR) lib: add perfetto support (Chengzhong Wu) #64565
  • [6c2157522d] - loader: enforce path normalization before lookup (Maël Nison) #63917
  • [31522c41a7] - meta: bump actions/stale from 10.3.0 to 11.0.0 (dependabot[bot]) #64935
  • [88c8b8ef54] - meta: bump github/codeql-action/analyze from 4.36.2 to 4.37.3 (dependabot[bot]) #64934
  • [9dcd759a84] - meta: bump github/codeql-action/autobuild from 4.36.2 to 4.37.3 (dependabot[bot]) #64933
  • [82ca02db3c] - meta: bump actions/setup-python from 6.3.0 to 7.0.0 (dependabot[bot]) #64932
  • [848e2287f2] - meta: bump github/codeql-action/init from 4.36.2 to 4.37.3 (dependabot[bot]) #64931
  • [ae8ad3b17b] - meta: bump Mozilla-Actions/sccache-action from 0.0.10 to 0.0.11 (dependabot[bot]) #64930
  • [0b359cfa4c] - meta: bump cachix/install-nix-action from 31.10.6 to 31.11.0 (dependabot[bot]) #64929
  • [3b4f980f4c] - meta: bump github/codeql-action/upload-sarif from 4.36.2 to 4.37.3 (dependabot[bot]) #64927
  • [d7ee9e9ea7] - meta: bump step-security/harden-runner from 2.19.4 to 2.20.0 (dependabot[bot]) #64926
  • [7e80bbaaa9] - meta: bump ossf/scorecard-action from 2.4.3 to 2.4.4 (dependabot[bot]) #64925
  • [915cabbfcf] - meta: remove node_crates .gitignore (René) #64779
  • [8e03c54347] - meta: add @nodejs/url as codeowner for node_url_pattern.* (Efe Karasakal) #64737
  • [11c2f9c642] - (SEMVER-MINOR) module: implement Symbol.dispose in ModuleHooks (Remco Haszing) #63928
  • [fffd8a76d0] - net: support TCP handle transfer on Windows (Matteo Collina) #64460
  • [fe9e0dbdc2] - net: support AF_UNIX paths in net.BoundSocket (Guy Bedford) #64399
  • [eb61b7ee1e] - permission: add unique warning codes (David Evans) #64414
  • [999a928822] - permission: support v8.setHeapSnapshotNearHeapLimit (Ilyas Shabi) #64808
  • [7de3d095b6] - quic: fix stop sending behaviour & callback (Tim Perry) #64710
  • [6289398bb2] - quic: fix coverage comment typo (Jungwon Sohn) #64486
  • [01510dc759] - quic: fix segfault after fragmented client hello (Tim Perry) #64720
  • [dcc348af97] - quic: serialize stream reset code as string (한만욱) #64577
  • [c25b8e3331] - readline: reduce createInterface overhead (Matteo Collina) #64585
  • [14e802d1cd] - sqlite: invalidate sessions when closing database (Trivikram Kamat) #64783
  • [279547b7da] - sqlite: check database state before calling SQLite (Trivikram Kamat) #64812
  • [bb86521a42] - sqlite: fix crash when a session outlives its database (Mohamed Sayed) #63797
  • [870f4997e7] - sqlite: fix use-after-free in Exec() and ApplyChangeset() (Matteo Collina) #64535
  • [a8ec5a9df7] - src: fix perfetto build on GetTraceFilePath (Chengzhong Wu) #64721
  • [6cd643acaa] - src: implement MemoryRetainer protocol for ByteSource (Filip Skokan) #64660
  • [8725e56928] - src: fix crash when writing odd-length hex string via Writev (RajeshKumar11) #63658
  • [e018f9a4a1] - (SEMVER-MINOR) src: add perfetto trace agent (Chengzhong Wu) #64565
  • [0611d443ab] - (SEMVER-MINOR) src: rename legacy trace event headers (Chengzhong Wu) #64565
  • [2897cc1d93] - (SEMVER-MINOR) src: fix trace macro compatibility (Chengzhong Wu) #64565
  • [d4d7172e10] - src: avoid using ToLocalChecked in crypto_hash (James M Snell) #64668
  • [53b7d48b47] - src: fix libuv assertion on windows (liuxingbaoyu) #61999
  • [69d10ed021] - src,test: disable trace events tests when perfetto is enabled (Chengzhong Wu) #64721
  • [1b0597b4ef] - stream: cut per-chunk allocations in pipeTo (Matteo Collina) #64890
  • [2632d606bb] - stream: preserve push signal abort reason (Trivikram Kamat) #64798
  • [d5358a75bc] - stream: skip zero-byte broadcast writes (Trivikram Kamat) #64772
  • [796c896fb4] - stream: honor AbortSignal in Writer.end() (Trivikram Kamat) #64727
  • [ff12b8e22e] - stream: use validateString for consumer encoding (Jungwon Sohn) #64754
  • [cfad2efb06] - stream: use the ring buffer for pending BYOB pull-into descriptors (Matteo Collina) #64818
  • [fe06bf56dc] - stream: fix uncatchable error closing half-open Duplex.toWeb() writable (Mohamed Sayed) #64161
  • [f2919dbb83] - test: unflake debugger and REPL tests (Matteo Collina) #64718
  • [a1c29174e8] - test: ensure assertions are reached on all tests (Antoine du Hamel) #64716
  • [b9e596f8e5] - test: reuse ffi.suffix instead of reimplementing it (Seongeun Lee) #64840
  • [c816918e14] - test: remove test-repl-user-error-handler from flaky (avivkeller) #64631
  • [9d2f10ec54] - test: update WPT for url to 4832db4761 (Node.js GitHub Bot) #64829
  • [75b80d0b7b] - test: update WPT for url to b63305b743 (Node.js GitHub Bot) #64790
  • [9a139b3c86] - test: cover worker throwing primitive values (varshitha) #64365
  • [796acc8920] - test: mark test-repl-user-error-handler as flaky (Aviv Keller) #64612
  • [a646319f61] - (SEMVER-MINOR) test_runner: add support for --test-coverage-include-all (avivkeller) #64830
  • [4368303e01] - test_runner: wait for filtered suite build (semimikoh) #64208
  • [70d11241a3] - test_runner: convert to uint during deserialization (Aviv Keller) #64706
  • [cafe7bffcc] - tls: fix SNICallback certificate selection (Matteo Collina) #64700
  • [9ee05ec40f] - tools: bump the eslint group in /tools/eslint with 4 updates (dependabot[bot]) #64928
  • [5f4b859932] - tools: bump brace-expansion from 5.0.7 to 5.0.9 in /tools/eslint (dependabot[bot]) #64904
  • [b5ced907b3] - tools: use 'readonly' for EventSource global (Honey Tyagi) #64787
  • [fd4460e34e] - typings: add heap_utils internalBinding types (Donghoon Kang) #64816
  • [3bc0ee0492] - typings: remove isDataView from types binding (Archkon) #64738
  • [236d7ca965] - url: create URLPattern result properties in WebIDL order (Archkon) #64733
  • [3def577ab4] - v8: report minor mark-sweep in GCProfiler (Archkon) #64688
  • [5293abff73] - vfs: speed up recursive readdir test setup (Trivikram Kamat) #64813
  • [4345185496] - vfs: make lchown update symlink metadata (Trivikram Kamat) #64573
  • [b6ab546de5] - wasm: register missing SetURL function (Archkon) #64679
  • [f322870bd1] - zlib: validate pledgedSrcSize as a safe integer (Archkon) #64604
  • [44042c20d4] - zlib: accept ArrayBuffer dictionary in Zstd (Ryuhei Shima) #64599

View originalPermalink

v26.6.02026-08-03, Version 26.6.0 (Current), @aduh95
Notable Changes
  • [5a36018abc] - doc: add MikeMcC399 as collaborator (Mike McCready) #64656
  • [9b04f82d7b] - (SEMVER-MINOR) ffi: add getCurrentEventLoop (Paolo Insogna) #64323
  • [bb51f2c960] - (SEMVER-MINOR) test_runner: add context.log() and test:log event (Moshe Atlow) #64389
  • [56ce83b3ee] - (SEMVER-MINOR) test_runner: report entryFile in TestStream events (Moshe Atlow) #64309
Commits
  • [248ff9fa5c] - assert,util: fix TypeError on Maps with null keys (Paul Bouchon) #64441
  • [3b5baceafe] - benchmark: add bytes variant to webstreams async-iterator (Matteo Collina) #64291
  • [0a46d1ef66] - buffer: normalize lone "\r" in Blob native line endings (Daijiro Wachi) #64115
  • [d9ada18b70] - buffer: fix Blob.stream() leaking source buffer (semimikoh) #63577
  • [d05993bcf6] - build: merge multiple on download artifact (Chengzhong Wu) #64633
  • [6c25ac909a] - build: extract temporal_capi crate directory name into gyp variable (René) #64482
  • [612f60c300] - cli: style node --help output with util.styleText (Adrián Estrada) #64484
  • [29a938ddbb] - crypto: preserve RSA-PSS legacy pubkey DER (Filip Skokan) #64547
  • [2fde794357] - crypto: cleanse provider private key copies (Filip Skokan) #64547
  • [33a0e08d41] - crypto: handle incomplete RSA private keys (Filip Skokan) #64547
  • [11b4d505ef] - crypto: retain legacy DH validation (Filip Skokan) #64547
  • [6e302041e1] - crypto: limit KangarooTwelveParams customization to 512 bytes (Filip Skokan) #64557
  • [195f103e87] - crypto: split OpenSSL 3, BoringSSL, and legacy backends (Filip Skokan) #64211
  • [ec67e24eee] - deps: update googletest to fa005b296f90faec4f352d7ab382287bf6548c8d (Node.js GitHub Bot) #64587
  • [32ffff88fd] - deps: histogram: cherry-pick 62ea52b07ee9b195 (StefanStojanovic) #64296
  • [e0664f1f09] - deps: update histogram to 0.11.10 (Node.js GitHub Bot) #64296
  • [cf0622bdd6] - deps: update amaro to 1.1.11 (Node.js GitHub Bot) #64586
  • [04c78b8b24] - deps: update timezone to 2026c (Node.js GitHub Bot) #64588
  • [59f4318976] - deps: V8: cherry-pick 1158ae719749 (René) #64432
  • [e5ea7cd299] - deps: update googletest to 8240fa7d62f73e01c7af27d61ed965d6d66698fa (Node.js GitHub Bot) #64439
  • [0e7554cee4] - deps: update libffi to 3.7.1 (Node.js GitHub Bot) #64438
  • [46c9d724ad] - deps: update ngtcp2 to 1.24.0 (Node.js GitHub Bot) #64297
  • [3519aac9af] - deps: enable OpenSSL asm support for riscv64 (Jamie Magee) #62606
  • [c09701218b] - deps: update c-ares to 1.34.8 (Node.js GitHub Bot) #64330
  • [ad2f3bc95b] - deps: upgrade npm to 11.18.0 (npm team) #64199
  • [d7a4b22c86] - deps: V8: backport a05321ebd98e (Chengzhong Wu) #64202
  • [8679cff291] - deps: update zlib to 1.3.2.1-motley-8b3aa8a (Node.js GitHub Bot) #64295
  • [df5b1e10ba] - doc: remove unsupported syntax from stream_iter.md (Antoine du Hamel) #64649
  • [8a4ca9083f] - doc: clarify rules for adding new built-in modules (Antoine du Hamel) #64648
  • [7d50fe6b7a] - doc: mention DEPENDENCY custom field for H1 reports (Rafael Gonzaga) #64634
  • [8f415bf5fc] - doc: fix dnsPromises.lookup verbatim default (Shivam S) #64658
  • [c6378f724d] - doc: fix broken links and clean up type map (Antoine du Hamel) #64625
  • [9b53ec19a2] - doc: fix typo in releases guide (Jihwan) #64621
  • [5a36018abc] - doc: add MikeMcC399 as collaborator (Mike McCready) #64656
  • [d2c8acd764] - doc: use promote wording in release guide (Md Muhtasim Munif Fahim) #64371
  • [5c692cb576] - doc: fix import.meta example for vm.SourceTextModule (Muhammad Zeeshan) #64112
  • [7568ce71ca] - doc: mention crypto.hash() for better perf (Steven) #63420
  • [cf3f631936] - doc: update sea example by fixing wrong code example (Maxence Robinet) #64025
  • [ce21e567a4] - doc: fix socket.readyState state descriptions (YuSheng Chen) #64468
  • [018c7f1c01] - doc: replace large tables in crypto.md and webcrypto.md with lists (Filip Skokan) #64582
  • [cf82de8d8b] - doc: note --env-file is not applied to --run (Paul Bouchon) #64442
  • [e635ce5201] - doc: fix typo in embedding.md (greenhead) #64425
  • [0b1f6eda3f] - doc: fix typos in contributing docs (Donghoon Kang) #64520
  • [d978ce80ef] - doc: document TLS alpnProtocol and servername fields (Tim Perry) #64362
  • [394669e3b3] - doc: fix spelling in devcontainer guide (한만욱) #64459
  • [9786a593ea] - doc: clarify PEM format for signing keys (Harjoth Khara) #64404
  • [6251f832ba] - doc: fix typo in tls.md (Daijiro Wachi) #64458
  • [b8656c40ad] - doc: document net Socket server property (Efe Karasakal) #64364
  • [03e9c738f3] - doc: update a Dispatcher undici doc link (Filip Skokan) #64358
  • [b6dd2debf0] - doc: fix typos in documentation (Jungwon Sohn) #64466
  • [3b7d778c3c] - doc: clarify fixes and refs trailer guidance (Trivikram Kamat) #64421
  • [eb086a6e03] - doc: remove duplicate VirtualProvider description (Archkon) #64400
  • [bc221a8cd7] - doc: add scope overview tables for TestsStream events (Moshe Atlow) #64386
  • [4b3dbd36df] - doc: clarify proxy threat model (Matteo Collina) #64366
  • [c5526f69d6] - doc: add note about restricted CI to pull-requests.md (Stewart X Addison) #64321
  • [968eaf6538] - doc: various updates to releases.md (Stewart X Addison) #64198
  • [2a51f8ba8e] - doc: remove obsolete --napi-modules doc entry (Chengzhong Wu) #64220
  • [ee5a54535e] - doc,test: widen fsPromises.appendFile()'s data type, add missing tests (Jimmy Leung) #64279
  • [b923df86fc] - events: avoid retaining removed event names (Matteo Collina) #64475
  • [7d8d413ff5] - events: optimize once() and removeListener() (Matteo Collina) #64373
  • [f2f8881d2a] - ffi: evaluate function signatures once (Trivikram Kamat) #64559
  • [9b04f82d7b] - (SEMVER-MINOR) ffi: add getCurrentEventLoop (Paolo Insogna) #64323
  • [4a3ef5b2b5] - fs: add pattern cache for matchGlobPattern() (bq) #63915
  • [ce113efcac] - fs: fix cp symlink and EEXIST handling on Windows (Kirill Saied) #64353
  • [3be3041ac9] - http: fix perf_hooks detail.req.url port and proxied path (Stefano Baghino) #64311
  • [0047ad73cf] - http: remove unused n arg from IncomingMessage._read (Efe Karasakal) #64370
  • [4d48984d5c] - http2: don't throw when destroying socket proxy (Matteo Collina) #64427
  • [3329647762] - http2: avoid copying the options in respond() (Matteo Collina) #64265
  • [a44fca5e24] - http2: avoid per-write closures in kWriteGeneric (Matteo Collina) #64265
  • [546e0e70a1] - inspector: add --cond to node inspect probe mode (Joyee Cheung) #64328
  • [b38a39dd96] - lib: use assignFunctionName util where it makes sense (Antoine du Hamel) #64515
  • [f60a12b94f] - lib,tools: add node-core/func-name-matching lint rule (Livia Medeiros) #57901
  • [9e6e9d4745] - meta: lower stale to 3 months (Aviv Keller) #64569
  • [3dd11c4993] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #64315
  • [3f55208104] - module: add two tests for eager imports when using import defer (Maya Lekova) #64197
  • [c791eedc9d] - net: support sync connect for BoundSocket (Guy Bedford) #64375
  • [4df4a3fc61] - net: make TCP Server and Socket transferable across worker threads (Matteo Collina) #64225
  • [5dd34d7d06] - path: add benchmarks for path.matchesGlob() (bq) #63915
  • [8e520646b6] - quic: defer server session emit until TLS ClientHello is processed (Tim Perry) #64132
  • [4b8cc9a3fb] - quic: preserve session stats after close (한만욱) #64489
  • [591090ca85] - quic: add support for TLS certificate compression (Sebastian Beltran) #64434
  • [d636c9c30f] - quic: extract transport logic from Application to Session (Tim Perry) #64127
  • [abb62f961f] - quic: correct http3 callback and fix revealed errs (Marten Richter) #64289
  • [5f535fdbe8] - quic: fix no onstream handler crash quic (Efe) #64158
  • [933e5f14b5] - quic: fix stall datagrams, if no pending streams (Marten Richter) #64303
  • [272632a57f] - quic: fix potential crash from unobserved closed (Tim Perry) #64134
  • [2d5f445489] - sqlite: read column count after step in StatementSync.all() (Guilherme Araújo) #64219
  • [54929af44e] - src: avoid redundant KEM encapsulation copies (Filip Skokan) #64553
  • [5380bf28b3] - src: avoid redundant DataPointer reallocations (Filip Skokan) #64552
  • [6ff5a1b834] - src: fix comment typos (Jungwon Sohn) #64509
  • [508ec0e435] - src: zero-initialize cap_data in node_credentials.cc (Samuel Kapust) #64347
  • [c5090a36c1] - src: fix some typo errors and rename some variables (Archkon) #64301
  • [0a89bef69e] - src,permission: do not throw on denied access in audit mode (Adrián Estrada) #64426
  • [63e71195c5] - stream: abort pending single-source merge reads (Trivikram Kamat) #64445
  • [f403b30c3d] - stream: use RangeError for broadcast overflow (Trivikram Kamat) #64420
  • [5c0578cbf7] - stream: skip null output from stateful transforms (Trivikram Kamat) #64462
  • [0488d02d5d] - stream: update iterable streams to use budget backpressure (James M Snell) #64464
  • [f0811baeef] - stream: remove custom CloneableDOMException implementation (Antoine du Hamel) #64469
  • [10f3f9682e] - stream: fix drop-newest behavior in share() (Trivikram Kamat) #64417
  • [2aad973b29] - stream: resume flow when an errored pipe destination is removed (Mahin Anowar) #64310
  • [6112ed5ceb] - stream: fold desired-size check into WHATWG backpressure update (Matteo Collina) #64451
  • [d829aa1138] - stream: validate writer options signal (Trivikram Kamat) #64385
  • [8e7a5e940e] - stream: reject push iterator.throw() with error (Trivikram Kamat) #64380
  • [4390f81294] - stream: simplify nested PromisePrototypeThens (Antoine du Hamel) #64470
  • [ddf2c38e9d] - stream: use the ring buffer for WHATWG stream request queues (Matteo Collina) #64431
  • [518d81b36d] - stream: validate writevSync chunks before queuing (Trivikram Kamat) #64300
  • [f745c4261d] - stream: speed up reads and iteration over default WHATWG streams (Matteo Collina) #64320
  • [4f4bce62fe] - stream: copy SAB-backed chunks in iter consumers (Trivikram Kamat) #64382
  • [f29937d26f] - stream: reject nested async streamables in from() (Trivikram Kamat) #64352
  • [424cec71b7] - stream: avoid draining merged iter sources (Trivikram Kamat) #64293
  • [e01906180c] - stream: use ring buffer for WHATWG stream queues (Yagiz Nizipli) #64312
  • [0a0193f666] - stream: hoist repeated loads in readable paths (Yagiz Nizipli) #64312
  • [ebe16003b6] - stream: prefer sync iterator in fromSync (Trivikram Kamat) #64294
  • [f249614835] - stream: speed up async iteration over WHATWG byte streams (Matteo Collina) #64291
  • [7331118699] - stream, quic: update iterable streams backpressure (James M Snell) #64464
  • [46b117729d] - test: update quic tests for stream/iter update (James M Snell) #64464
  • [b122ca5389] - test: fix flaky http2 socket proxy test (Tim Perry) #64673
  • [68c46146fd] - test: apply correction to comment (Rich Trott) #64524
  • [d7e119b26b] - test: keep finalization before-exit ref alive (Tim Perry) #64521
  • [0db4e10a0c] - test: copyedit test-tls-psk-alpn-callback-exception-handling (Antoine du Hamel) #63485
  • [21389f7b25] - test: fix stale async-context-frame status entries (Kirill Saied) #64141
  • [af55304846] - test: update WPT for urlpattern to 5847ee5cfa (Node.js GitHub Bot) #64436
  • [43a5ce4e00] - test: update WPT for WebCryptoAPI to ec2fee39a4 (Node.js GitHub Bot) #64435
  • [11ca52a521] - test: fix flaky http2 maxOriginSetSize test (Tim Perry) #64407
  • [af08a11e77] - test: fix 2nd flaky blob test case (Tim Perry) #64391
  • [0104ae1171] - test: fix flaky watch + cwd + argv test-runner test (Tim Perry) #64372
  • [b3ff5fe3f4] - test: normalize Windows crash in debugger test normalization (Joyee Cheung) #64332
  • [4cdceb7436] - test: unmark flaky http2-large-file for Win (Kirill Saied) #64255
  • [19f529377b] - test: unmark flaky SEA snapshot tests on Windows (Kirill Saied) #64317
  • [66f9b342ef] - test: increase timeout in consumed-timeout test (Trivikram Kamat) #64204
  • [fdbbf0ae6d] - test: handle null stdio streams in spawnSyncAndAssert helper (Joyee Cheung) #64273
  • [10ea17dafe] - test: remove impact of tier-up changes in worker stack size test (Joyee Cheung) #64271
  • [bb51f2c960] - (SEMVER-MINOR) test_runner: add context.log() and test:log event (Moshe Atlow) #64389
  • [56ce83b3ee] - (SEMVER-MINOR) test_runner: report entryFile in TestStream events (Moshe Atlow) #64309
  • [7a02e4f9e6] - timers: do not retain a reference to the async store after firing (Matteo Collina) #53443
  • [7d5d46ef00] - tls: match IPv6 hosts against IP-Address SANs (Pascal Garber) #64145
  • [f7bc0c62df] - tools: bump brace-expansion from 5.0.6 to 5.0.7 in /tools/eslint (dependabot[bot]) #64636
  • [3f80ed2e93] - tools: reference 'git node land' in PR-URL: error message in merge.sh (Stewart X Addison) #64495
  • [7b373cafce] - tools: disable zipping tarballs on GHA (Antoine du Hamel) #64423
  • [5bdbd256e9] - tools: add workflow to compare Nix changes (Antoine du Hamel) #64410
  • [ca4a16634b] - tools: add option for benchmark.yml to post comment on PR (Antoine du Hamel) #64395
  • [86193ef193] - tools: fix redundant conditions in v8.gyp for riscv64 and loong64 (Jamie Magee) #62608
  • [ee460404be] - util: make MIMEParams accessors case-insensitive (Daijiro Wachi) #64123
  • [a63ee46ddd] - vfs: make recursive readdir iterative (AkshatOP) #64149
  • [37f93c3b15] - vfs: make lchmod update symlink mode (Trivikram Kamat) #64350
  • [ce54e2a9c8] - vfs: fix VirtualReadStream race with async iteration (Y1D7NG) #64394
  • [54e8d3a14b] - vfs: follow symlinked dirs in recursive mkdir (Trivikram Kamat) #64287
  • [7be42b64e1] - vm: enable interception on global restricted properties (Chengzhong Wu) #64202
  • [c2cfcf8e7d] - zlib: reject truncated zstd input (Archkon) #64593

View originalPermalink

v26.5.12026-07-29, Version 26.5.1 (Current), @RafaelGSS

This is a security release.

Notable Changes
  • (CVE-2026-56848) http2: defer rst stream while in scope (Matteo Collina) – High
  • (CVE-2026-58043) permission: avoid granting radix split nodes (RafaelGSS) – High
  • (CVE-2026-56850) https: distinguish PFX object-array agent keys (RafaelGSS) – Medium
  • (CVE-2026-58040) https: bind identity checks to session reuse (Matteo Collina) – Medium
  • (CVE-2026-58041) sqlite: invalidate tag store iterators on statement reset (Matteo Collina) – Medium
  • (CVE-2026-58042) dns: handle large resolveAny address replies (RafaelGSS) – Medium
  • (CVE-2026-58045) zlib: throw on out-of-bounds write buffers (RafaelGSS) – Medium
  • (CVE-2026-56847) permission: enforce fs write permission for trace events (RafaelGSS) – Low
  • (CVE-2026-58039) permission: check final report output path (RafaelGSS) – Low
  • (CVE-2026-58044) http: reject requests exceeding max header count (Matteo Collina) – Low
  • deps: update llhttp to 9.4.3 (Paolo Insogna)
  • deps: update undici to 8.9.0 (Node.js GitHub Bot)
Commits

View originalPermalink

v26.5.02026-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

View originalPermalink

v26.4.02026-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] - Revert "build, 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

View originalPermalink

v26.3.12026-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

View originalPermalink

v26.3.02026-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

View originalPermalink

v26.2.02026-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

View originalPermalink