v26.11.0

nodejs/nodev26.11.0Oct 7, 2026by aduh95

Upgrading?

AI Summary

This release introduces new Buffer and HTTP utilities, enhances performance hooks with histogram snapshotting and diffing capabilities, and stabilizes the process.ref and process.unref APIs. It also promotes Alpine Linux to Tier 2 support.

Key Highlights

  • New Buffer.stringLength() method for efficient string length calculation
  • New HTTP header validation methods for better input sanitization
  • Enhanced performance hooks with histogram.diff() and histogram.snapshot()
  • Stabilization of process.ref and process.unref APIs
  • Alpine Linux promoted to Tier 2 support

New Features

  • Buffer.isLatin1() method
  • Buffer.stringLength() method
  • isValidHeaderName() and isValidHeaderValue() methods
  • histogram.diff() and histogram.snapshot() methods
  • Ability to record 0 in RecordableHistogram
  • process.ref and process.unref graduation to stable
  • SQLite DatabaseSync and StatementSync renames
  • --process-timeout=N CLI flag
  • Heap profile output improvements

Full Release Notes




### Notable Changes

* \[[`232f178825`](https://github.com/nodejs/node/commit/232f178825)] - **(SEMVER-MINOR)** **buffer**: add `isLatin1` (James M Snell) [#66298](https://github.com/nodejs/node/pull/66298)
* \[[`27778036de`](https://github.com/nodejs/node/commit/27778036de)] - **(SEMVER-MINOR)** **buffer**: add `Buffer.stringLength()` (Matteo Collina) [#66064](https://github.com/nodejs/node/pull/66064)
* \[[`4f84c4bda2`](https://github.com/nodejs/node/commit/4f84c4bda2)] - **build, doc**: move to redesign (Aviv Keller) [#62045](https://github.com/nodejs/node/pull/62045)
* \[[`6f6296fef9`](https://github.com/nodejs/node/commit/6f6296fef9)] - **(SEMVER-MINOR)** **doc**: promote Alpine Linux to tier 2 support (Stewart X Addison) [#63737](https://github.com/nodejs/node/pull/63737)
* \[[`e998d260d0`](https://github.com/nodejs/node/commit/e998d260d0)] - **(SEMVER-MINOR)** **http**: add `isValidHeaderName()` and isValidHeaderValue() (James M Snell) [#66334](https://github.com/nodejs/node/pull/66334)
* \[[`7702a50e08`](https://github.com/nodejs/node/commit/7702a50e08)] - **(SEMVER-MINOR)** **http2**: add `connectionWindowSize` option (Tim Perry) [#65619](https://github.com/nodejs/node/pull/65619)
* \[[`e06aa62cec`](https://github.com/nodejs/node/commit/e06aa62cec)] - **(SEMVER-MINOR)** **perf\_hooks**: fix truncation of `monitorEventLoopDelay()` resolution (James M Snell) [#66115](https://github.com/nodejs/node/pull/66115)
* \[[`ee126e37e8`](https://github.com/nodejs/node/commit/ee126e37e8)] - **(SEMVER-MINOR)** **perf\_hooks**: allow `RecordableHistogram` to record 0 (James M Snell) [#66114](https://github.com/nodejs/node/pull/66114)
* \[[`1fef8f54db`](https://github.com/nodejs/node/commit/1fef8f54db)] - **(SEMVER-MINOR)** **perf\_hooks**: add `histogram.diff()` (James M Snell) [#66099](https://github.com/nodejs/node/pull/66099)
* \[[`f1b9758c4e`](https://github.com/nodejs/node/commit/f1b9758c4e)] - **(SEMVER-MINOR)** **perf\_hooks**: add `histogram.snapshot()` (James M Snell) [#66099](https://github.com/nodejs/node/pull/66099)
* \[[`291d56ea3e`](https://github.com/nodejs/node/commit/291d56ea3e)] - **(SEMVER-MINOR)** **perf\_hooks**: harden histogram CBOR import validation (James M Snell) [#66098](https://github.com/nodejs/node/pull/66098)
* \[[`6299b09d5c`](https://github.com/nodejs/node/commit/6299b09d5c)] - **(SEMVER-MINOR)** **process**: graduate `process.ref`/`unref` to stable (James M Snell) [#66213](https://github.com/nodejs/node/pull/66213)
* \[[`41d6707b63`](https://github.com/nodejs/node/commit/41d6707b63)] - **(SEMVER-MINOR)** **sqlite**: rename `DatabaseSync` and `StatementSync` (Guilherme Araújo) [#65988](https://github.com/nodejs/node/pull/65988)
* \[[`60d0aa0cd4`](https://github.com/nodejs/node/commit/60d0aa0cd4)] - **(SEMVER-MINOR)** **src**: add `--process-timeout=N` (James M Snell) [#66138](https://github.com/nodejs/node/pull/66138)
* \[[`f39916a7e3`](https://github.com/nodejs/node/commit/f39916a7e3)] - **(SEMVER-MINOR)** **src**: expose size and count in heap profile output (Ilyas Shabi) [#65737](https://github.com/nodejs/node/pull/65737)
* \[[`0b00d5ea59`](https://github.com/nodejs/node/commit/0b00d5ea59)] - **(SEMVER-MINOR)** **src**: let embedders exempt linked bindings from the addon permission (Shelley Vohr) [#66067](https://github.com/nodejs/node/pull/66067)

### Commits

* \[[`11c3d7115d`](https://github.com/nodejs/node/commit/11c3d7115d)] - **benchmark**: add implicit-framing case to http/set-header (Matteo Collina) [#66420](https://github.com/nodejs/node/pull/66420)
* \[[`168b764fec`](https://github.com/nodejs/node/commit/168b764fec)] - **benchmark**: add zstdCompress benchmark (James Ross) [#66358](https://github.com/nodejs/node/pull/66358)
* \[[`69182564a7`](https://github.com/nodejs/node/commit/69182564a7)] - **benchmark**: add a node::MakeCallback benchmark (Nigro Simone) [#66316](https://github.com/nodejs/node/pull/66316)
* \[[`12e540582f`](https://github.com/nodejs/node/commit/12e540582f)] - **(SEMVER-MINOR)** **benchmark**: add http header validator benchmark (James M Snell) [#66334](https://github.com/nodejs/node/pull/66334)
* \[[`e6abdf6b01`](https://github.com/nodejs/node/commit/e6abdf6b01)] - **benchmark**: remove duplicate ffi string length direct (Donghoon Kang) [#66278](https://github.com/nodejs/node/pull/66278)
* \[[`480ca7cc55`](https://github.com/nodejs/node/commit/480ca7cc55)] - **benchmark**: fix shadowing that broke h=20 on incoming\_headers benchmark (Tim Perry) [#66257](https://github.com/nodejs/node/pull/66257)
* \[[`c6bbc1b128`](https://github.com/nodejs/node/commit/c6bbc1b128)] - **benchmark**: cover Web Crypto conversion costs (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`85a2e4e270`](https://github.com/nodejs/node/commit/85a2e4e270)] - **benchmark**: remove duplicate ffi add-64 benchmark (Soul Lee) [#66121](https://github.com/nodejs/node/pull/66121)
* \[[`d0a72f2c12`](https://github.com/nodejs/node/commit/d0a72f2c12)] - **buffer**: fix negative index for large buffers (Hilary Asogwa) [#66325](https://github.com/nodejs/node/pull/66325)
* \[[`b7f6a66a9f`](https://github.com/nodejs/node/commit/b7f6a66a9f)] - **(SEMVER-MINOR)** **buffer**: add isLatin1 (James M Snell) [#66298](https://github.com/nodejs/node/pull/66298)
* \[[`232f178825`](https://github.com/nodejs/node/commit/232f178825)] - **(SEMVER-MINOR)** **buffer**: add isLatin1 (James M Snell) [#66298](https://github.com/nodejs/node/pull/66298)
* \[[`f7d3d11c11`](https://github.com/nodejs/node/commit/f7d3d11c11)] - **buffer**: fix odd UTF-16LE indexOf start (Yuya Inoue) [#65960](https://github.com/nodejs/node/pull/65960)
* \[[`27778036de`](https://github.com/nodejs/node/commit/27778036de)] - **(SEMVER-MINOR)** **buffer**: add Buffer.stringLength() (Matteo Collina) [#66064](https://github.com/nodejs/node/pull/66064)
* \[[`9f1db461d2`](https://github.com/nodejs/node/commit/9f1db461d2)] - **build**: update common.gypi for z/OS (Gaby Baghdadi) [#66449](https://github.com/nodejs/node/pull/66449)
* \[[`0002037b3f`](https://github.com/nodejs/node/commit/0002037b3f)] - **build**: update configure.py for z/OS (Gaby Baghdadi) [#66449](https://github.com/nodejs/node/pull/66449)
* \[[`a341ac460a`](https://github.com/nodejs/node/commit/a341ac460a)] - **build**: fix vcbuild format-md install and exit (Ved Chaudhari) [#66475](https://github.com/nodejs/node/pull/66475)
* \[[`bec52d9103`](https://github.com/nodejs/node/commit/bec52d9103)] - **build**: fix vcbuild lint skipping lint-md-build (Ved Chaudhari) [#66467](https://github.com/nodejs/node/pull/66467)
* \[[`9acdb5910c`](https://github.com/nodejs/node/commit/9acdb5910c)] - **build**: toggle doc-kit verbosity based on V (Brian Muenzenmeyer) [#66293](https://github.com/nodejs/node/pull/66293)
* \[[`6ee32f857a`](https://github.com/nodejs/node/commit/6ee32f857a)] - **build**: support LIEF 0.17.x and 1.x (Yuya Inoue) [#66240](https://github.com/nodejs/node/pull/66240)
* \[[`2248869955`](https://github.com/nodejs/node/commit/2248869955)] - **build**: add clang support for pgo on macOS/Linux (Chengzhong Wu) [#66136](https://github.com/nodejs/node/pull/66136)
* \[[`49069529eb`](https://github.com/nodejs/node/commit/49069529eb)] - **build**: add GZIP\_COMPRESSION Make variable (inoway46) [#66228](https://github.com/nodejs/node/pull/66228)
* \[[`9066d33aa2`](https://github.com/nodejs/node/commit/9066d33aa2)] - **build**: port `make_temporal_zoneinfo_cpp` to GYP (Antoine du Hamel) [#66183](https://github.com/nodejs/node/pull/66183)
* \[[`1f4a8fb1cb`](https://github.com/nodejs/node/commit/1f4a8fb1cb)] - **build**: add `v8_enable_temporal_systemicu` (Steven R. Loomis) [#65992](https://github.com/nodejs/node/pull/65992)
* \[[`4f84c4bda2`](https://github.com/nodejs/node/commit/4f84c4bda2)] - **build, doc**: move to redesign (Aviv Keller) [#62045](https://github.com/nodejs/node/pull/62045)
* \[[`a0e7141ffc`](https://github.com/nodejs/node/commit/a0e7141ffc)] - **child\_process**: build the default env block in one native pass (Shelley Vohr) [#65325](https://github.com/nodejs/node/pull/65325)
* \[[`9fa31096d4`](https://github.com/nodejs/node/commit/9fa31096d4)] - **crypto**: improve random synchronous number generation performance (Mert Can Altin) [#66348](https://github.com/nodejs/node/pull/66348)
* \[[`53cde9d1f8`](https://github.com/nodejs/node/commit/53cde9d1f8)] - **crypto**: fix raw key export error for wrong key type (한국) [#66217](https://github.com/nodejs/node/pull/66217)
* \[[`32ba6d5ada`](https://github.com/nodejs/node/commit/32ba6d5ada)] - **crypto**: use backend cSHAKE and KMAC (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`67ccff6434`](https://github.com/nodejs/node/commit/67ccff6434)] - **crypto**: separate conversion from validation (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`ceeb37173d`](https://github.com/nodejs/node/commit/ceeb37173d)] - **crypto**: verify empty KMAC outputs (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`359b07a641`](https://github.com/nodejs/node/commit/359b07a641)] - **crypto**: check EC coordinate conversion results (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`e4d746c4a5`](https://github.com/nodejs/node/commit/e4d746c4a5)] - **crypto**: map JWK export failures to OperationError (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`a851dda86a`](https://github.com/nodejs/node/commit/a851dda86a)] - **crypto**: include EC public keys in PKCS8 exports (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`7f58476ed1`](https://github.com/nodejs/node/commit/7f58476ed1)] - **crypto**: use the public CryptoKey prototype (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`75870623ad`](https://github.com/nodejs/node/commit/75870623ad)] - **crypto**: split hybrid keys without species (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`a1bea87c6a`](https://github.com/nodejs/node/commit/a1bea87c6a)] - **crypto**: report actual RSA modulus lengths (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`5e04680036`](https://github.com/nodejs/node/commit/5e04680036)] - **crypto**: derive Argon2 without worker threads (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`fe09120a0e`](https://github.com/nodejs/node/commit/fe09120a0e)] - **crypto**: create key usage arrays without species (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`44a2965f5f`](https://github.com/nodejs/node/commit/44a2965f5f)] - **crypto**: minimize RSA public exponent metadata (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`2f3e6dff9d`](https://github.com/nodejs/node/commit/2f3e6dff9d)] - **crypto**: copy derived bits without species (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`d54a2b2049`](https://github.com/nodejs/node/commit/d54a2b2049)] - **crypto**: handle PBKDF2 iteration limits (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`2ef6046f11`](https://github.com/nodejs/node/commit/2ef6046f11)] - **crypto**: reject duplicate unknown key usages (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`2e25ae4a7a`](https://github.com/nodejs/node/commit/2e25ae4a7a)] - **crypto**: check RSA JWK alg with SHA-3 hashes (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`0370e02e2a`](https://github.com/nodejs/node/commit/0370e02e2a)] - **crypto**: copy parameters without array species (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`e042d35ca5`](https://github.com/nodejs/node/commit/e042d35ca5)] - **crypto**: convert importKey data as a union (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`ff86606768`](https://github.com/nodejs/node/commit/ff86606768)] - **crypto**: copy detached parameters as empty (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`1314d277b2`](https://github.com/nodejs/node/commit/1314d277b2)] - **crypto**: resolve supports overloads by type (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`a855a46aeb`](https://github.com/nodejs/node/commit/a855a46aeb)] - **crypto**: allow unbound SubtleCrypto.supports (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`4a72c1d690`](https://github.com/nodejs/node/commit/4a72c1d690)] - **crypto**: allow short AES-GCM IVs (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`2d84b7ed49`](https://github.com/nodejs/node/commit/2d84b7ed49)] - **crypto**: validate normalized hash names (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`6bfd3924ff`](https://github.com/nodejs/node/commit/6bfd3924ff)] - **crypto**: convert getRandomValues views (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`529bd18c1a`](https://github.com/nodejs/node/commit/529bd18c1a)] - **crypto**: isolate cipher job errors (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`d4af11e171`](https://github.com/nodejs/node/commit/d4af11e171)] - **crypto**: reject short AES-KW inputs (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`78374c8af0`](https://github.com/nodejs/node/commit/78374c8af0)] - **crypto**: match algorithm names as ASCII (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`ab9a3f2b01`](https://github.com/nodejs/node/commit/ab9a3f2b01)] - **crypto**: use internal random buffer bounds (Filip Skokan) [#66237](https://github.com/nodejs/node/pull/66237)
* \[[`7c9b2df87a`](https://github.com/nodejs/node/commit/7c9b2df87a)] - **crypto**: use current FIPS state for availability (Filip Skokan) [#66160](https://github.com/nodejs/node/pull/66160)
* \[[`55af1dcded`](https://github.com/nodejs/node/commit/55af1dcded)] - **crypto**: update root certificates to NSS 3.129 (Node.js GitHub Bot) [#66496](https://github.com/nodejs/node/pull/66496)
* \[[`4387cb46d2`](https://github.com/nodejs/node/commit/4387cb46d2)] - **deps**: update timezone to 2026e (Node.js GitHub Bot) [#66419](https://github.com/nodejs/node/pull/66419)
* \[[`150c96ef3f`](https://github.com/nodejs/node/commit/150c96ef3f)] - **deps**: V8: cherry-pick c795f5948568 (Aviv Keller) [#66380](https://github.com/nodejs/node/pull/66380)
* \[[`6b5ac2ab5d`](https://github.com/nodejs/node/commit/6b5ac2ab5d)] - **deps**: update archs files for openssl-3.5.9 (Node.js GitHub Bot) [#66396](https://github.com/nodejs/node/pull/66396)
* \[[`bee7e2403c`](https://github.com/nodejs/node/commit/bee7e2403c)] - **deps**: upgrade openssl sources to openssl-3.5.9 (Node.js GitHub Bot) [#66396](https://github.com/nodejs/node/pull/66396)
* \[[`7a715495f2`](https://github.com/nodejs/node/commit/7a715495f2)] - **deps**: update lief to 1.0.0 (Node.js GitHub Bot) [#66345](https://github.com/nodejs/node/pull/66345)
* \[[`f9da04958a`](https://github.com/nodejs/node/commit/f9da04958a)] - **deps**: update zlib to 1.3.2.1-motley-456ae73 (Node.js GitHub Bot) [#66330](https://github.com/nodejs/node/pull/66330)
* \[[`5c34dd970d`](https://github.com/nodejs/node/commit/5c34dd970d)] - **deps**: update undici to 8.11.2 (Node.js GitHub Bot) [#66332](https://github.com/nodejs/node/pull/66332)
* \[[`fdf0572cd1`](https://github.com/nodejs/node/commit/fdf0572cd1)] - **deps**: update timezone to 2026d (Node.js GitHub Bot) [#66333](https://github.com/nodejs/node/pull/66333)
* \[[`6c924ee1b0`](https://github.com/nodejs/node/commit/6c924ee1b0)] - **deps**: upgrade npm to 11.20.0 (npm team) [#66259](https://github.com/nodejs/node/pull/66259)
* \[[`2653b2617d`](https://github.com/nodejs/node/commit/2653b2617d)] - **deps**: V8: backport 786c1c2d88d4 (Eliau Elkouby) [#66249](https://github.com/nodejs/node/pull/66249)
* \[[`1d68f23e08`](https://github.com/nodejs/node/commit/1d68f23e08)] - **deps**: update googletest to 4267679b6887f349f17b01ccd70c9e3483689b25 (Node.js GitHub Bot) [#66145](https://github.com/nodejs/node/pull/66145)
* \[[`c507c5ad12`](https://github.com/nodejs/node/commit/c507c5ad12)] - **deps**: V8: backport 9fb4444bfc46 (Steven R. Loomis) [#65992](https://github.com/nodejs/node/pull/65992)
* \[[`8c556ab2b6`](https://github.com/nodejs/node/commit/8c556ab2b6)] - **deps**: update histogram to 0.12.0 (Node.js GitHub Bot) [#66494](https://github.com/nodejs/node/pull/66494)
* \[[`d3f55c7487`](https://github.com/nodejs/node/commit/d3f55c7487)] - **diagnostics\_channel**: replace using with try-finally (Ayush Chaudhary) [#64251](https://github.com/nodejs/node/pull/64251)
* \[[`510dfd899e`](https://github.com/nodejs/node/commit/510dfd899e)] - **doc**: update FreeEnvironment() notes for sibling Environments (Shelley Vohr) [#66239](https://github.com/nodejs/node/pull/66239)
* \[[`db2665ba17`](https://github.com/nodejs/node/commit/db2665ba17)] - **doc**: add indexed `Array.prototype` properties to primordial exclusions (René) [#66234](https://github.com/nodejs/node/pull/66234)
* \[[`b692079e3a`](https://github.com/nodejs/node/commit/b692079e3a)] - **doc**: fixup and cleanup stream/iter docs (James M Snell) [#66079](https://github.com/nodejs/node/pull/66079)
* \[[`9b191141a2`](https://github.com/nodejs/node/commit/9b191141a2)] - **doc**: fix casing in `util.markPromiseAsHandled` section (Antoine du Hamel) [#66206](https://github.com/nodejs/node/pull/66206)
* \[[`8e8c9762a8`](https://github.com/nodejs/node/commit/8e8c9762a8)] - **doc**: add return type to Blocklist.isBlocklist (yuki motokane) [#66181](https://github.com/nodejs/node/pull/66181)
* \[[`6c7fc98d7f`](https://github.com/nodejs/node/commit/6c7fc98d7f)] - **doc**: clarify Worker execArgv vs Permission Model grants (yunshingng) [#66124](https://github.com/nodejs/node/pull/66124)
* \[[`9fd0a10b1e`](https://github.com/nodejs/node/commit/9fd0a10b1e)] - **doc**: document iterable input for AbortSignal.any (Haram Jeong) [#66123](https://github.com/nodejs/node/pull/66123)
* \[[`c4508fd4c7`](https://github.com/nodejs/node/commit/c4508fd4c7)] - **doc**: restore XadillaX to collaborators (Khaidi Chu) [#66063](https://github.com/nodejs/node/pull/66063)
* \[[`b4ad8354f0`](https://github.com/nodejs/node/commit/b4ad8354f0)] - **doc**: use Type for performanceNodeTiming.uvMetricsInfo (James M Snell) [#66094](https://github.com/nodejs/node/pull/66094)
* \[[`50bc27f3c3`](https://github.com/nodejs/node/commit/50bc27f3c3)] - **doc**: document the node:ffi call paths (Soul Lee) [#66086](https://github.com/nodejs/node/pull/66086)
* \[[`a74a0ee748`](https://github.com/nodejs/node/commit/a74a0ee748)] - **doc,src,test**: fix typos in code comments (Noah) [#66218](https://github.com/nodejs/node/pull/66218)
* \[[`6f6296fef9`](https://github.com/nodejs/node/commit/6f6296fef9)] - **(SEMVER-MINOR)** **doc**: promote Alpine Linux to tier 2 support (Stewart X Addison) [#63737](https://github.com/nodejs/node/pull/63737)
* \[[`215639d6ce`](https://github.com/nodejs/node/commit/215639d6ce)] - **events**: fix addAbortListener for aborted signals (Lazizbek Ergashev) [#65640](https://github.com/nodejs/node/pull/65640)
* \[[`021f7d8d98`](https://github.com/nodejs/node/commit/021f7d8d98)] - **ffi**: accept safe integer numbers for 64-bit arguments (Donghoon Kang) [#66197](https://github.com/nodejs/node/pull/66197)
* \[[`53fd8e7ebb`](https://github.com/nodejs/node/commit/53fd8e7ebb)] - **ffi**: remove permission checks from dlclose and dlsym (Trivikram Kamat) [#66426](https://github.com/nodejs/node/pull/66426)
* \[[`fa7efaf782`](https://github.com/nodejs/node/commit/fa7efaf782)] - **ffi**: validate pointer ranges in optimized calls (Trivikram Kamat) [#66371](https://github.com/nodejs/node/pull/66371)
* \[[`11f80798ba`](https://github.com/nodejs/node/commit/11f80798ba)] - **ffi**: throw on allocation failure in toArrayBuffer() (Trivikram Kamat) [#66406](https://github.com/nodejs/node/pull/66406)
* \[[`c65a333648`](https://github.com/nodejs/node/commit/c65a333648)] - **ffi**: do not abort when a Worker stops in a callback (Trivikram Kamat) [#66389](https://github.com/nodejs/node/pull/66389)
* \[[`9bdab1eca0`](https://github.com/nodejs/node/commit/9bdab1eca0)] - **ffi**: reject unsafe integers as length or offset (Christian Aurich Zanettini Martins) [#66216](https://github.com/nodejs/node/pull/66216)
* \[[`343a5c2915`](https://github.com/nodejs/node/commit/343a5c2915)] - **ffi**: fix use-after-free in PrepareFunction (Trivikram Kamat) [#66368](https://github.com/nodejs/node/pull/66368)
* \[[`51daf16244`](https://github.com/nodejs/node/commit/51daf16244)] - **ffi**: reject non-boolean copy arguments (Christian Aurich Zanettini Martins) [#66219](https://github.com/nodejs/node/pull/66219)
* \[[`b901b97cbf`](https://github.com/nodejs/node/commit/b901b97cbf)] - **ffi**: use type errors for invalid signatures (Donghoon Kang) [#66222](https://github.com/nodejs/node/pull/66222)
* \[[`0f6cdce998`](https://github.com/nodejs/node/commit/0f6cdce998)] - **ffi**: allocate string argument storage lazily (Soul Lee) [#66178](https://github.com/nodejs/node/pull/66178)
* \[[`ee84a36f12`](https://github.com/nodejs/node/commit/ee84a36f12)] - **ffi**: avoid memcpy() with a null pointer (Christian Aurich Zanettini Martins) [#66200](https://github.com/nodejs/node/pull/66200)
* \[[`da32c79034`](https://github.com/nodejs/node/commit/da32c79034)] - **fs**: keep timestamps of files skipped by cpSync (Christian Aurich Zanettini Martins) [#66305](https://github.com/nodejs/node/pull/66305)
* \[[`e7121be408`](https://github.com/nodejs/node/commit/e7121be408)] - **fs**: stop recursive mkdir from retrying ENOENT forever (Marco) [#66340](https://github.com/nodejs/node/pull/66340)
* \[[`99a78b0d83`](https://github.com/nodejs/node/commit/99a78b0d83)] - **fs**: fix crash on negative zero file descriptor (Christian Aurich Zanettini Martins) [#65888](https://github.com/nodejs/node/pull/65888)
* \[[`8b24247be1`](https://github.com/nodejs/node/commit/8b24247be1)] - **fs**: validate falsy openAsBlob type option (Christian Aurich Zanettini Martins) [#66125](https://github.com/nodejs/node/pull/66125)
* \[[`e7d5352fa6`](https://github.com/nodejs/node/commit/e7d5352fa6)] - **fs**: close file streams with fd 0 (greenhead) [#66131](https://github.com/nodejs/node/pull/66131)
* \[[`f38768f0fa`](https://github.com/nodejs/node/commit/f38768f0fa)] - **fs**: close fd 0 on discarded FileHandle transfer (Christian Aurich Zanettini Martins) [#66095](https://github.com/nodejs/node/pull/66095)
* \[[`6487d36873`](https://github.com/nodejs/node/commit/6487d36873)] - **http**: avoid dictionary-mode objects in responses (Matteo Collina) [#66420](https://github.com/nodejs/node/pull/66420)
* \[[`f8d30110b6`](https://github.com/nodejs/node/commit/f8d30110b6)] - **http**: cache parser callbacks (Matteo Collina) [#66152](https://github.com/nodejs/node/pull/66152)
* \[[`e998d260d0`](https://github.com/nodejs/node/commit/e998d260d0)] - **(SEMVER-MINOR)** **http**: add isValidHeaderName() and isValidHeaderValue() (James M Snell) [#66334](https://github.com/nodejs/node/pull/66334)
* \[[`0bb98027e5`](https://github.com/nodejs/node/commit/0bb98027e5)] - **http**: avoid toLowerCase on the server hot path (Yagiz Nizipli) [#66120](https://github.com/nodejs/node/pull/66120)
* \[[`9819b0c432`](https://github.com/nodejs/node/commit/9819b0c432)] - **http**: normalize CONNECT request paths (Efe Karasakal) [#64876](https://github.com/nodejs/node/pull/64876)
* \[[`ab93a3d51b`](https://github.com/nodejs/node/commit/ab93a3d51b)] - **http**: preserve socket errors as response error causes (Khaidi Chu) [#66061](https://github.com/nodejs/node/pull/66061)
* \[[`15184e8212`](https://github.com/nodejs/node/commit/15184e8212)] - **http**: reduce per-request allocations in the server (Matteo Collina) [#65802](https://github.com/nodejs/node/pull/65802)
* \[[`7702a50e08`](https://github.com/nodejs/node/commit/7702a50e08)] - **(SEMVER-MINOR)** **http2**: add new connectionWindowSize option (Tim Perry) [#65619](https://github.com/nodejs/node/pull/65619)
* \[[`33e4ba358b`](https://github.com/nodejs/node/commit/33e4ba358b)] - **https**: handle invalid TLS options in proxied requests (Christian Aurich Zanettini Martins) [#66096](https://github.com/nodejs/node/pull/66096)
* \[[`6f610a836b`](https://github.com/nodejs/node/commit/6f610a836b)] - **inspector**: throw ERR\_INSPECTOR\_NOT\_AVAILABLE without an agent (Shelley Vohr) [#66239](https://github.com/nodejs/node/pull/66239)
* \[[`697980b6fc`](https://github.com/nodejs/node/commit/697980b6fc)] - **inspector**: fix connectToMainThread() abort without parent inspector (Shelley Vohr) [#65976](https://github.com/nodejs/node/pull/65976)
* \[[`37b3db91eb`](https://github.com/nodejs/node/commit/37b3db91eb)] - **(SEMVER-MINOR)** **lib**: fix stream loading bug in node:bench (James M Snell) [#66114](https://github.com/nodejs/node/pull/66114)
* \[[`46a8a5dd65`](https://github.com/nodejs/node/commit/46a8a5dd65)] - **lib**: add primitive fast path to structuredClone (Guilherme Araújo) [#64190](https://github.com/nodejs/node/pull/64190)
* \[[`bec7c53400`](https://github.com/nodejs/node/commit/bec7c53400)] - **meta**: bump github/codeql-action/analyze from 4.38.0 to 4.38.2 (dependabot\[bot]) [#66443](https://github.com/nodejs/node/pull/66443)
* \[[`39d721abed`](https://github.com/nodejs/node/commit/39d721abed)] - **meta**: bump github/codeql-action/autobuild from 4.38.0 to 4.38.2 (dependabot\[bot]) [#66444](https://github.com/nodejs/node/pull/66444)
* \[[`963804db4d`](https://github.com/nodejs/node/commit/963804db4d)] - **meta**: bump github/codeql-action/init from 4.38.0 to 4.38.2 (dependabot\[bot]) [#66446](https://github.com/nodejs/node/pull/66446)
* \[[`5837ef8608`](https://github.com/nodejs/node/commit/5837ef8608)] - **meta**: bump github/codeql-action/upload-sarif from 4.38.0 to 4.38.2 (dependabot\[bot]) [#66447](https://github.com/nodejs/node/pull/66447)
* \[[`d8109f9831`](https://github.com/nodejs/node/commit/d8109f9831)] - **meta**: label permission model changes correctly (Rafael Gonzaga) [#66208](https://github.com/nodejs/node/pull/66208)
* \[[`27f20dcaea`](https://github.com/nodejs/node/commit/27f20dcaea)] - **meta**: bump codecov/codecov-action from 7.0.0 to 7.1.0 (dependabot\[bot]) [#66103](https://github.com/nodejs/node/pull/66103)
* \[[`dc6ef03ab6`](https://github.com/nodejs/node/commit/dc6ef03ab6)] - **module**: centralize builtin exposure policies (Jungwon Sohn) [#66292](https://github.com/nodejs/node/pull/66292)
* \[[`f36efeb350`](https://github.com/nodejs/node/commit/f36efeb350)] - **module**: avoid allocating a cache key string for every require() (Samuel Attard) [#63884](https://github.com/nodejs/node/pull/63884)
* \[[`9baea33509`](https://github.com/nodejs/node/commit/9baea33509)] - **module**: normalize package map paths (Hilary Asogwa) [#66054](https://github.com/nodejs/node/pull/66054)
* \[[`354c2cc867`](https://github.com/nodejs/node/commit/354c2cc867)] - **net**: speed up BlockList.check for strings (Yagiz Nizipli) [#66166](https://github.com/nodejs/node/pull/66166)
* \[[`995a67a5ff`](https://github.com/nodejs/node/commit/995a67a5ff)] - **net**: skip IPv6 regex when the string has no colon (Yagiz Nizipli) [#66165](https://github.com/nodejs/node/pull/66165)
* \[[`1c7b4feebb`](https://github.com/nodejs/node/commit/1c7b4feebb)] - **node-api**: do not crash on module version mismatch (Alexey Karimov) [#66019](https://github.com/nodejs/node/pull/66019)
* \[[`e06aa62cec`](https://github.com/nodejs/node/commit/e06aa62cec)] - **(SEMVER-MINOR)** **perf\_hooks**: fix truncation of monitorEventLoopDelay() resolution (James M Snell) [#66115](https://github.com/nodejs/node/pull/66115)
* \[[`ee126e37e8`](https://github.com/nodejs/node/commit/ee126e37e8)] - **(SEMVER-MINOR)** **perf\_hooks**: allow RecordableHistogram to record 0 (James M Snell) [#66114](https://github.com/nodejs/node/pull/66114)
* \[[`1fef8f54db`](https://github.com/nodejs/node/commit/1fef8f54db)] - **(SEMVER-MINOR)** **perf\_hooks**: add histogram.diff() (James M Snell) [#66099](https://github.com/nodejs/node/pull/66099)
* \[[`a6dfb3bcfd`](https://github.com/nodejs/node/commit/a6dfb3bcfd)] - **(SEMVER-MINOR)** **perf\_hooks**: report histogram memory to V8 (James M Snell) [#66099](https://github.com/nodejs/node/pull/66099)
* \[[`f1b9758c4e`](https://github.com/nodejs/node/commit/f1b9758c4e)] - **(SEMVER-MINOR)** **perf\_hooks**: add histogram.snapshot() (James M Snell) [#66099](https://github.com/nodejs/node/pull/66099)
* \[[`e2ae016df8`](https://github.com/nodejs/node/commit/e2ae016df8)] - **(SEMVER-MINOR)** **perf\_hooks**: add histogram export format version 2 (James M Snell) [#66098](https://github.com/nodejs/node/pull/66098)
* \[[`291d56ea3e`](https://github.com/nodejs/node/commit/291d56ea3e)] - **(SEMVER-MINOR)** **perf\_hooks**: harden histogram CBOR import validation (James M Snell) [#66098](https://github.com/nodejs/node/pull/66098)
* \[[`70c269aadc`](https://github.com/nodejs/node/commit/70c269aadc)] - **perf\_hooks**: restore GC tracking after snapshot deserialization (James M Snell) [#66097](https://github.com/nodejs/node/pull/66097)
* \[[`c545d044ee`](https://github.com/nodejs/node/commit/c545d044ee)] - **perf\_hooks**: track GC callback installation natively (James M Snell) [#66097](https://github.com/nodejs/node/pull/66097)
* \[[`0bd9905959`](https://github.com/nodejs/node/commit/0bd9905959)] - **perf\_hooks**: fix PerformanceObserver observer count leaks (James M Snell) [#66097](https://github.com/nodejs/node/pull/66097)
* \[[`8ec2a940c5`](https://github.com/nodejs/node/commit/8ec2a940c5)] - **perf\_hooks**: add performanceNodeTiming.uvMetricsInfoBigInt (James M Snell) [#66094](https://github.com/nodejs/node/pull/66094)
* \[[`829891da14`](https://github.com/nodejs/node/commit/829891da14)] - **perf\_hooks**: fix truncation of uvMetricsInfo counters (James M Snell) [#66094](https://github.com/nodejs/node/pull/66094)
* \[[`afa02fb69c`](https://github.com/nodejs/node/commit/afa02fb69c)] - **process**: use a class for nextTick resources (Matteo Collina) [#66415](https://github.com/nodejs/node/pull/66415)
* \[[`6299b09d5c`](https://github.com/nodejs/node/commit/6299b09d5c)] - **(SEMVER-MINOR)** **process**: graduate process.ref/unref from experimental (James M Snell) [#66213](https://github.com/nodejs/node/pull/66213)
* \[[`0965b28252`](https://github.com/nodejs/node/commit/0965b28252)] - **querystring**: speed up default parse and unescape (Yagiz Nizipli) [#66175](https://github.com/nodejs/node/pull/66175)
* \[[`bd547c1176`](https://github.com/nodejs/node/commit/bd547c1176)] - **quic**: cleanly tear down QUIC after worker.terminate() (Tim Perry) [#66093](https://github.com/nodejs/node/pull/66093)
* \[[`52bbf8cb15`](https://github.com/nodejs/node/commit/52bbf8cb15)] - **report**: skip unresponsive workers on process timeout (Trivikram Kamat) [#66304](https://github.com/nodejs/node/pull/66304)
* \[[`702c744643`](https://github.com/nodejs/node/commit/702c744643)] - **sea**: add test and update docs for import() with code cache (Ali Hassan) [#62678](https://github.com/nodejs/node/pull/62678)
* \[[`a1bfb6fcda`](https://github.com/nodejs/node/commit/a1bfb6fcda)] - **sea**: add vfsArchive to serve the assets from a ZIP archive (Matteo Collina) [#65810](https://github.com/nodejs/node/pull/65810)
* \[[`fe76deb537`](https://github.com/nodejs/node/commit/fe76deb537)] - **sqlite**: restore connection state on reopen (Guilherme Araújo) [#66042](https://github.com/nodejs/node/pull/66042)
* \[[`4977e51ff3`](https://github.com/nodejs/node/commit/4977e51ff3)] - **sqlite**: use cached strings for property keys (Kyungrae Kang) [#65902](https://github.com/nodejs/node/pull/65902)
* \[[`cd16dcb82b`](https://github.com/nodejs/node/commit/cd16dcb82b)] - **sqlite**: reject plans with unusable virtual table parameters (Trivikram Kamat) [#66215](https://github.com/nodejs/node/pull/66215)
* \[[`33caead942`](https://github.com/nodejs/node/commit/33caead942)] - **sqlite**: throw on oversized string values (Guilherme Araújo) [#66209](https://github.com/nodejs/node/pull/66209)
* \[[`41d6707b63`](https://github.com/nodejs/node/commit/41d6707b63)] - **(SEMVER-MINOR)** **sqlite**: rename DatabaseSync and StatementSync (Guilherme Araújo) [#65988](https://github.com/nodejs/node/pull/65988)
* \[[`583ee1ce64`](https://github.com/nodejs/node/commit/583ee1ce64)] - **sqlite**: run generator return() on cursor refilter (Trivikram Kamat) [#66195](https://github.com/nodejs/node/pull/66195)
* \[[`b46b6996e2`](https://github.com/nodejs/node/commit/b46b6996e2)] - **sqlite**: add virtual table support via createModule() (Trevor Burnham) [#65787](https://github.com/nodejs/node/pull/65787)
* \[[`edbff8caf1`](https://github.com/nodejs/node/commit/edbff8caf1)] - **src**: fix --process-timeout message when exit waits (Trivikram Kamat) [#66361](https://github.com/nodejs/node/pull/66361)
* \[[`cd814e7f23`](https://github.com/nodejs/node/commit/cd814e7f23)] - **src**: remove orphaned js\_udp\_wrap test binding (René) [#66399](https://github.com/nodejs/node/pull/66399)
* \[[`1e9c10b8ea`](https://github.com/nodejs/node/commit/1e9c10b8ea)] - **src**: assert that an IsolateData outlives its Environments (Shelley Vohr) [#66239](https://github.com/nodejs/node/pull/66239)
* \[[`286bffc0a1`](https://github.com/nodejs/node/commit/286bffc0a1)] - **src**: track handle cleanup per thread, not per IsolateData (Shelley Vohr) [#66239](https://github.com/nodejs/node/pull/66239)
* \[[`25c08fcd0d`](https://github.com/nodejs/node/commit/25c08fcd0d)] - **src**: remove `HAVE_QUIC` macro in favor of `OPENSSL_NO_QUIC` (Antoine du Hamel) [#66373](https://github.com/nodejs/node/pull/66373)
* \[[`5eea87c561`](https://github.com/nodejs/node/commit/5eea87c561)] - **src**: fix builds without SSL and SQLite (Filip Skokan) [#66372](https://github.com/nodejs/node/pull/66372)
* \[[`9696e47c32`](https://github.com/nodejs/node/commit/9696e47c32)] - **src**: reduce InternalCallbackScope overhead (Nigro Simone) [#66316](https://github.com/nodejs/node/pull/66316)
* \[[`60d0aa0cd4`](https://github.com/nodejs/node/commit/60d0aa0cd4)] - **(SEMVER-MINOR)** **src**: add --process-timeout=N (James M Snell) [#66138](https://github.com/nodejs/node/pull/66138)
* \[[`12962d8eb5`](https://github.com/nodejs/node/commit/12962d8eb5)] - **src**: fix FreeEnvironment() breaking JS in sibling Environments (Shelley Vohr) [#65977](https://github.com/nodejs/node/pull/65977)
* \[[`abccf93d9f`](https://github.com/nodejs/node/commit/abccf93d9f)] - **src**: let Environments on one isolate share a cleanup hook (Shelley Vohr) [#65777](https://github.com/nodejs/node/pull/65777)
* \[[`caa7858e4c`](https://github.com/nodejs/node/commit/caa7858e4c)] - **src**: fix abort when two Environments share an IsolateData (Shelley Vohr) [#65978](https://github.com/nodejs/node/pull/65978)
* \[[`f39916a7e3`](https://github.com/nodejs/node/commit/f39916a7e3)] - **(SEMVER-MINOR)** **src**: expose size and count in heap profile output (Ilyas Shabi) [#65737](https://github.com/nodejs/node/pull/65737)
* \[[`de34ddcf95`](https://github.com/nodejs/node/commit/de34ddcf95)] - **src**: throw on a malformed localStorage file (Trevor Burnham) [#65879](https://github.com/nodejs/node/pull/65879)
* \[[`6651596663`](https://github.com/nodejs/node/commit/6651596663)] - **src**: reserve shared\_array\_buffers capacity in Message::Deserialize (agape1225) [#65304](https://github.com/nodejs/node/pull/65304)
* \[[`74835eef19`](https://github.com/nodejs/node/commit/74835eef19)] - **src**: ensure Socket(fd) cannot bypass allow-net permission (James M Snell) [#66117](https://github.com/nodejs/node/pull/66117)
* \[[`d7c720f283`](https://github.com/nodejs/node/commit/d7c720f283)] - **src**: add a flag to keep the embedder's wasm streaming callback (Shelley Vohr) [#65690](https://github.com/nodejs/node/pull/65690)
* \[[`68931f70d9`](https://github.com/nodejs/node/commit/68931f70d9)] - **src**: free placeholder nodes for cppgc wrappers in MemoryTracker (Shelley Vohr) [#65793](https://github.com/nodejs/node/pull/65793)
* \[[`13dbf1923a`](https://github.com/nodejs/node/commit/13dbf1923a)] - **src**: fix task queue deadlock when built as C++23 (Shelley Vohr) [#66066](https://github.com/nodejs/node/pull/66066)
* \[[`0b00d5ea59`](https://github.com/nodejs/node/commit/0b00d5ea59)] - **(SEMVER-MINOR)** **src**: let embedders exempt linked bindings from the addon permission (Shelley Vohr) [#66067](https://github.com/nodejs/node/pull/66067)
* \[[`158f6f78d4`](https://github.com/nodejs/node/commit/158f6f78d4)] - **stream**: share webstreams async iterator methods (Matteo Collina) [#66392](https://github.com/nodejs/node/pull/66392)
* \[[`e241cb80da`](https://github.com/nodejs/node/commit/e241cb80da)] - **stream**: keep webstreams nil requests in fast mode (Matteo Collina) [#66230](https://github.com/nodejs/node/pull/66230)
* \[[`62187ab707`](https://github.com/nodejs/node/commit/62187ab707)] - **stream**: keep consumer state in fast mode (Matteo Collina) [#66266](https://github.com/nodejs/node/pull/66266)
* \[[`dcc8665f7e`](https://github.com/nodejs/node/commit/dcc8665f7e)] - **stream**: fix pipeline function tail deadlock (Dayun) [#65559](https://github.com/nodejs/node/pull/65559)
* \[[`247c0274c1`](https://github.com/nodejs/node/commit/247c0274c1)] - **stream**: skip write() checks in flowing pipe (Yagiz Nizipli) [#66182](https://github.com/nodejs/node/pull/66182)
* \[[`26102c22f2`](https://github.com/nodejs/node/commit/26102c22f2)] - **stream**: speed up flowing pipe of buffers (Yagiz Nizipli) [#66182](https://github.com/nodejs/node/pull/66182)
* \[[`81e4ac47a3`](https://github.com/nodejs/node/commit/81e4ac47a3)] - **stream**: support ArrayBufferView in Utf8Stream write() buffer mode (agape1225) [#65301](https://github.com/nodejs/node/pull/65301)
* \[[`f7f1116fc9`](https://github.com/nodejs/node/commit/f7f1116fc9)] - **stream**: fill out stream/iter test coverage (James M Snell) [#66079](https://github.com/nodejs/node/pull/66079)
* \[[`dca736ba05`](https://github.com/nodejs/node/commit/dca736ba05)] - **stream**: cleanup promise uses in stream/iter (James M Snell) [#66079](https://github.com/nodejs/node/pull/66079)
* \[[`55ef82ac0c`](https://github.com/nodejs/node/commit/55ef82ac0c)] - **stream**: make classic reads wake on return/throw/abort (James M Snell) [#66079](https://github.com/nodejs/node/pull/66079)
* \[[`4e8df7ceee`](https://github.com/nodejs/node/commit/4e8df7ceee)] - **stream**: correct strict pending-write behavior & cancellation (James M Snell) [#66079](https://github.com/nodejs/node/pull/66079)
* \[[`b44b8658d3`](https://github.com/nodejs/node/commit/b44b8658d3)] - **stream**: make stream/iter toWritable apply backpressure (James M Snell) [#66079](https://github.com/nodejs/node/pull/66079)
* \[[`3c9f8789c4`](https://github.com/nodejs/node/commit/3c9f8789c4)] - **stream**: trim per-pipe and per-tee costs in webstreams (Matteo Collina) [#66154](https://github.com/nodejs/node/pull/66154)
* \[[`d96a80930e`](https://github.com/nodejs/node/commit/d96a80930e)] - **stream**: update ShareImpl to retain factory abort listener (James M Snell) [#66030](https://github.com/nodejs/node/pull/66030)
* \[[`500b56774f`](https://github.com/nodejs/node/commit/500b56774f)] - **stream**: make Broadcast.from() only return the Broadcast (James M Snell) [#66030](https://github.com/nodejs/node/pull/66030)
* \[[`d40236c98e`](https://github.com/nodejs/node/commit/d40236c98e)] - **stream**: ensure streamable protocols precede fast paths (James M Snell) [#66030](https://github.com/nodejs/node/pull/66030)
* \[[`cdeb53e807`](https://github.com/nodejs/node/commit/cdeb53e807)] - **stream**: have broadcast clean factory listeners on cancel (James M Snell) [#66030](https://github.com/nodejs/node/pull/66030)
* \[[`84f9031add`](https://github.com/nodejs/node/commit/84f9031add)] - **stream**: ensure protocol and transform accessors are called once (James M Snell) [#66030](https://github.com/nodejs/node/pull/66030)
* \[[`1c7c0f5267`](https://github.com/nodejs/node/commit/1c7c0f5267)] - **stream**: make broadcast waiters use SafeSet (James M Snell) [#66030](https://github.com/nodejs/node/pull/66030)
* \[[`9b50b629a2`](https://github.com/nodejs/node/commit/9b50b629a2)] - **stream**: ensure nested async iterators are cancellation aware (James M Snell) [#66030](https://github.com/nodejs/node/pull/66030)
* \[[`a16320eb15`](https://github.com/nodejs/node/commit/a16320eb15)] - **stream**: trim per-stream costs in webstreams (Matteo Collina) [#66052](https://github.com/nodejs/node/pull/66052)
* \[[`3a77852e34`](https://github.com/nodejs/node/commit/3a77852e34)] - **stream,quic**: correct stream/iter writer implementations (James M Snell) [#66079](https://github.com/nodejs/node/pull/66079)
* \[[`6c5806b53c`](https://github.com/nodejs/node/commit/6c5806b53c)] - **test**: wait for ZIP source streams to close (Filip Skokan) [#66429](https://github.com/nodejs/node/pull/66429)
* \[[`4706cafc59`](https://github.com/nodejs/node/commit/4706cafc59)] - **test**: mark worker init failure flaky on SmartOS (Filip Skokan) [#66428](https://github.com/nodejs/node/pull/66428)
* \[[`c19e2cedd2`](https://github.com/nodejs/node/commit/c19e2cedd2)] - **test**: deflake process timeout report cleanup (Filip Skokan) [#66428](https://github.com/nodejs/node/pull/66428)
* \[[`1047188452`](https://github.com/nodejs/node/commit/1047188452)] - **test**: split process timeout report coverage (Filip Skokan) [#66428](https://github.com/nodejs/node/pull/66428)
* \[[`430262ecb0`](https://github.com/nodejs/node/commit/430262ecb0)] - **test**: do not hardcode V8 serialization header (Joyee Cheung) [#66442](https://github.com/nodejs/node/pull/66442)
* \[[`7b25cb811a`](https://github.com/nodejs/node/commit/7b25cb811a)] - **test**: make histogram external memory test less overfitting (Joyee Cheung) [#66416](https://github.com/nodejs/node/pull/66416)
* \[[`aead8a9019`](https://github.com/nodejs/node/commit/aead8a9019)] - **test**: cover Environments sharing an embedder-owned isolate (Shelley Vohr) [#66239](https://github.com/nodejs/node/pull/66239)
* \[[`f63ddfafdc`](https://github.com/nodejs/node/commit/f63ddfafdc)] - **test**: isolate styleText tests from the environment (Filip Skokan) [#66320](https://github.com/nodejs/node/pull/66320)
* \[[`a3ffd40d40`](https://github.com/nodejs/node/commit/a3ffd40d40)] - **test**: probe cluster workers with signal 0 (Filip Skokan) [#66320](https://github.com/nodejs/node/pull/66320)
* \[[`f59117e5fd`](https://github.com/nodejs/node/commit/f59117e5fd)] - **test**: deflake watch cwd with isolation none (Filip Skokan) [#66320](https://github.com/nodejs/node/pull/66320)
* \[[`f23010d837`](https://github.com/nodejs/node/commit/f23010d837)] - **test**: deflake esm loader http imports (Filip Skokan) [#66320](https://github.com/nodejs/node/pull/66320)
* \[[`3f51c49ff9`](https://github.com/nodejs/node/commit/3f51c49ff9)] - **test**: deflake http headers timeout keepalive (Filip Skokan) [#66320](https://github.com/nodejs/node/pull/66320)
* \[[`a5ee59cb00`](https://github.com/nodejs/node/commit/a5ee59cb00)] - **test**: deflake http server mixed request timeouts (Filip Skokan) [#66320](https://github.com/nodejs/node/pull/66320)
* \[[`7c3463901f`](https://github.com/nodejs/node/commit/7c3463901f)] - **test**: deflake inspector close connection test (Filip Skokan) [#66320](https://github.com/nodejs/node/pull/66320)
* \[[`fbdca3a120`](https://github.com/nodejs/node/commit/fbdca3a120)] - **test**: deflake debugger PID attachment and cleanup (Filip Skokan) [#66320](https://github.com/nodejs/node/pull/66320)
* \[[`534561358e`](https://github.com/nodejs/node/commit/534561358e)] - **test**: deflake inspector network fetch (Filip Skokan) [#66320](https://github.com/nodejs/node/pull/66320)
* \[[`1ff8d5c2c9`](https://github.com/nodejs/node/commit/1ff8d5c2c9)] - **test**: use correct constructor in test-sqlite-virtual-table (René) [#66401](https://github.com/nodejs/node/pull/66401)
* \[[`de797aa4b4`](https://github.com/nodejs/node/commit/de797aa4b4)] - **test**: check frame restore in CallbackScope (Nigro Simone) [#66316](https://github.com/nodejs/node/pull/66316)
* \[[`886fd32693`](https://github.com/nodejs/node/commit/886fd32693)] - **test**: use common.PIPE in fs.cp socket tests (Maksim Romanov) [#66329](https://github.com/nodejs/node/pull/66329)
* \[[`3c50781d10`](https://github.com/nodejs/node/commit/3c50781d10)] - **test**: deflake fast FFI buffer tests (Filip Skokan) [#66327](https://github.com/nodejs/node/pull/66327)
* \[[`1d8f9a2bfb`](https://github.com/nodejs/node/commit/1d8f9a2bfb)] - **test**: use Database in sqlite virtual table test (Trivikram Kamat) [#66307](https://github.com/nodejs/node/pull/66307)
* \[[`61a87a246f`](https://github.com/nodejs/node/commit/61a87a246f)] - **test**: deflake sliding window histogram test (James M Snell) [#66132](https://github.com/nodejs/node/pull/66132)
* \[[`017ff85b82`](https://github.com/nodejs/node/commit/017ff85b82)] - **test**: split FFI call and callback coverage (Filip Skokan) [#66287](https://github.com/nodejs/node/pull/66287)
* \[[`19d8d1992c`](https://github.com/nodejs/node/commit/19d8d1992c)] - **test**: add smoke tests for defer importing synthetic modules (Maya Lekova) [#65537](https://github.com/nodejs/node/pull/65537)
* \[[`fb3d90a986`](https://github.com/nodejs/node/commit/fb3d90a986)] - **test**: deflake test runner timeout coverage (Filip Skokan) [#66255](https://github.com/nodejs/node/pull/66255)
* \[[`cee8eb9c74`](https://github.com/nodejs/node/commit/cee8eb9c74)] - **test**: deflake inspector async hook setup (Filip Skokan) [#66255](https://github.com/nodejs/node/pull/66255)
* \[[`37e9397bfe`](https://github.com/nodejs/node/commit/37e9397bfe)] - **test**: deflake debugger function name extraction (Filip Skokan) [#66231](https://github.com/nodejs/node/pull/66231)
* \[[`7b1c74eec3`](https://github.com/nodejs/node/commit/7b1c74eec3)] - **test**: use spawnSync helpers in cpu-prof tests (Junhwan Choi) [#65694](https://github.com/nodejs/node/pull/65694)
* \[[`2fd51fd5d8`](https://github.com/nodejs/node/commit/2fd51fd5d8)] - **test**: reduce expensive crypto test variants (Filip Skokan) [#66244](https://github.com/nodejs/node/pull/66244)
* \[[`c155248f1b`](https://github.com/nodejs/node/commit/c155248f1b)] - **test**: ensure fsPromises.watch rejects on abort (Jihwan) [#65768](https://github.com/nodejs/node/pull/65768)
* \[[`42255ab9b1`](https://github.com/nodejs/node/commit/42255ab9b1)] - **test**: avoid using promise wrapped timers (James M Snell) [#66079](https://github.com/nodejs/node/pull/66079)
* \[[`62f92a5d3d`](https://github.com/nodejs/node/commit/62f92a5d3d)] - **test**: enable trace\_events tests with perfetto (Chengzhong Wu) [#66068](https://github.com/nodejs/node/pull/66068)
* \[[`f2972bf10a`](https://github.com/nodejs/node/commit/f2972bf10a)] - **test**: accept ENOTEMPTY from libc++ in test-fs-rm (Shelley Vohr) [#66065](https://github.com/nodejs/node/pull/66065)
* \[[`e0d0c5d0e2`](https://github.com/nodejs/node/commit/e0d0c5d0e2)] - **test**: use heapdump test for SecureContext memory tracking (Mert Can Altin) [#64344](https://github.com/nodejs/node/pull/64344)
* \[[`953e46789d`](https://github.com/nodejs/node/commit/953e46789d)] - **test**: update WPT for url to c48d58747e (Node.js GitHub Bot) [#66141](https://github.com/nodejs/node/pull/66141)
* \[[`aaa7a7aebe`](https://github.com/nodejs/node/commit/aaa7a7aebe)] - **test**: deflake watch mode tests (Filip Skokan) [#66232](https://github.com/nodejs/node/pull/66232)
* \[[`ee457cd306`](https://github.com/nodejs/node/commit/ee457cd306)] - **test**: mark some tests flaky for now on riscv64 (Stewart X Addison) [#65781](https://github.com/nodejs/node/pull/65781)
* \[[`9b432e97ca`](https://github.com/nodejs/node/commit/9b432e97ca)] - **test**: deflake pummel/test-timers (Filip Skokan) [#66135](https://github.com/nodejs/node/pull/66135)
* \[[`63d32369b1`](https://github.com/nodejs/node/commit/63d32369b1)] - **test**: update WPT for WebCryptoAPI to a6a0a0292a (Node.js GitHub Bot) [#66142](https://github.com/nodejs/node/pull/66142)
* \[[`658951021a`](https://github.com/nodejs/node/commit/658951021a)] - **test**: deflake test-bench-errors (Filip Skokan) [#66153](https://github.com/nodejs/node/pull/66153)
* \[[`1be62ae8d5`](https://github.com/nodejs/node/commit/1be62ae8d5)] - **test**: deflake test-http2-debug (Filip Skokan) [#66151](https://github.com/nodejs/node/pull/66151)
* \[[`b9f61ea9ab`](https://github.com/nodejs/node/commit/b9f61ea9ab)] - **test**: deflake test-benchmark-crypto (Filip Skokan) [#66151](https://github.com/nodejs/node/pull/66151)
* \[[`fb9aba67dd`](https://github.com/nodejs/node/commit/fb9aba67dd)] - **test**: deflake long timer WPTs (Marco) [#63106](https://github.com/nodejs/node/pull/63106)
* \[[`53b3a053a2`](https://github.com/nodejs/node/commit/53b3a053a2)] - **test**: update test426-fixtures to 9ea66b466fd37e8a4050033d23b3e1480973c3d (Node.js GitHub Bot) [#66493](https://github.com/nodejs/node/pull/66493)
* \[[`ef1a602283`](https://github.com/nodejs/node/commit/ef1a602283)] - **test**: update WPT for WebCryptoAPI to 3127c3a492 (Node.js GitHub Bot) [#66492](https://github.com/nodejs/node/pull/66492)
* \[[`d573726238`](https://github.com/nodejs/node/commit/d573726238)] - **test\_runner**: do not crash on stdout that mimics a v8 frame (Muhammad Faizan Uddin) [#66273](https://github.com/nodejs/node/pull/66273)
* \[[`ea2c1bbe8b`](https://github.com/nodejs/node/commit/ea2c1bbe8b)] - **test\_runner**: do not reuse a worker ID held by a running file (Vasiliy Serpokryl) [#65739](https://github.com/nodejs/node/pull/65739)
* \[[`0f0892e59c`](https://github.com/nodejs/node/commit/0f0892e59c)] - **tls**: initialize session and SNI before connecting (Steven) [#65624](https://github.com/nodejs/node/pull/65624)
* \[[`684cae7909`](https://github.com/nodejs/node/commit/684cae7909)] - **tls**: preserve CN name constraints with OpenSSL 4.1 (Filip Skokan) [#65957](https://github.com/nodejs/node/pull/65957)
* \[[`df96c928a2`](https://github.com/nodejs/node/commit/df96c928a2)] - **tools**: limit checkout for lint-cpp (Yuya Inoue) [#66474](https://github.com/nodejs/node/pull/66474)
* \[[`593c96446c`](https://github.com/nodejs/node/commit/593c96446c)] - **tools**: limit format-cpp checkout history (Yuya Inoue) [#66479](https://github.com/nodejs/node/pull/66479)
* \[[`4251b8b1f9`](https://github.com/nodejs/node/commit/4251b8b1f9)] - **tools**: share CI and benchmark build configuration (Filip Skokan) [#66351](https://github.com/nodejs/node/pull/66351)
* \[[`6948dd1232`](https://github.com/nodejs/node/commit/6948dd1232)] - **tools**: fix nixpkgs updater script (Antoine du Hamel) [#66337](https://github.com/nodejs/node/pull/66337)
* \[[`e3f861b23e`](https://github.com/nodejs/node/commit/e3f861b23e)] - **tools**: wait for test processes instead of polling (Matteo Collina) [#66432](https://github.com/nodejs/node/pull/66432)
* \[[`14cc5877d7`](https://github.com/nodejs/node/commit/14cc5877d7)] - **tools**: avoid repeated subtree scans in must-call-assert (Yuya Inoue) [#66408](https://github.com/nodejs/node/pull/66408)
* \[[`7fb76f9554`](https://github.com/nodejs/node/commit/7fb76f9554)] - **tools**: add cache to `lint-js-and-md` (Antoine du Hamel) [#66412](https://github.com/nodejs/node/pull/66412)
* \[[`9015b992d0`](https://github.com/nodejs/node/commit/9015b992d0)] - **tools**: bump brace-expansion in /tools/clang-format (dependabot\[bot]) [#66418](https://github.com/nodejs/node/pull/66418)
* \[[`84db29179a`](https://github.com/nodejs/node/commit/84db29179a)] - **tools**: bump brace-expansion from 5.0.9 to 5.0.12 in /tools/eslint (dependabot\[bot]) [#66417](https://github.com/nodejs/node/pull/66417)
* \[[`a952647d86`](https://github.com/nodejs/node/commit/a952647d86)] - **tools**: keep OpenSSL update PRs in draft until arch configs committed (René) [#66398](https://github.com/nodejs/node/pull/66398)
* \[[`2d3be6adf2`](https://github.com/nodejs/node/commit/2d3be6adf2)] - **tools**: update gyp-next to 0.22.3 (Node.js GitHub Bot) [#66397](https://github.com/nodejs/node/pull/66397)
* \[[`5f54bc7763`](https://github.com/nodejs/node/commit/5f54bc7763)] - **tools**: fix Nix diff tools when pushing more than 1 commit (Antoine du Hamel) [#66383](https://github.com/nodejs/node/pull/66383)
* \[[`2c06236669`](https://github.com/nodejs/node/commit/2c06236669)] - **tools**: reduce bundle size of `benchmarkTools.nix` (#65388) (Antoine du Hamel) [#65388](https://github.com/nodejs/node/pull/65388)
* \[[`b10949cdca`](https://github.com/nodejs/node/commit/b10949cdca)] - **tools**: add `deps/LIEF` to the ignore list of `test-shared.yml` (Antoine du Hamel) [#66342](https://github.com/nodejs/node/pull/66342)
* \[[`80cd5d8143`](https://github.com/nodejs/node/commit/80cd5d8143)] - **tools**: bump the doc group in /tools/doc with 4 updates (dependabot\[bot]) [#66295](https://github.com/nodejs/node/pull/66295)
* \[[`aaaca48ce8`](https://github.com/nodejs/node/commit/aaaca48ce8)] - **tools**: check CI availability and workload (Filip Skokan) [#66280](https://github.com/nodejs/node/pull/66280)
* \[[`0607f14c3a`](https://github.com/nodejs/node/commit/0607f14c3a)] - **tools**: enable temporal by default in Nix integration (Antoine du Hamel) [#66267](https://github.com/nodejs/node/pull/66267)
* \[[`605938efb3`](https://github.com/nodejs/node/commit/605938efb3)] - **tools**: reduce source tarball compression in CI (inoway46) [#66228](https://github.com/nodejs/node/pull/66228)
* \[[`0913452391`](https://github.com/nodejs/node/commit/0913452391)] - **tools**: add lief to automated dependency updates (René) [#66242](https://github.com/nodejs/node/pull/66242)
* \[[`63469ca078`](https://github.com/nodejs/node/commit/63469ca078)] - **tools**: add resume-ci label handling (Filip Skokan) [#65945](https://github.com/nodejs/node/pull/65945)
* \[[`8e79b1fa36`](https://github.com/nodejs/node/commit/8e79b1fa36)] - **typings**: wire up spawn\_sync internal binding types (agape1225) [#65996](https://github.com/nodejs/node/pull/65996)
* \[[`0845991255`](https://github.com/nodejs/node/commit/0845991255)] - **typings**: share AsyncWrap and HandleWrap types (Seongeun Lee) [#66150](https://github.com/nodejs/node/pull/66150)
* \[[`e90ba99def`](https://github.com/nodejs/node/commit/e90ba99def)] - **typings**: add mksnapshot internal binding types (Seongeun Lee) [#65901](https://github.com/nodejs/node/pull/65901)
* \[[`8623a13d97`](https://github.com/nodejs/node/commit/8623a13d97)] - **typings**: wire up quic internal binding types (agape1225) [#65556](https://github.com/nodejs/node/pull/65556)
* \[[`7202aa55a7`](https://github.com/nodejs/node/commit/7202aa55a7)] - **url**: create URLSearchParams collision map lazily (Romain Lanz) [#65801](https://github.com/nodejs/node/pull/65801)
* \[[`aff60171cd`](https://github.com/nodejs/node/commit/aff60171cd)] - **util**: make mime parsing faster (James M Snell) [#66369](https://github.com/nodejs/node/pull/66369)
* \[[`83a1697f1c`](https://github.com/nodejs/node/commit/83a1697f1c)] - **util**: fix inspect indentation of detached DataView (Miodrag Obradovic) [#66421](https://github.com/nodejs/node/pull/66421)
* \[[`33ef1780fd`](https://github.com/nodejs/node/commit/33ef1780fd)] - **util**: show SuppressedError's error/suppressed properties on inspect (agape1225) [#66159](https://github.com/nodejs/node/pull/66159)
* \[[`dbb0e6e164`](https://github.com/nodejs/node/commit/dbb0e6e164)] - **util,assert**: expose util.isPartialDeepStrictEqual() (Thomas Hunter II) [#66118](https://github.com/nodejs/node/pull/66118)
* \[[`afb61d6ca4`](https://github.com/nodejs/node/commit/afb61d6ca4)] - **vfs**: make the reserved root readable through fs (Philipp Dunkel) [#66140](https://github.com/nodejs/node/pull/66140)
* \[[`83c0e30cd7`](https://github.com/nodejs/node/commit/83c0e30cd7)] - **vfs**: drop --vfs-mount, pin the load mount point (Philipp Dunkel) [#66162](https://github.com/nodejs/node/pull/66162)
* \[[`9656992aff`](https://github.com/nodejs/node/commit/9656992aff)] - **vfs**: support recursive readdir in ZipProvider (Philipp Dunkel) [#66127](https://github.com/nodejs/node/pull/66127)
* \[[`d5b65c3b94`](https://github.com/nodejs/node/commit/d5b65c3b94)] - **vfs**: validate ZipProvider parent directories (Trivikram Kamat) [#65829](https://github.com/nodejs/node/pull/65829)
* \[[`41e9ab96cd`](https://github.com/nodejs/node/commit/41e9ab96cd)] - **watch**: escape quotes and backslashes in NODE\_OPTIONS (Trivikram Kamat) [#66363](https://github.com/nodejs/node/pull/66363)
* \[[`17964bb699`](https://github.com/nodejs/node/commit/17964bb699)] - **watch**: detect files replaced via unlink and create (Marco) [#63888](https://github.com/nodejs/node/pull/63888)
* \[[`be7f637d0e`](https://github.com/nodejs/node/commit/be7f637d0e)] - **watch**: strip watch flags from NODE\_OPTIONS in child process (Marco) [#62143](https://github.com/nodejs/node/pull/62143)
* \[[`6c23e21c00`](https://github.com/nodejs/node/commit/6c23e21c00)] - **worker**: discard queued messages on termination (Filip Skokan) [#66354](https://github.com/nodejs/node/pull/66354)
* \[[`ee51b0412f`](https://github.com/nodejs/node/commit/ee51b0412f)] - **worker**: serialize messages after exit (Filip Skokan) [#66354](https://github.com/nodejs/node/pull/66354)
* \[[`c2c5f4ccbe`](https://github.com/nodejs/node/commit/c2c5f4ccbe)] - **worker**: preserve blob module URLs (Filip Skokan) [#66354](https://github.com/nodejs/node/pull/66354)
* \[[`05d533ede5`](https://github.com/nodejs/node/commit/05d533ede5)] - **worker**: convert importScripts arguments first (Filip Skokan) [#66354](https://github.com/nodejs/node/pull/66354)
* \[[`230cd0ce43`](https://github.com/nodejs/node/commit/230cd0ce43)] - **worker**: fix postMessage overload resolution (Filip Skokan) [#66354](https://github.com/nodejs/node/pull/66354)
* \[[`78b502a565`](https://github.com/nodejs/node/commit/78b502a565)] - **worker**: add Symbol.toStringTag to BroadcastChannel (Lazizbek Ergashev) [#65532](https://github.com/nodejs/node/pull/65532)
* \[[`56e6a5c8d8`](https://github.com/nodejs/node/commit/56e6a5c8d8)] - **worker**: add Symbol.toStringTag to MessageChannel and MessagePort (Lazizbek Ergashev) [#65532](https://github.com/nodejs/node/pull/65532)
* \[[`b896580c47`](https://github.com/nodejs/node/commit/b896580c47)] - **worker**: remove messageerror listeners on exit (Dayun) [#66075](https://github.com/nodejs/node/pull/66075)
* \[[`19732fc576`](https://github.com/nodejs/node/commit/19732fc576)] - **worker**: strip types in Web Worker module entries (Hubert Walczak) [#66085](https://github.com/nodejs/node/pull/66085)
* \[[`bb3d33e610`](https://github.com/nodejs/node/commit/bb3d33e610)] - **zlib**: fix abort with decodeStrings: false (James Ross) [#66359](https://github.com/nodejs/node/pull/66359)
* \[[`9b350d80ff`](https://github.com/nodejs/node/commit/9b350d80ff)] - **zlib**: pledge input size in async zstdCompress() (James Ross) [#66358](https://github.com/nodejs/node/pull/66358)
* \[[`6c927c0009`](https://github.com/nodejs/node/commit/6c927c0009)] - **zlib**: preserve brotli params and dictionary on reset (Xia Chao) [#66157](https://github.com/nodejs/node/pull/66157)
* \[[`54e93301a1`](https://github.com/nodejs/node/commit/54e93301a1)] - **zlib**: reject reset after gzip/deflate emitted incomplete output (Xia Chao) [#66179](https://github.com/nodejs/node/pull/66179)
* \[[`d84b4550e5`](https://github.com/nodejs/node/commit/d84b4550e5)] - **zlib**: reject reset while a zstd frame is incomplete (Xia Chao) [#66088](https://github.com/nodejs/node/pull/66088)

Related Repositories