From 9883d0ace01dd715e1dd8b95ed0ab8906b60a405 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2026 18:29:55 +0000 Subject: [PATCH] feat(blog): create post for v26.9.0 (#9161) Co-authored-by: Create or Update Pull Request Action --- apps/site/pages/en/blog/release/v26.9.0.md | 300 +++++++++++++++++++++ 1 file changed, 300 insertions(+) create mode 100644 apps/site/pages/en/blog/release/v26.9.0.md diff --git a/apps/site/pages/en/blog/release/v26.9.0.md b/apps/site/pages/en/blog/release/v26.9.0.md new file mode 100644 index 0000000000000..cbb7caf09c82e --- /dev/null +++ b/apps/site/pages/en/blog/release/v26.9.0.md @@ -0,0 +1,300 @@ +--- +date: '2026-09-16T18:17:42.027Z' +category: release +title: Node.js 26.9.0 (Current) +layout: blog-post +author: Antoine du Hamel +--- + +## 2026-09-16, Version 26.9.0 (Current), @aduh95 + +### Notable Changes + +- \[[`d414624dce`](https://github.com/nodejs/node/commit/d414624dce)] - **(SEMVER-MINOR)** **crypto**: add a generic MAC API (Filip Skokan) [#65553](https://github.com/nodejs/node/pull/65553) +- \[[`7ac458f802`](https://github.com/nodejs/node/commit/7ac458f802)] - **(SEMVER-MINOR)** **crypto**: discover ciphers from OpenSSL providers (Filip Skokan) [#65484](https://github.com/nodejs/node/pull/65484) +- \[[`7c7e95a3bd`](https://github.com/nodejs/node/commit/7c7e95a3bd)] - **(SEMVER-MINOR)** **crypto**: discover hashes from OpenSSL providers (Filip Skokan) [#65484](https://github.com/nodejs/node/pull/65484) +- \[[`2d2f4f6d1a`](https://github.com/nodejs/node/commit/2d2f4f6d1a)] - **(SEMVER-MINOR)** **ffi**: enable module by default (Matteo Collina) [#65475](https://github.com/nodejs/node/pull/65475) +- \[[`657415c6df`](https://github.com/nodejs/node/commit/657415c6df)] - **(SEMVER-MINOR)** **lib**: implement `node:bench` (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606) +- \[[`ebcfec2f0c`](https://github.com/nodejs/node/commit/ebcfec2f0c)] - **(SEMVER-MINOR)** **perf\_hooks**: implement Histogram `meanCI` API (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606) +- \[[`e1913630c3`](https://github.com/nodejs/node/commit/e1913630c3)] - **(SEMVER-MINOR)** **perf\_hooks**: add CBOR export/import for histogram exchange (James M Snell) [#65434](https://github.com/nodejs/node/pull/65434) +- \[[`8e9151c9f2`](https://github.com/nodejs/node/commit/8e9151c9f2)] - **(SEMVER-MINOR)** **src**: let embedders supply a builtin code cache without a snapshot (Shelley Vohr) [#65352](https://github.com/nodejs/node/pull/65352) +- \[[`889854f18b`](https://github.com/nodejs/node/commit/889854f18b)] - **(SEMVER-MINOR)** **src,lib**: implement experimental DTLS API (James M Snell) [#63182](https://github.com/nodejs/node/pull/63182) +- \[[`5198142c59`](https://github.com/nodejs/node/commit/5198142c59)] - **(SEMVER-MINOR)** **vfs**: integrate with CJS and ESM module loaders (Matteo Collina) [#63653](https://github.com/nodejs/node/pull/63653) +- \[[`5af9d72e7f`](https://github.com/nodejs/node/commit/5af9d72e7f)] - **(SEMVER-MINOR)** **worker**: add support for Web Workers (Aviv Keller) [#64894](https://github.com/nodejs/node/pull/64894) + +### Commits + +- \[[`59dcad3f44`](https://github.com/nodejs/node/commit/59dcad3f44)] - **(SEMVER-MINOR)** **benchmark**: implement node:bench version of bench tools (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606) +- \[[`6bdb6dd8fa`](https://github.com/nodejs/node/commit/6bdb6dd8fa)] - **benchmark**: fix max-regressions detection in compare.js (James M Snell) [#65587](https://github.com/nodejs/node/pull/65587) +- \[[`49d40091ba`](https://github.com/nodejs/node/commit/49d40091ba)] - **benchmark**: add --analyze option to benchmark/scatter.js (James M Snell) [#65594](https://github.com/nodejs/node/pull/65594) +- \[[`bd40a9a19a`](https://github.com/nodejs/node/commit/bd40a9a19a)] - **benchmark**: add crypto class benchmarks (Filip Skokan) [#65518](https://github.com/nodejs/node/pull/65518) +- \[[`6bff2238f5`](https://github.com/nodejs/node/commit/6bff2238f5)] - **buffer**: pad aligned allocations by a multiple of 8 (Lazizbek Ergashev) [#65605](https://github.com/nodejs/node/pull/65605) +- \[[`37d12946dd`](https://github.com/nodejs/node/commit/37d12946dd)] - **buffer**: prevent abort on indexOf with lone surrogate needle (Rafael Gonzaga) [#65430](https://github.com/nodejs/node/pull/65430) +- \[[`02f8eb3b2d`](https://github.com/nodejs/node/commit/02f8eb3b2d)] - **build**: add `--shared-perfetto` flag (Antoine du Hamel) [#65614](https://github.com/nodejs/node/pull/65614) +- \[[`fe7032ec41`](https://github.com/nodejs/node/commit/fe7032ec41)] - **build**: enable V8 gdb/lldb plugin support (Chengzhong Wu) [#65786](https://github.com/nodejs/node/pull/65786) +- \[[`109f2caf80`](https://github.com/nodejs/node/commit/109f2caf80)] - **build**: allow linking shared dependencies in the GN build (Shelley Vohr) [#65797](https://github.com/nodejs/node/pull/65797) +- \[[`55213fd8a8`](https://github.com/nodejs/node/commit/55213fd8a8)] - **build**: enable the V8 sandbox in shared-cage builds (Shelley Vohr) [#62237](https://github.com/nodejs/node/pull/62237) +- \[[`120929a1b3`](https://github.com/nodejs/node/commit/120929a1b3)] - **build**: add `--shared-highway` configure flag (Antoine du Hamel) [#65686](https://github.com/nodejs/node/pull/65686) +- \[[`c99af0942b`](https://github.com/nodejs/node/commit/c99af0942b)] - **build**: add `--shared-abseil` configure flag (Antoine du Hamel) [#65682](https://github.com/nodejs/node/pull/65682) +- \[[`431c2bf0eb`](https://github.com/nodejs/node/commit/431c2bf0eb)] - **build**: define V8\_CONTIGUOUS\_COMPRESSED\_RO\_SPACE for shared cage (Shelley Vohr) [#65464](https://github.com/nodejs/node/pull/65464) +- \[[`b6b5764c6e`](https://github.com/nodejs/node/commit/b6b5764c6e)] - **build**: remove obsolete configure flags (Chengzhong Wu) [#65456](https://github.com/nodejs/node/pull/65456) +- \[[`a623ee29d9`](https://github.com/nodejs/node/commit/a623ee29d9)] - **build,src**: make --use-largepages a no-op (Joyee Cheung) [#65389](https://github.com/nodejs/node/pull/65389) +- \[[`2f494cb7aa`](https://github.com/nodejs/node/commit/2f494cb7aa)] - **crypto**: fix multi-prime RSA JWKs (Filip Skokan) [#65649](https://github.com/nodejs/node/pull/65649) +- \[[`501d8ac815`](https://github.com/nodejs/node/commit/501d8ac815)] - **crypto**: cache valid ECDH key pairs (Filip Skokan) [#65615](https://github.com/nodejs/node/pull/65615) +- \[[`3fd905ea8f`](https://github.com/nodejs/node/commit/3fd905ea8f)] - **crypto**: add strict mode to --force-fips (Filip Skokan) [#65645](https://github.com/nodejs/node/pull/65645) +- \[[`54b3cdb805`](https://github.com/nodejs/node/commit/54b3cdb805)] - **crypto**: add FIPS indicator diagnostics channel (Filip Skokan) [#65645](https://github.com/nodejs/node/pull/65645) +- \[[`3e6e931fc9`](https://github.com/nodejs/node/commit/3e6e931fc9)] - **crypto**: fix public PKCS8 export error (한국) [#65609](https://github.com/nodejs/node/pull/65609) +- \[[`d414624dce`](https://github.com/nodejs/node/commit/d414624dce)] - **(SEMVER-MINOR)** **crypto**: add a generic MAC API (Filip Skokan) [#65553](https://github.com/nodejs/node/pull/65553) +- \[[`eef579047c`](https://github.com/nodejs/node/commit/eef579047c)] - **crypto**: validate JWK usages before key\_ops (Filip Skokan) [#65550](https://github.com/nodejs/node/pull/65550) +- \[[`9a9b137a24`](https://github.com/nodejs/node/commit/9a9b137a24)] - **crypto**: fix private SPKI export error (Filip Skokan) [#65550](https://github.com/nodejs/node/pull/65550) +- \[[`9941fb5dab`](https://github.com/nodejs/node/commit/9941fb5dab)] - **crypto**: fix RSA-PSS oversized salt handling (Filip Skokan) [#65550](https://github.com/nodejs/node/pull/65550) +- \[[`09b431596a`](https://github.com/nodejs/node/commit/09b431596a)] - **crypto**: correct CCM decryption FIPS error message (kyungrae) [#65450](https://github.com/nodejs/node/pull/65450) +- \[[`e6b34e6f7a`](https://github.com/nodejs/node/commit/e6b34e6f7a)] - **crypto**: harden X509Certificate state (Filip Skokan) [#65518](https://github.com/nodejs/node/pull/65518) +- \[[`a884b6ccbc`](https://github.com/nodejs/node/commit/a884b6ccbc)] - **crypto**: optimize key slot caching (Filip Skokan) [#65518](https://github.com/nodejs/node/pull/65518) +- \[[`fb512086d3`](https://github.com/nodejs/node/commit/fb512086d3)] - **crypto**: add null checks for OPENSSL\_INIT\_new() (Nora Dossche) [#63457](https://github.com/nodejs/node/pull/63457) +- \[[`656504ffc0`](https://github.com/nodejs/node/commit/656504ffc0)] - **crypto**: prevent Hmac.digest() from returning uninitialized memory (Matteo Collina) [#65112](https://github.com/nodejs/node/pull/65112) +- \[[`15e7884732`](https://github.com/nodejs/node/commit/15e7884732)] - **crypto**: avoid throwing CryptoKey brand checks (Filip Skokan) [#65503](https://github.com/nodejs/node/pull/65503) +- \[[`3302bec74a`](https://github.com/nodejs/node/commit/3302bec74a)] - **crypto**: avoid throwing KeyObject brand checks (Filip Skokan) [#65503](https://github.com/nodejs/node/pull/65503) +- \[[`7ac458f802`](https://github.com/nodejs/node/commit/7ac458f802)] - **(SEMVER-MINOR)** **crypto**: discover ciphers from OpenSSL providers (Filip Skokan) [#65484](https://github.com/nodejs/node/pull/65484) +- \[[`7c7e95a3bd`](https://github.com/nodejs/node/commit/7c7e95a3bd)] - **(SEMVER-MINOR)** **crypto**: discover hashes from OpenSSL providers (Filip Skokan) [#65484](https://github.com/nodejs/node/pull/65484) +- \[[`0539e90110`](https://github.com/nodejs/node/commit/0539e90110)] - **deps**: update googletest to 283c17563fe7a1111cd7f581aa5d541e8baeff2f (Node.js GitHub Bot) [#65833](https://github.com/nodejs/node/pull/65833) +- \[[`e34af820da`](https://github.com/nodejs/node/commit/e34af820da)] - **deps**: update simdjson to 4.6.11 (Node.js GitHub Bot) [#65834](https://github.com/nodejs/node/pull/65834) +- \[[`5fb7ffebc2`](https://github.com/nodejs/node/commit/5fb7ffebc2)] - **deps**: update zlib to 1.3.2.1-motley-285e94b (Node.js GitHub Bot) [#65835](https://github.com/nodejs/node/pull/65835) +- \[[`05cdf1db62`](https://github.com/nodejs/node/commit/05cdf1db62)] - **deps**: V8: backport 1a0089053443 (Jakob Linke) [#65764](https://github.com/nodejs/node/pull/65764) +- \[[`8910f7914a`](https://github.com/nodejs/node/commit/8910f7914a)] - **deps**: V8: backport c9c0abfa51f0 (Jakob Linke) [#65764](https://github.com/nodejs/node/pull/65764) +- \[[`e7fd388424`](https://github.com/nodejs/node/commit/e7fd388424)] - **deps**: V8: backport ebd15783b7ba (Marja Hölttä) [#65764](https://github.com/nodejs/node/pull/65764) +- \[[`82715158b8`](https://github.com/nodejs/node/commit/82715158b8)] - **deps**: V8: backport f3d4d458fe59 (Olivier Flückiger) [#65702](https://github.com/nodejs/node/pull/65702) +- \[[`7003159885`](https://github.com/nodejs/node/commit/7003159885)] - **diagnostics\_channel**: lazily create tracing context (Romain Lanz) [#65513](https://github.com/nodejs/node/pull/65513) +- \[[`a97def782f`](https://github.com/nodejs/node/commit/a97def782f)] - **doc**: clarify node:bench significance policy (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`c74091647d`](https://github.com/nodejs/node/commit/c74091647d)] - **doc**: clarify isolation modes for node:bench (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`3ef81a676c`](https://github.com/nodejs/node/commit/3ef81a676c)] - **doc**: clarify measurement integrity details of node:bench (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`6b565d7b2c`](https://github.com/nodejs/node/commit/6b565d7b2c)] - **doc**: clarify security triage dispositions and permission boundaries (Rafael Gonzaga) [#65436](https://github.com/nodejs/node/pull/65436) +- \[[`724981287c`](https://github.com/nodejs/node/commit/724981287c)] - **(SEMVER-MINOR)** **doc**: move histogram.burnRate to correct location in doc (James M Snell) [#65434](https://github.com/nodejs/node/pull/65434) +- \[[`f8b627c09b`](https://github.com/nodejs/node/commit/f8b627c09b)] - **doc**: fix default limit of maxHeadersCount (Aryn H) [#65472](https://github.com/nodejs/node/pull/65472) +- \[[`aa3d94fc1d`](https://github.com/nodejs/node/commit/aa3d94fc1d)] - **doc**: fix return types for sync methods (Chiang Fong Lee) [#58575](https://github.com/nodejs/node/pull/58575) +- \[[`fe9f452ddd`](https://github.com/nodejs/node/commit/fe9f452ddd)] - **doc**: document REPL DEP0185 throws and uncaught-exception behavior (Adrián Estrada) [#64993](https://github.com/nodejs/node/pull/64993) +- \[[`6b84ee66fa`](https://github.com/nodejs/node/commit/6b84ee66fa)] - **errors**: validate constructor name (Christian Aurich) [#65607](https://github.com/nodejs/node/pull/65607) +- \[[`ed1b629901`](https://github.com/nodejs/node/commit/ed1b629901)] - **events**: fix weak listener retention overwrite (Aryan) [#64024](https://github.com/nodejs/node/pull/64024) +- \[[`7b4c17f723`](https://github.com/nodejs/node/commit/7b4c17f723)] - **ffi**: throw on missing memory helper arguments (Soul Lee) [#65500](https://github.com/nodejs/node/pull/65500) +- \[[`cf78d4260e`](https://github.com/nodejs/node/commit/cf78d4260e)] - **ffi**: include SharedArrayBuffer in error message (Donghoon Kang) [#65735](https://github.com/nodejs/node/pull/65735) +- \[[`2d2f4f6d1a`](https://github.com/nodejs/node/commit/2d2f4f6d1a)] - **(SEMVER-MINOR)** **ffi**: enable module by default (Matteo Collina) [#65475](https://github.com/nodejs/node/pull/65475) +- \[[`bdcb6def4e`](https://github.com/nodejs/node/commit/bdcb6def4e)] - **ffi**: validate DynamicLibrary getter receivers (Trivikram Kamat) [#65415](https://github.com/nodejs/node/pull/65415) +- \[[`5d24a8fe37`](https://github.com/nodejs/node/commit/5d24a8fe37)] - **fs**: copy directory trees for fs.cp() on the thread pool (Shelley Vohr) [#65488](https://github.com/nodejs/node/pull/65488) +- \[[`40bdf32d91`](https://github.com/nodejs/node/commit/40bdf32d91)] - **fs**: give directories created by cpSync the source directory's mode (Shelley Vohr) [#65488](https://github.com/nodejs/node/pull/65488) +- \[[`6ac1bc040f`](https://github.com/nodejs/node/commit/6ac1bc040f)] - **fs**: write files in one thread pool round trip (Shelley Vohr) [#65489](https://github.com/nodejs/node/pull/65489) +- \[[`b4b89c08c1`](https://github.com/nodejs/node/commit/b4b89c08c1)] - **fs**: handle recursive watch setup races (Filip Skokan) [#65699](https://github.com/nodejs/node/pull/65699) +- \[[`54a1311d9e`](https://github.com/nodejs/node/commit/54a1311d9e)] - **fs**: apply nocase to literal glob exclude patterns (Yusuke Hayashi) [#64817](https://github.com/nodejs/node/pull/64817) +- \[[`2130460831`](https://github.com/nodejs/node/commit/2130460831)] - **fs**: improve performance of recursive directory read (Aviv Keller) [#65524](https://github.com/nodejs/node/pull/65524) +- \[[`ab7f4c88b7`](https://github.com/nodejs/node/commit/ab7f4c88b7)] - **fs**: do not descend into symlinks for \*\* unless following symlinks (RafaelGSS) [#65435](https://github.com/nodejs/node/pull/65435) +- \[[`e990324e7a`](https://github.com/nodejs/node/commit/e990324e7a)] - **fs**: watch directories, not files, in recursive fs.watch fallback (Shelley Vohr) [#65486](https://github.com/nodejs/node/pull/65486) +- \[[`b6db21972a`](https://github.com/nodejs/node/commit/b6db21972a)] - **fs**: preserve directory timestamps in cp (Abhinandan Kumar) [#65540](https://github.com/nodejs/node/pull/65540) +- \[[`d418ca140e`](https://github.com/nodejs/node/commit/d418ca140e)] - **fs**: fix recursive watch error handling (Filip Skokan) [#65635](https://github.com/nodejs/node/pull/65635) +- \[[`ea372bf9c9`](https://github.com/nodejs/node/commit/ea372bf9c9)] - **fs**: cancel in-flight stat on abort (Mert Can Altin) [#63142](https://github.com/nodejs/node/pull/63142) +- \[[`458664073e`](https://github.com/nodejs/node/commit/458664073e)] - **fs**: fix rmSync error messages for non-ASCII paths (Yeaseen) [#61233](https://github.com/nodejs/node/pull/61233) +- \[[`34b38235c3`](https://github.com/nodejs/node/commit/34b38235c3)] - **fs**: add maxDepth option to glob (Alexander Lichter) [#64003](https://github.com/nodejs/node/pull/64003) +- \[[`e3cc0d9313`](https://github.com/nodejs/node/commit/e3cc0d9313)] - **http**: fast-forward teardown of unread messages (Matteo Collina) [#65732](https://github.com/nodejs/node/pull/65732) +- \[[`f9175a212c`](https://github.com/nodejs/node/commit/f9175a212c)] - **http**: coalesce chunked writes during auto-corking (GetThatCookie) [#64987](https://github.com/nodejs/node/pull/64987) +- \[[`b4a7cd3efb`](https://github.com/nodejs/node/commit/b4a7cd3efb)] - **http2**: fix write deadlock exposed by larger window sizes (Tim Perry) [#65440](https://github.com/nodejs/node/pull/65440) +- \[[`b7e97f6cfd`](https://github.com/nodejs/node/commit/b7e97f6cfd)] - **http2**: error for incomplete reads on RST, auto-drain, deprecate aborted (Tim Perry) [#63249](https://github.com/nodejs/node/pull/63249) +- \[[`d62989dbdf`](https://github.com/nodejs/node/commit/d62989dbdf)] - **http2**: fix async context loss when trailers carry END\_STREAM (Orgad Shaneh) [#63814](https://github.com/nodejs/node/pull/63814) +- \[[`8aba314f87`](https://github.com/nodejs/node/commit/8aba314f87)] - **https**: limit proxy CONNECT response headers (Matteo Collina) [#64545](https://github.com/nodejs/node/pull/64545) +- \[[`bea74e1cb5`](https://github.com/nodejs/node/commit/bea74e1cb5)] - **lib**: put node:bench behind an --experimental-bench flag (James M Snell) [#65920](https://github.com/nodejs/node/pull/65920) +- \[[`2835523960`](https://github.com/nodejs/node/commit/2835523960)] - **lib**: fixup node:bench handling of --require option (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`aae83d87a4`](https://github.com/nodejs/node/commit/aae83d87a4)] - **lib**: improve diagnostic message support (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`ba7baed423`](https://github.com/nodejs/node/commit/ba7baed423)] - **lib**: have runFile honor permissions and accept URL/Buffer paths (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`55103db988`](https://github.com/nodejs/node/commit/55103db988)] - **lib**: add runFile api to node:bench (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`0a4c50eb76`](https://github.com/nodejs/node/commit/0a4c50eb76)] - **lib**: add context.diagnostic api to node:bench (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`476e25e864`](https://github.com/nodejs/node/commit/476e25e864)] - **lib**: add `bench:plan` event to `node:bench` (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`67cf0e556f`](https://github.com/nodejs/node/commit/67cf0e556f)] - **lib**: clarify mean in node:bench docs (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`f85f72ad42`](https://github.com/nodejs/node/commit/f85f72ad42)] - **lib**: improve node:bench stream handling (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`b32b09f56b`](https://github.com/nodejs/node/commit/b32b09f56b)] - **lib**: add runId, fileRunId, entryFile, namePath to node:bench (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`4b9b53f958`](https://github.com/nodejs/node/commit/4b9b53f958)] - **(SEMVER-MINOR)** **lib**: add `node:bench` explicit createRunner (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606) +- \[[`d9f18171f0`](https://github.com/nodejs/node/commit/d9f18171f0)] - **(SEMVER-MINOR)** **lib**: complete the implementation of node:bench and cli (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606) +- \[[`c39e20e9ca`](https://github.com/nodejs/node/commit/c39e20e9ca)] - **(SEMVER-MINOR)** **lib**: implement bench/reporters (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606) +- \[[`657415c6df`](https://github.com/nodejs/node/commit/657415c6df)] - **(SEMVER-MINOR)** **lib**: implement node:bench (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606) +- \[[`46863a7f9c`](https://github.com/nodejs/node/commit/46863a7f9c)] - **lib**: use `Float16Array` from primordials (Antoine du Hamel) [#65702](https://github.com/nodejs/node/pull/65702) +- \[[`cbd0948138`](https://github.com/nodejs/node/commit/cbd0948138)] - **lib**: defer source map payload decoding until first use (Shelley Vohr) [#65490](https://github.com/nodejs/node/pull/65490) +- \[[`1ddb1c8934`](https://github.com/nodejs/node/commit/1ddb1c8934)] - **lib**: optimize async context frame activation (Tim Perry) [#65519](https://github.com/nodejs/node/pull/65519) +- \[[`02f6feef7e`](https://github.com/nodejs/node/commit/02f6feef7e)] - **lib**: use validateArray for array arguments (JunHwan Choi) [#65344](https://github.com/nodejs/node/pull/65344) +- \[[`962795ab8c`](https://github.com/nodejs/node/commit/962795ab8c)] - **lib**: apply minor dtls cleanups (James M Snell) [#63539](https://github.com/nodejs/node/pull/63539) +- \[[`c07b2ab8a9`](https://github.com/nodejs/node/commit/c07b2ab8a9)] - **lib,benchmark**: address multiple review issues (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`54a5e25f72`](https://github.com/nodejs/node/commit/54a5e25f72)] - **module**: derive builtinModules from enabled builtin set (Jungwon Sohn) [#65418](https://github.com/nodejs/node/pull/65418) +- \[[`c93a90cf12`](https://github.com/nodejs/node/commit/c93a90cf12)] - **net**: fix BlockList.fromJSON for IPv4-mapped IPv6 rules (Daijiro Wachi) [#64125](https://github.com/nodejs/node/pull/64125) +- \[[`506d23b76f`](https://github.com/nodejs/node/commit/506d23b76f)] - **net**: recognize bare IPv6 loopback addresses in isLoopback (Daijiro Wachi) [#63619](https://github.com/nodejs/node/pull/63619) +- \[[`81cd6d7b78`](https://github.com/nodejs/node/commit/81cd6d7b78)] - **net**: improve dtls cert verification (James M Snell) [#64314](https://github.com/nodejs/node/pull/64314) +- \[[`51d094e26b`](https://github.com/nodejs/node/commit/51d094e26b)] - **node-api**: make object property arrays const (Yilong Li) [#65621](https://github.com/nodejs/node/pull/65621) +- \[[`875c7ecee2`](https://github.com/nodejs/node/commit/875c7ecee2)] - **node-api**: enter env context for async callbacks (Shelley Vohr) [#65406](https://github.com/nodejs/node/pull/65406) +- \[[`ebcfec2f0c`](https://github.com/nodejs/node/commit/ebcfec2f0c)] - **(SEMVER-MINOR)** **perf\_hooks**: implement Histogram meanCI API (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606) +- \[[`09b333bcc5`](https://github.com/nodejs/node/commit/09b333bcc5)] - **perf\_hooks**: add missing resource timing attributes (greenhead) [#65017](https://github.com/nodejs/node/pull/65017) +- \[[`e1913630c3`](https://github.com/nodejs/node/commit/e1913630c3)] - **(SEMVER-MINOR)** **perf\_hooks**: add CBOR export/import for histogram exchange (James M Snell) [#65434](https://github.com/nodejs/node/pull/65434) +- \[[`67a78317dd`](https://github.com/nodejs/node/commit/67a78317dd)] - **permission**: do not enforce fs and addons in audit mode (Issac) [#65659](https://github.com/nodejs/node/pull/65659) +- \[[`19e69e5f72`](https://github.com/nodejs/node/commit/19e69e5f72)] - **permission**: support URL and Uint8Array as has()/drop() reference (Seungmin Nam) [#65492](https://github.com/nodejs/node/pull/65492) +- \[[`168af4d8d7`](https://github.com/nodejs/node/commit/168af4d8d7)] - **permission**: block FileHandle fsync and fdatasync (Rafael Gonzaga) [#65431](https://github.com/nodejs/node/pull/65431) +- \[[`855fff682f`](https://github.com/nodejs/node/commit/855fff682f)] - **quic**: stop guarding ngtcp2\_recv\_stop\_sending callback field (René) [#65688](https://github.com/nodejs/node/pull/65688) +- \[[`d30df2a3e1`](https://github.com/nodejs/node/commit/d30df2a3e1)] - **quic**: reuse TLS pause machinery to drop event deferral & improve 0RTT (Tim Perry) [#65522](https://github.com/nodejs/node/pull/65522) +- \[[`fce1b6a482`](https://github.com/nodejs/node/commit/fce1b6a482)] - **quic**: remove unused fin flag from blob reader wakeup (trivenay) [#65315](https://github.com/nodejs/node/pull/65315) +- \[[`c721aabfb7`](https://github.com/nodejs/node/commit/c721aabfb7)] - **quic**: apply multiple fixes to flow control signaling (James M Snell) [#65309](https://github.com/nodejs/node/pull/65309) +- \[[`2c552cd32c`](https://github.com/nodejs/node/commit/2c552cd32c)] - **quic**: release stream arenas before cleanup (Trivikram Kamat) [#65410](https://github.com/nodejs/node/pull/65410) +- \[[`487662717b`](https://github.com/nodejs/node/commit/487662717b)] - **sea**: mount bundled assets as a virtual file system (Matteo Collina) [#65675](https://github.com/nodejs/node/pull/65675) +- \[[`0ec15a2a54`](https://github.com/nodejs/node/commit/0ec15a2a54)] - **sea**: keep ELF segments on separate pages in --build-sea output (Shelley Vohr) [#65564](https://github.com/nodejs/node/pull/65564) +- \[[`1627fd6561`](https://github.com/nodejs/node/commit/1627fd6561)] - **sqlite**: re-validate database state after reading options (Trevor Burnham) [#65595](https://github.com/nodejs/node/pull/65595) +- \[[`18c3867d19`](https://github.com/nodejs/node/commit/18c3867d19)] - **sqlite**: run backup completion in callback scope (Filip Skokan) [#65666](https://github.com/nodejs/node/pull/65666) +- \[[`a77d738683`](https://github.com/nodejs/node/commit/a77d738683)] - **sqlite**: copy changeset before applying it (Matteo Collina) [#65286](https://github.com/nodejs/node/pull/65286) +- \[[`b5f0558c84`](https://github.com/nodejs/node/commit/b5f0558c84)] - **sqlite**: reject closing a session from a callback (Trevor Burnham) [#65454](https://github.com/nodejs/node/pull/65454) +- \[[`5f95032859`](https://github.com/nodejs/node/commit/5f95032859)] - **sqlite**: keep sessions alive across SQLite callbacks (Trevor Burnham) [#65465](https://github.com/nodejs/node/pull/65465) +- \[[`2ce0e2eb10`](https://github.com/nodejs/node/commit/2ce0e2eb10)] - **sqlite**: throw on disposal of an in-use session (Guilherme Araújo) [#65449](https://github.com/nodejs/node/pull/65449) +- \[[`f66ed89136`](https://github.com/nodejs/node/commit/f66ed89136)] - **src**: fix use-after-free in CleanupHookThunkRun (Caleb Everett) [#65630](https://github.com/nodejs/node/pull/65630) +- \[[`14613fdc3e`](https://github.com/nodejs/node/commit/14613fdc3e)] - **(SEMVER-MINOR)** **src**: fixup histogram and options linting issues (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606) +- \[[`6db3f662cf`](https://github.com/nodejs/node/commit/6db3f662cf)] - **src**: fix startup snapshot reproducibility of InternalFieldInfo (Chengzhong Wu) [#65684](https://github.com/nodejs/node/pull/65684) +- \[[`8e9151c9f2`](https://github.com/nodejs/node/commit/8e9151c9f2)] - **(SEMVER-MINOR)** **src**: let embedders supply a builtin code cache without a snapshot (Shelley Vohr) [#65352](https://github.com/nodejs/node/pull/65352) +- \[[`760337aa5b`](https://github.com/nodejs/node/commit/760337aa5b)] - **src**: fix live lock between environments with blocked requests (Ilyas Shabi) [#65520](https://github.com/nodejs/node/pull/65520) +- \[[`f2a588c385`](https://github.com/nodejs/node/commit/f2a588c385)] - **src**: apply IsolateSettings when using a snapshot (Shelley Vohr) [#65407](https://github.com/nodejs/node/pull/65407) +- \[[`2fd50ae915`](https://github.com/nodejs/node/commit/2fd50ae915)] - **src**: add re-entrancy guard to TriggerUncaughtException (Temuulen Undrakhbayar) [#64327](https://github.com/nodejs/node/pull/64327) +- \[[`e260fd146c`](https://github.com/nodejs/node/commit/e260fd146c)] - **src**: reuse cached strings in CompileSerializeMain (agape1225) [#65453](https://github.com/nodejs/node/pull/65453) +- \[[`0650dca863`](https://github.com/nodejs/node/commit/0650dca863)] - **src**: add missing vector include (Filip Skokan) [#65622](https://github.com/nodejs/node/pull/65622) +- \[[`6e9d44d1fe`](https://github.com/nodejs/node/commit/6e9d44d1fe)] - **src**: disable V8 external memory reasonable size check (Paul Bouchon) [#65589](https://github.com/nodejs/node/pull/65589) +- \[[`9c46e56303`](https://github.com/nodejs/node/commit/9c46e56303)] - **src**: report libuv error when openAsBlob cannot stat (Paul Bouchon) [#65517](https://github.com/nodejs/node/pull/65517) +- \[[`a0aaff6b07`](https://github.com/nodejs/node/commit/a0aaff6b07)] - **src**: list scripts when `--run` has no command (James Ross) [#64606](https://github.com/nodejs/node/pull/64606) +- \[[`469590c155`](https://github.com/nodejs/node/commit/469590c155)] - **src**: fixup manual new/delete usages (James M Snell) [#65348](https://github.com/nodejs/node/pull/65348) +- \[[`5902acf031`](https://github.com/nodejs/node/commit/5902acf031)] - **src**: make the options structs smaller with packed bits (James M Snell) [#65145](https://github.com/nodejs/node/pull/65145) +- \[[`0c24639a5a`](https://github.com/nodejs/node/commit/0c24639a5a)] - **(SEMVER-MINOR)** **src, lib**: add stats to dtls (James M Snell) [#63182](https://github.com/nodejs/node/pull/63182) +- \[[`652fbc286e`](https://github.com/nodejs/node/commit/652fbc286e)] - **(SEMVER-MINOR)** **src,lib**: add dtls interop tests (James M Snell) [#63182](https://github.com/nodejs/node/pull/63182) +- \[[`889854f18b`](https://github.com/nodejs/node/commit/889854f18b)] - **(SEMVER-MINOR)** **src,lib**: implement experimental DTLS API (James M Snell) [#63182](https://github.com/nodejs/node/pull/63182) +- \[[`76538d519c`](https://github.com/nodejs/node/commit/76538d519c)] - **stream**: use webidl validation semantics for args (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658) +- \[[`649a4aba93`](https://github.com/nodejs/node/commit/649a4aba93)] - **stream**: ensure that stateful transforms preserve this (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658) +- \[[`23220992c0`](https://github.com/nodejs/node/commit/23220992c0)] - **stream**: fix nested async flushing with infinite sources (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658) +- \[[`3ad1338139`](https://github.com/nodejs/node/commit/3ad1338139)] - **stream**: ensure from() observes returned rejecting promise correctly (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658) +- \[[`cafdee6369`](https://github.com/nodejs/node/commit/cafdee6369)] - **stream**: apply source normalization once at call time (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658) +- \[[`edb83cb620`](https://github.com/nodejs/node/commit/edb83cb620)] - **stream**: make consumer signals on longer alter source precedence (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658) +- \[[`56bdd765df`](https://github.com/nodejs/node/commit/56bdd765df)] - **stream**: make pipeTo source normalization independent of Writer (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658) +- \[[`037c07af2b`](https://github.com/nodejs/node/commit/037c07af2b)] - **stream**: pre-aborted pipeTo now applies dest failure handling (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658) +- \[[`7308492d48`](https://github.com/nodejs/node/commit/7308492d48)] - **stream**: ensure pre-existing writes drain before EOF and end() waits (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658) +- \[[`756773477b`](https://github.com/nodejs/node/commit/756773477b)] - **stream**: ensure async dispoal after endSync awaits for drain (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658) +- \[[`042b951312`](https://github.com/nodejs/node/commit/042b951312)] - **stream**: ensure factory signals remain active through closing (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658) +- \[[`2dc09ca9ca`](https://github.com/nodejs/node/commit/2dc09ca9ca)] - **stream**: canWrite and ondrain now reflect physical capacity (James M Snell) [#65658](https://github.com/nodejs/node/pull/65658) +- \[[`9192fbb6dd`](https://github.com/nodejs/node/commit/9192fbb6dd)] - **stream**: skip unobserved 'readable' emission at EOF (Matteo Collina) [#65749](https://github.com/nodejs/node/pull/65749) +- \[[`dc25a61e7a`](https://github.com/nodejs/node/commit/dc25a61e7a)] - **stream**: avoid per-chunk promises in webstream adapters (Matteo Collina) [#65548](https://github.com/nodejs/node/pull/65548) +- \[[`82ae196af6`](https://github.com/nodejs/node/commit/82ae196af6)] - **stream**: address stream/iter review feedback (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652) +- \[[`3b37b48592`](https://github.com/nodejs/node/commit/3b37b48592)] - **stream**: replace object sentinel with symbol (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652) +- \[[`b6424b6612`](https://github.com/nodejs/node/commit/b6424b6612)] - **stream**: ensure pipeToSync requires synchronous close (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652) +- \[[`830fc81acf`](https://github.com/nodejs/node/commit/830fc81acf)] - **stream**: cancel active stream/iter pulls (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652) +- \[[`30606908de`](https://github.com/nodejs/node/commit/30606908de)] - **stream**: fix merge settlement tagging and falsy error tracking (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652) +- \[[`7319198755`](https://github.com/nodejs/node/commit/7319198755)] - **stream**: ensure full-close semantics when closed (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652) +- \[[`bf5acb783f`](https://github.com/nodejs/node/commit/bf5acb783f)] - **stream**: defend against re-entrancy in writev (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652) +- \[[`b01594f93a`](https://github.com/nodejs/node/commit/b01594f93a)] - **stream**: ensure stability of stored metadata (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652) +- \[[`7bfd81ab09`](https://github.com/nodejs/node/commit/7bfd81ab09)] - **stream**: fixup writer to terminate on consumer return/throw (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652) +- \[[`dc2483c38d`](https://github.com/nodejs/node/commit/dc2483c38d)] - **stream**: ensure iterator cleanup on done, reject, etc (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652) +- \[[`f6fac6f7f0`](https://github.com/nodejs/node/commit/f6fac6f7f0)] - **stream**: fixup cancelation handling in pull() (James M Snell) [#65652](https://github.com/nodejs/node/pull/65652) +- \[[`dfe0617e71`](https://github.com/nodejs/node/commit/dfe0617e71)] - **stream**: fix early drain after Utf8Stream reopen (Matteo Collina) [#65633](https://github.com/nodejs/node/pull/65633) +- \[[`900fae0a24`](https://github.com/nodejs/node/commit/900fae0a24)] - **test**: split test-bench-cli to try deflaking it (James M Snell) [#65919](https://github.com/nodejs/node/pull/65919) +- \[[`31f4bd73b2`](https://github.com/nodejs/node/commit/31f4bd73b2)] - **test**: make node:bench test samples survive a coarse clock (Shelley Vohr) [#65780](https://github.com/nodejs/node/pull/65780) +- \[[`e0fa1893c3`](https://github.com/nodejs/node/commit/e0fa1893c3)] - **test**: do not dump core in external memory limit test (Shelley Vohr) [#65780](https://github.com/nodejs/node/pull/65780) +- \[[`00ad283b8d`](https://github.com/nodejs/node/commit/00ad283b8d)] - **test**: zero-fill buffers before the string length limit check (Christian Aurich) [#65755](https://github.com/nodejs/node/pull/65755) +- \[[`70763fcc46`](https://github.com/nodejs/node/commit/70763fcc46)] - **test**: expand test coverage of node:bench (James M Snell) [#65631](https://github.com/nodejs/node/pull/65631) +- \[[`5a38e6b115`](https://github.com/nodejs/node/commit/5a38e6b115)] - **(SEMVER-MINOR)** **test**: fix node:bench test timing (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606) +- \[[`536ae0e24b`](https://github.com/nodejs/node/commit/536ae0e24b)] - **(SEMVER-MINOR)** **test**: improve node:bench test coverage (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606) +- \[[`eec66d529c`](https://github.com/nodejs/node/commit/eec66d529c)] - **(SEMVER-MINOR)** **test**: update bench tests to not fail on no-crypto (James M Snell) [#65606](https://github.com/nodejs/node/pull/65606) +- \[[`ce7b349de5`](https://github.com/nodejs/node/commit/ce7b349de5)] - **test**: bump WPT webidl and interfaces (Filip Skokan) [#65679](https://github.com/nodejs/node/pull/65679) +- \[[`ec96f8dc23`](https://github.com/nodejs/node/commit/ec96f8dc23)] - **test**: update WPT for url to c23755a144 (Node.js GitHub Bot) [#65651](https://github.com/nodejs/node/pull/65651) +- \[[`ebe2ac248b`](https://github.com/nodejs/node/commit/ebe2ac248b)] - **test**: fix recursive fs.watch error fixture (Filip Skokan) [#65683](https://github.com/nodejs/node/pull/65683) +- \[[`a19912ee8f`](https://github.com/nodejs/node/commit/a19912ee8f)] - **test**: update streams WPT (Jeong SeokChan) [#65638](https://github.com/nodejs/node/pull/65638) +- \[[`14b5dfc63d`](https://github.com/nodejs/node/commit/14b5dfc63d)] - **test**: remove `console.log` call in `node_run_list` (Antoine du Hamel) [#65572](https://github.com/nodejs/node/pull/65572) +- \[[`3f67df139c`](https://github.com/nodejs/node/commit/3f67df139c)] - **test**: expect node:ffi to be enabled by default (Matteo Collina) [#65636](https://github.com/nodejs/node/pull/65636) +- \[[`b9ee2e67bf`](https://github.com/nodejs/node/commit/b9ee2e67bf)] - **(SEMVER-MINOR)** **test**: use native builder for legacy SEA tests (Filip Skokan) [#65553](https://github.com/nodejs/node/pull/65553) +- \[[`53a29d0894`](https://github.com/nodejs/node/commit/53a29d0894)] - **test**: use common spawnSync helpers in more tests (greenhead) [#65552](https://github.com/nodejs/node/pull/65552) +- \[[`5c680a50f4`](https://github.com/nodejs/node/commit/5c680a50f4)] - **test**: add coverage for removeEventListener boolean capture (Lazizbek Ergashev) [#65245](https://github.com/nodejs/node/pull/65245) +- \[[`6f99474912`](https://github.com/nodejs/node/commit/6f99474912)] - **test**: deflake fastutf8stream destroy and reopen tests (Christian Aurich) [#65554](https://github.com/nodejs/node/pull/65554) +- \[[`2342b2bf30`](https://github.com/nodejs/node/commit/2342b2bf30)] - **test**: cover Readable.from() sync iterator errors (jakecastelli) [#65515](https://github.com/nodejs/node/pull/65515) +- \[[`1e455a4ffe`](https://github.com/nodejs/node/commit/1e455a4ffe)] - **test**: support inspecting WPTs in child processes (Filip Skokan) [#65510](https://github.com/nodejs/node/pull/65510) +- \[[`1f7cab588e`](https://github.com/nodejs/node/commit/1f7cab588e)] - **test**: document WPT runner workflows (Filip Skokan) [#65510](https://github.com/nodejs/node/pull/65510) +- \[[`d39a902cec`](https://github.com/nodejs/node/commit/d39a902cec)] - **test**: simplify test-worker-heap-profile.js (Donghoon Kang) [#65372](https://github.com/nodejs/node/pull/65372) +- \[[`90d1b863f7`](https://github.com/nodejs/node/commit/90d1b863f7)] - **test**: keep WPT backend checks alive (Filip Skokan) [#65320](https://github.com/nodejs/node/pull/65320) +- \[[`be60c34b52`](https://github.com/nodejs/node/commit/be60c34b52)] - **(SEMVER-MINOR)** **test**: enable multi-global WPTs (Filip Skokan) [#64894](https://github.com/nodejs/node/pull/64894) +- \[[`d04cfcda8e`](https://github.com/nodejs/node/commit/d04cfcda8e)] - **(SEMVER-MINOR)** **test**: add opt-in process WPT runner (Filip Skokan) [#64894](https://github.com/nodejs/node/pull/64894) +- \[[`715c21f805`](https://github.com/nodejs/node/commit/715c21f805)] - **(SEMVER-MINOR)** **test**: accomodate multi-global tests in WPT{Runner,TestSpec,Report} (Filip Skokan) [#64894](https://github.com/nodejs/node/pull/64894) +- \[[`9aa8489a01`](https://github.com/nodejs/node/commit/9aa8489a01)] - **test**: fix lint in dtls tests (Matteo Collina) [#64902](https://github.com/nodejs/node/pull/64902) +- \[[`6a3d8a6d9f`](https://github.com/nodejs/node/commit/6a3d8a6d9f)] - **tls**: read the peer certificate chain without consuming it (Tony Gies) [#65602](https://github.com/nodejs/node/pull/65602) +- \[[`2e519f8fef`](https://github.com/nodejs/node/commit/2e519f8fef)] - **tls,quic**: commonize TLS cert handling between tls, dtls & quic (Tim Perry) [#64711](https://github.com/nodejs/node/pull/64711) +- \[[`2266c14051`](https://github.com/nodejs/node/commit/2266c14051)] - **tools**: add GHA workflow to test vendored Perfetto (Antoine du Hamel) [#65614](https://github.com/nodejs/node/pull/65614) +- \[[`19779f121f`](https://github.com/nodejs/node/commit/19779f121f)] - **tools**: fix the list of globals in ESLint config files (Antoine du Hamel) [#65281](https://github.com/nodejs/node/pull/65281) +- \[[`b57db8dfd3`](https://github.com/nodejs/node/commit/b57db8dfd3)] - **typings**: add types for performance binding (Jungwon Sohn) [#65574](https://github.com/nodejs/node/pull/65574) +- \[[`371e2260f4`](https://github.com/nodejs/node/commit/371e2260f4)] - **typings**: add encodeIntoResults to EncodingBinding (greenhead) [#65350](https://github.com/nodejs/node/pull/65350) +- \[[`417cdd8a77`](https://github.com/nodejs/node/commit/417cdd8a77)] - **typings**: add typing for permission binding (Seungmin Nam) [#65385](https://github.com/nodejs/node/pull/65385) +- \[[`a82cc7097f`](https://github.com/nodejs/node/commit/a82cc7097f)] - **url**: align URLPatternInit dictionary conversion with WebIDL (Piyush Yadav) [#65498](https://github.com/nodejs/node/pull/65498) +- \[[`0e8f7b96b0`](https://github.com/nodejs/node/commit/0e8f7b96b0)] - **util**: canonicalize namespaced tags in inspect() (René) [#63257](https://github.com/nodejs/node/pull/63257) +- \[[`acd2bb10ce`](https://github.com/nodejs/node/commit/acd2bb10ce)] - **v8**: add setHeapProfileNearHeapLimit (Ilyas Shabi) [#64676](https://github.com/nodejs/node/pull/64676) +- \[[`d0535b1041`](https://github.com/nodejs/node/commit/d0535b1041)] - **vfs**: load native addons from a mounted file system (Philipp Dunkel) [#65680](https://github.com/nodejs/node/pull/65680) +- \[[`ea6f70ba41`](https://github.com/nodejs/node/commit/ea6f70ba41)] - **vfs**: fix rename over non-empty directory (Christian Aurich) [#65613](https://github.com/nodejs/node/pull/65613) +- \[[`b4f6b3798a`](https://github.com/nodejs/node/commit/b4f6b3798a)] - **vfs**: add ZipProvider (Philipp Dunkel) [#64915](https://github.com/nodejs/node/pull/64915) +- \[[`5198142c59`](https://github.com/nodejs/node/commit/5198142c59)] - **(SEMVER-MINOR)** **vfs**: integrate with CJS and ESM module loaders (Matteo Collina) [#63653](https://github.com/nodejs/node/pull/63653) +- \[[`38192126e2`](https://github.com/nodejs/node/commit/38192126e2)] - **worker**: start worker threads from the built-in snapshot (Shelley Vohr) [#65336](https://github.com/nodejs/node/pull/65336) +- \[[`56144ea80a`](https://github.com/nodejs/node/commit/56144ea80a)] - **worker**: add ref/unref to web workers (Aviv Keller) [#65507](https://github.com/nodejs/node/pull/65507) +- \[[`7231c13b8a`](https://github.com/nodejs/node/commit/7231c13b8a)] - **(SEMVER-MINOR)** **worker**: add wpt tests for Web Workers (Aviv Keller) [#64894](https://github.com/nodejs/node/pull/64894) +- \[[`5af9d72e7f`](https://github.com/nodejs/node/commit/5af9d72e7f)] - **(SEMVER-MINOR)** **worker**: add support for Web Workers (Aviv Keller) [#64894](https://github.com/nodejs/node/pull/64894) +- \[[`069a1b1200`](https://github.com/nodejs/node/commit/069a1b1200)] - **zlib**: avoid waiting for paused ZIP iterators (Trivikram Kamat) [#65278](https://github.com/nodejs/node/pull/65278) + +Windows 64-bit Installer: https://nodejs.org/dist/v26.9.0/node-v26.9.0-x64.msi \ +Windows ARM 64-bit Installer: https://nodejs.org/dist/v26.9.0/node-v26.9.0-arm64.msi \ +Windows 64-bit Binary: https://nodejs.org/dist/v26.9.0/win-x64/node.exe \ +Windows ARM 64-bit Binary: https://nodejs.org/dist/v26.9.0/win-arm64/node.exe \ +macOS 64-bit Installer: https://nodejs.org/dist/v26.9.0/node-v26.9.0.pkg \ +macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v26.9.0/node-v26.9.0-darwin-arm64.tar.gz \ +macOS Intel 64-bit Binary: https://nodejs.org/dist/v26.9.0/node-v26.9.0-darwin-x64.tar.gz \ +Linux 64-bit Binary: https://nodejs.org/dist/v26.9.0/node-v26.9.0-linux-x64.tar.xz \ +Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v26.9.0/node-v26.9.0-linux-ppc64le.tar.xz \ +Linux s390x 64-bit Binary: https://nodejs.org/dist/v26.9.0/node-v26.9.0-linux-s390x.tar.xz \ +AIX 64-bit Binary: https://nodejs.org/dist/v26.9.0/node-v26.9.0-aix-ppc64.tar.gz \ +ARMv8 64-bit Binary: https://nodejs.org/dist/v26.9.0/node-v26.9.0-linux-arm64.tar.xz \ +Source Code: https://nodejs.org/dist/v26.9.0/node-v26.9.0.tar.gz \ +Other release files: https://nodejs.org/dist/v26.9.0/ \ +Documentation: https://nodejs.org/docs/v26.9.0/api/ + +### SHASUMS + +``` +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +09f04e0b7e1b1315065711896e214b4358dc9f4c42504b622b059e2608d4d73d node-v26.9.0-aix-ppc64.tar.gz +2d9c80e92339ec578f9e577d88332e6b7b938f134bf3ff77f403435f51aeb19a node-v26.9.0-arm64.msi +6f3de7ed853ee283b4bf24b6e426618f1d357401ce5815db1866eb85eb4b05d9 node-v26.9.0-darwin-arm64.tar.gz +8dd6e383c216dbadd04e6eaac5b8fcaec8ba700a58fa51ebd38d4f9532741909 node-v26.9.0-darwin-arm64.tar.xz +06b2e742ed9025dc84adc830243b3f731956eac9c321bccd0ede384209af02a8 node-v26.9.0-darwin-x64.tar.gz +6608fb3719eb61acbd5cee3e53833be12f84fac10a0799581a4995f67d4dab79 node-v26.9.0-darwin-x64.tar.xz +cb76d89ce93960e23e6d3f23eeafc0a9aebeb139b6797ce13669837bc1439e49 node-v26.9.0-headers.tar.gz +665b9e443170f3dee350897719b782c82968daae8d8c3931a232b94a25f9a5c0 node-v26.9.0-headers.tar.xz +d5077591aa38b48d90bf9b3ac10da8d2f40dce289b20294913c58c19f153eb12 node-v26.9.0-linux-arm64.tar.gz +686d07ed3bc5d68d9f7bd4939b7e8849a87d0664ac19c8c5474474f44cc956db node-v26.9.0-linux-arm64.tar.xz +3914ce13acf24880cceb34a6967206de2f8caa0fef93f142a0ddb14c36328f35 node-v26.9.0-linux-ppc64le.tar.gz +2ba7e7927eddef043cf60075bbc39305ed3999e4eb7dca46f1c16d89dc681146 node-v26.9.0-linux-ppc64le.tar.xz +c5386ff8968eadf66dd79209355b38c01ee712c6cfd32b92bbcc9cc4dc4de0fd node-v26.9.0-linux-s390x.tar.gz +7b88848893ddb3e22549fcc27bbfac2083cf5738dc5186260ff0e2c28470bf05 node-v26.9.0-linux-s390x.tar.xz +153190a1170b39b1157e32a9fdf70bd4721163d2e360111d127af4b73656a323 node-v26.9.0-linux-x64-musl.tar.gz +828a3d5aff8dd82dd8808afa20cadcea7fd591f708ba3d32ddacb2799d2af065 node-v26.9.0-linux-x64-musl.tar.xz +03d9104fc4f19652e74480fed11c023d75981464b7292f21a601c3f95ce7d90d node-v26.9.0-linux-x64.tar.gz +c6ecd8efc1c1d395265891675319da7a7b3785c6be174bd78933cf4f057624d1 node-v26.9.0-linux-x64.tar.xz +053b26778445a14fa60cd87bc71bd70551b59ffcf028585b441689e0c426be13 node-v26.9.0.pkg +26ca5350af859c255118479b08a37075cbc17cdafffe47436d72e4be107e2760 node-v26.9.0.tar.gz +47b970d88511b429e587b740fa733176909d2a2005a29662f01b05205f58468b node-v26.9.0.tar.xz +ef222a58fb788c6dbe104e5f8231e881faf0d1ae89fdef3a34fd71800914ed5b node-v26.9.0-win-arm64.7z +b70e4557d1b3829e45c0afc19ac9376ccbd4a8661235377ffce90b39fc7227ba node-v26.9.0-win-arm64.zip +3b2e8048784f9f407d20de357aef11f921542d5ad9f9b1159a291ce9c467f7f0 node-v26.9.0-win-x64.7z +c8af870b5b3e9789a6cbdb30270e7c212e12d76a7afa7fc7f21b6b21cc22a71b node-v26.9.0-win-x64.zip +9abc94e80f63feca139725812c2a8a78e00db986477d12c3042e876045f056bb node-v26.9.0-x64.msi +be0af07f8b8dd179a38625451168111d1b0c52df2b8956bbc8e7c5c4d59a4752 win-arm64/node.exe +b4698292d445fef5b4e7c2409998c6ca24dc49eecec6dad23d8419441d9661fa win-arm64/node.lib +a1fbaa0a848101bf0b1bb810afd7ba520f1fe302c553a9b3fa1cae033cacd5d0 win-arm64/node_pdb.7z +3752598db945043e004842326b1f7493c016edee3efd21f70118ee5ef0e4eee8 win-arm64/node_pdb.zip +8490398f5e0082772dfb0ae5a6ebdff98a97696a20cb9778b4f82eec79b6d0a1 win-x64/node.exe +ecf83a409940ee9013587238c618107f5ed48cce7d9f785fa09b296df2d7abac win-x64/node.lib +31089fe2ada2d52d387d3faaf3fb8cb4d1337094c5c1bfb1d2a66c72796c9c5c win-x64/node_pdb.7z +557393333af5f5dfed74ccd55ab621859df1d2f57ff952b325b15a0253ddabd8 win-x64/node_pdb.zip + +-----BEGIN PGP SIGNATURE----- + +iHUEARYIAB0WIQRb6KP2yKXAHRBsCtggsaOQsWjTVgUCaqrc4gAKCRAgsaOQsWjT +VjUaAQC7Mc963kCQCpnOSbOcltadbebc6UEnJ161/a1G2hB+RwEAjwYJE887VHAu +GfGwB6sr8316Mfze/xc0cnBueHScqAY= +=qpbg +-----END PGP SIGNATURE----- +```