tech_surveillance2137 wordsRead on Arc Codex

Node.js 26.5.0 (Current)

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

How it works

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

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