Conversation
BREAKING CHANGE: switch the package foundations to native ESM/NodeNext while preserving the documented CJS migration path for the following build wave.
BREAKING CHANGE: Node 20 is dropped; package output moves to dist with conditional ESM/CJS exports.
BREAKING CHANGE: the markdown-it peer dependency is now ^15.0.0; consumers must remove @types/markdown-it because markdown-it v15 bundles its declarations.
Add packed-tarball ESM and CJS consumer compilation/runtime gates and require them for release checks.
BREAKING CHANGE: document the markdown-it v15 and Node 22 requirements, native ESM/CJS exports, and temporary browser-bundler regression.
## Exact-SHA sync - `SYNC_MAIN_SHA`: `2cd4b414639b5b3902918199928f955b8ff459e9` - `SYNC_V5_BASE_SHA`: `8441daebdf923c9a9a3ca7b7da9a33cce7bd1bf2` - Merge commit: `4a4b1945102dc4563fcd4a8747f9b328d1c0b736`; second parent verified as `SYNC_MAIN_SHA`. ## Reviewed conflict exception attestation - `.github/workflows/ci.yml` restored exactly from the v5 base. - `package.json` restored from v5 except `packageManager: pnpm@11.21.0`. - `pnpm-lock.yaml` seeded from v5 and `npx --yes pnpm@11.21.0 install --lockfile-only` produced zero lockfile diff. - Retained the non-conflicting Renovate `baseBranches` → `baseBranchPatterns` migration. - PR diff is exactly `package.json` (one package-manager line) and `renovate.json5` (one key migration). ## Local verification - Frozen pnpm 11.21 install - lint and TypeScript alias checks (TypeScript 6.0.2 / native 7.0.2) - 45/45 Vitest tests - build and package lint - markdown-it 15 compatibility type-check and tests - fresh packed ESM and CJS consumers No operation targets `main`. --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ains Node-only) (#1150) Outcome B restores the core browser-bundler flow while keeping the plugins option explicitly Node-only. All required Test 22/24/26, compatibility, consuming, Sonar quality gate, issue, hotspot, and review-thread gates passed.
Restore the v5 Vitest and TypeScript alias release contracts. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
> ℹ️ **Note** > > This PR body was truncated due to platform limits. This PR contains the following updates: | Package | Update | Change | Pending | |---|---|---|---| | [node](https://nodejs.org) ([source](https://redirect.github.com/nodejs/node)) | minor | `26.7.0` → `26.8.0` | `v26.8.1` | --- ### Release Notes <details> <summary>nodejs/node (node)</summary> ### [`v26.8.0`](https://redirect.github.com/nodejs/node/releases/tag/v26.8.0): 2026-08-26, Version 26.8.0 (Current), @​aduh95 [Compare Source](https://redirect.github.com/nodejs/node/compare/v26.7.0...v26.8.0) ##### Notable Changes - \[[`74234ee30e`](https://redirect.github.com/nodejs/node/commit/74234ee30e)] - **(SEMVER-MINOR)** **benchmark**: add --analyze mode to compare.js (James M Snell) [#​65416](https://redirect.github.com/nodejs/node/pull/65416) - \[[`4232997fa2`](https://redirect.github.com/nodejs/node/commit/4232997fa2)] - **crypto**: update root certificates to NSS 3.126 (Node.js GitHub Bot) [#​65495](https://redirect.github.com/nodejs/node/pull/65495) - \[[`f0531f1c87`](https://redirect.github.com/nodejs/node/commit/f0531f1c87)] - **(SEMVER-MINOR)** **crypto**: enable SIV and GCM-SIV modes in Cipher/Decipher APIs (Filip Skokan) [#​63411](https://redirect.github.com/nodejs/node/pull/63411) - \[[`3f4b80ebb5`](https://redirect.github.com/nodejs/node/commit/3f4b80ebb5)] - **diagnostics\_channel**: mark TracingChannel as stable (Abdelrahman Awad) [#​64525](https://redirect.github.com/nodejs/node/pull/64525) - \[[`753033c110`](https://redirect.github.com/nodejs/node/commit/753033c110)] - **(SEMVER-MINOR)** **lib,src**: improve histogram implementation (James M Snell) [#​65024](https://redirect.github.com/nodejs/node/pull/65024) - \[[`3d7d277493`](https://redirect.github.com/nodejs/node/commit/3d7d277493)] - **(SEMVER-MINOR)** **net**: improve performance of net.BlockList (James M Snell) [#​64974](https://redirect.github.com/nodejs/node/pull/64974) - \[[`9e8e9080fd`](https://redirect.github.com/nodejs/node/commit/9e8e9080fd)] - **(SEMVER-MINOR)** **perf\_hooks**: add statistical hypothesis testing to histogram (James M Snell) [#​65416](https://redirect.github.com/nodejs/node/pull/65416) - \[[`c18b0aa54e`](https://redirect.github.com/nodejs/node/commit/c18b0aa54e)] - **repl**: add basic syntax highlighting (Aviv Keller) [#​64591](https://redirect.github.com/nodejs/node/pull/64591) - \[[`58ea88e1d3`](https://redirect.github.com/nodejs/node/commit/58ea88e1d3)] - **(SEMVER-MINOR)** **sqlite**: add StatementSync.prototype.close() (Guilherme Araújo) [#​64232](https://redirect.github.com/nodejs/node/pull/64232) - \[[`7c61b08aed`](https://redirect.github.com/nodejs/node/commit/7c61b08aed)] - **(SEMVER-MINOR)** **sqlite**: add StatementSync.prototype\[Symbol.dispose]\() (Guilherme Araújo) [#​64232](https://redirect.github.com/nodejs/node/pull/64232) - \[[`4299cd5897`](https://redirect.github.com/nodejs/node/commit/4299cd5897)] - **(SEMVER-MINOR)** **util**: add non-throwing MIMEType.parse (James M Snell) [#​64965](https://redirect.github.com/nodejs/node/pull/64965) - \[[`df48191061`](https://redirect.github.com/nodejs/node/commit/df48191061)] - **(SEMVER-MINOR)** **zlib**: add ZipEntry, ZipFile, and ZipBuffer (Philipp Dunkel) [#​64339](https://redirect.github.com/nodejs/node/pull/64339) ##### Commits - \[[`162257b403`](https://redirect.github.com/nodejs/node/commit/162257b403)] - **assert**: improve documentation wording (Kamal Rawal) [#​64953](https://redirect.github.com/nodejs/node/pull/64953) - \[[`74234ee30e`](https://redirect.github.com/nodejs/node/commit/74234ee30e)] - **(SEMVER-MINOR)** **benchmark**: add --analyze mode to compare.js (James M Snell) [#​65416](https://redirect.github.com/nodejs/node/pull/65416) - \[[`2cb96dd462`](https://redirect.github.com/nodejs/node/commit/2cb96dd462)] - **benchmark**: add test-only and mock timers cases (Luan Muniz) [#​64097](https://redirect.github.com/nodejs/node/pull/64097) - \[[`562168f93f`](https://redirect.github.com/nodejs/node/commit/562168f93f)] - **benchmark**: apply `highWaterMark` in webstreams `pipe-to` (Matteo Collina) [#​65138](https://redirect.github.com/nodejs/node/pull/65138) - \[[`fbec4eb386`](https://redirect.github.com/nodejs/node/commit/fbec4eb386)] - **benchmark**: complete the sqlite is-transaction fix (Edy Silva) [#​65218](https://redirect.github.com/nodejs/node/pull/65218) - \[[`d8acfc45f1`](https://redirect.github.com/nodejs/node/commit/d8acfc45f1)] - **benchmark**: add test runner hooks and options (Luan Muniz) [#​63754](https://redirect.github.com/nodejs/node/pull/63754) - \[[`13e7d54f67`](https://redirect.github.com/nodejs/node/commit/13e7d54f67)] - **buffer**: prevent string write offset overflow (Matteo Collina) [#​65043](https://redirect.github.com/nodejs/node/pull/65043) - \[[`615273deac`](https://redirect.github.com/nodejs/node/commit/615273deac)] - **buffer**: support aligned allocations (Robert Nagy) [#​65003](https://redirect.github.com/nodejs/node/pull/65003) - \[[`bc6b630e21`](https://redirect.github.com/nodejs/node/commit/bc6b630e21)] - **buffer**: treat detached ArrayBuffers as empty (Archkon) [#​64504](https://redirect.github.com/nodejs/node/pull/64504) - \[[`ddf9f9d265`](https://redirect.github.com/nodejs/node/commit/ddf9f9d265)] - **build**: target Power 9 and z14 (Richard Lau) [#​65439](https://redirect.github.com/nodejs/node/pull/65439) - \[[`fda8ee894e`](https://redirect.github.com/nodejs/node/commit/fda8ee894e)] - **build**: use build-ci for benchmark merge-commit rebuild (Yagiz Nizipli) [#​65362](https://redirect.github.com/nodejs/node/pull/65362) - \[[`03692786ef`](https://redirect.github.com/nodejs/node/commit/03692786ef)] - **build**: add simdutf dir to include path in GN build (Shelley Vohr) [#​65382](https://redirect.github.com/nodejs/node/pull/65382) - \[[`3da555a3ed`](https://redirect.github.com/nodejs/node/commit/3da555a3ed)] - **build**: pass target architecture to small-icu genccode (ulofiai) [#​65095](https://redirect.github.com/nodejs/node/pull/65095) - \[[`ffe1e7cbea`](https://redirect.github.com/nodejs/node/commit/ffe1e7cbea)] - **build**: update binary-upload to use correct tarball name (Stewart X Addison) [#​65282](https://redirect.github.com/nodejs/node/pull/65282) - \[[`50174cb94a`](https://redirect.github.com/nodejs/node/commit/50174cb94a)] - **build**: deprecate always enabled `--enable-static` (Chengzhong Wu) [#​65103](https://redirect.github.com/nodejs/node/pull/65103) - \[[`28f662b424`](https://redirect.github.com/nodejs/node/commit/28f662b424)] - **build**: check FIPS option value in node.gyp (Filip Skokan) [#​64982](https://redirect.github.com/nodejs/node/pull/64982) - \[[`29a2ecefeb`](https://redirect.github.com/nodejs/node/commit/29a2ecefeb)] - **build**: handle malformed OpenSSL macros (Filip Skokan) [#​64982](https://redirect.github.com/nodejs/node/pull/64982) - \[[`6deeef1801`](https://redirect.github.com/nodejs/node/commit/6deeef1801)] - **build**: enable perfetto updater (Chengzhong Wu) [#​64966](https://redirect.github.com/nodejs/node/pull/64966) - \[[`312f0c6a7e`](https://redirect.github.com/nodejs/node/commit/312f0c6a7e)] - **build**: add host toolset to perfetto\_sdk (Ryuhei Shima) [#​64751](https://redirect.github.com/nodejs/node/pull/64751) - \[[`1a4f5e537b`](https://redirect.github.com/nodejs/node/commit/1a4f5e537b)] - **build,win**: add PGO workload scripts (Stefan Stojanovic) [#​63696](https://redirect.github.com/nodejs/node/pull/63696) - \[[`21655dccbc`](https://redirect.github.com/nodejs/node/commit/21655dccbc)] - **child\_process**: keep SIGWINCH from killing on Win (Kirill Saied) [#​64510](https://redirect.github.com/nodejs/node/pull/64510) - \[[`4232997fa2`](https://redirect.github.com/nodejs/node/commit/4232997fa2)] - **crypto**: update root certificates to NSS 3.126 (Node.js GitHub Bot) [#​65495](https://redirect.github.com/nodejs/node/pull/65495) - \[[`f0531f1c87`](https://redirect.github.com/nodejs/node/commit/f0531f1c87)] - **(SEMVER-MINOR)** **crypto**: enable SIV and GCM-SIV modes in Cipher/Decipher APIs (Filip Skokan) [#​63411](https://redirect.github.com/nodejs/node/pull/63411) - \[[`109566a2f7`](https://redirect.github.com/nodejs/node/commit/109566a2f7)] - **crypto**: fix missing error checks on ASN1\_STRING\_to\_UTF8() (Nora Dossche) [#​65200](https://redirect.github.com/nodejs/node/pull/65200) - \[[`501f81612d`](https://redirect.github.com/nodejs/node/commit/501f81612d)] - **crypto**: improve SubtleCrypto.supports() accuracy (Filip Skokan) [#​65222](https://redirect.github.com/nodejs/node/pull/65222) - \[[`137ff67fd3`](https://redirect.github.com/nodejs/node/commit/137ff67fd3)] - **crypto**: use available BoringSSL APIs (Filip Skokan) [#​65423](https://redirect.github.com/nodejs/node/pull/65423) - \[[`0e87576ed4`](https://redirect.github.com/nodejs/node/commit/0e87576ed4)] - **crypto**: remove obsolete BoringSSL shims (Filip Skokan) [#​65423](https://redirect.github.com/nodejs/node/pull/65423) - \[[`af867ce3e4`](https://redirect.github.com/nodejs/node/commit/af867ce3e4)] - **crypto**: add mgf1Hash for RSA-OAEP (Adam Mcgrath) [#​65073](https://redirect.github.com/nodejs/node/pull/65073) - \[[`66ee4792bf`](https://redirect.github.com/nodejs/node/commit/66ee4792bf)] - **crypto**: disable non-FIPS WebCrypto paths in FIPS mode (Filip Skokan) [#​65172](https://redirect.github.com/nodejs/node/pull/65172) - \[[`6a142c03e9`](https://redirect.github.com/nodejs/node/commit/6a142c03e9)] - **crypto**: read WebCrypto inputs through primordials (Filip Skokan) [#​65115](https://redirect.github.com/nodejs/node/pull/65115) - \[[`92e3110462`](https://redirect.github.com/nodejs/node/commit/92e3110462)] - **crypto**: fix disabling FIPS mode (Filip Skokan) [#​64982](https://redirect.github.com/nodejs/node/pull/64982) - \[[`d69bed2f49`](https://redirect.github.com/nodejs/node/commit/d69bed2f49)] - **debugger**: wait for target startup (Filip Skokan) [#​65194](https://redirect.github.com/nodejs/node/pull/65194) - \[[`5c7c0b8b15`](https://redirect.github.com/nodejs/node/commit/5c7c0b8b15)] - **deps**: update zlib to 1.3.2.1-motley-8002e91 (Node.js GitHub Bot) [#​65316](https://redirect.github.com/nodejs/node/pull/65316) - \[[`4cb6b1335e`](https://redirect.github.com/nodejs/node/commit/4cb6b1335e)] - **deps**: update simdjson to 4.6.7 (Node.js GitHub Bot) [#​65318](https://redirect.github.com/nodejs/node/pull/65318) - \[[`a39ad67482`](https://redirect.github.com/nodejs/node/commit/a39ad67482)] - **deps**: update googletest to [`49495ea`](https://redirect.github.com/nodejs/node/commit/49495eacfdbda3f4b6ba219923fedbb2e3f99376) (Node.js GitHub Bot) [#​65317](https://redirect.github.com/nodejs/node/pull/65317) - \[[`46762dad57`](https://redirect.github.com/nodejs/node/commit/46762dad57)] - **deps**: cherry-pick [libuv/libuv@`e640dc9`](https://redirect.github.com/libuv/libuv/commit/e640dc9) (ulofiai) [#​65118](https://redirect.github.com/nodejs/node/pull/65118) - \[[`abb7a15a8d`](https://redirect.github.com/nodejs/node/commit/abb7a15a8d)] - **deps**: update perfetto to 57.2 (Node.js GitHub Bot) [#​65114](https://redirect.github.com/nodejs/node/pull/65114) - \[[`ebd8c6ba52`](https://redirect.github.com/nodejs/node/commit/ebd8c6ba52)] - **deps**: float ICU-23262 patch for icu78 (René) [#​64678](https://redirect.github.com/nodejs/node/pull/64678) - \[[`f2cc681109`](https://redirect.github.com/nodejs/node/commit/f2cc681109)] - **deps**: enable AVX-512 OpenSSL asm with clang (Daniel Lemire) [#​65136](https://redirect.github.com/nodejs/node/pull/65136) - \[[`f45dc92913`](https://redirect.github.com/nodejs/node/commit/f45dc92913)] - **deps**: update undici to 8.10.0 (Node.js GitHub Bot) [#​65155](https://redirect.github.com/nodejs/node/pull/65155) - \[[`4160dfdf81`](https://redirect.github.com/nodejs/node/commit/4160dfdf81)] - **deps**: update googletest to [`d89aac5`](https://redirect.github.com/nodejs/node/commit/d89aac5f0dd4021198d903d39de16f896726de21) (Node.js GitHub Bot) [#​65153](https://redirect.github.com/nodejs/node/pull/65153) - \[[`631d3aa37b`](https://redirect.github.com/nodejs/node/commit/631d3aa37b)] - **deps**: update libffi to 3.8.0 (Node.js GitHub Bot) [#​65154](https://redirect.github.com/nodejs/node/pull/65154) - \[[`788976c626`](https://redirect.github.com/nodejs/node/commit/788976c626)] - **dgram**: don't swallow bind errors when callback is provided (armanmikoyan) [#​62602](https://redirect.github.com/nodejs/node/pull/62602) - \[[`d286423043`](https://redirect.github.com/nodejs/node/commit/d286423043)] - **diagnostics\_channel**: validate before channel activation (Trivikram Kamat) [#​65313](https://redirect.github.com/nodejs/node/pull/65313) - \[[`3f4b80ebb5`](https://redirect.github.com/nodejs/node/commit/3f4b80ebb5)] - **diagnostics\_channel**: mark TracingChannel as stable (Abdelrahman Awad) [#​64525](https://redirect.github.com/nodejs/node/pull/64525) - \[[`152a326f92`](https://redirect.github.com/nodejs/node/commit/152a326f92)] - **dns**: validate address type in lookupService (Lazizbek Ergashev) [#​64878](https://redirect.github.com/nodejs/node/pull/64878) - \[[`00c71fec93`](https://redirect.github.com/nodejs/node/commit/00c71fec93)] - **dns**: validate port range in `setServers()` (René) [#​65021](https://redirect.github.com/nodejs/node/pull/65021) - \[[`e9327d1422`](https://redirect.github.com/nodejs/node/commit/e9327d1422)] - **dns**: fix crash on setServers with port 0 (Lazizbek Ergashev) [#​65009](https://redirect.github.com/nodejs/node/pull/65009) - \[[`9e227ef20d`](https://redirect.github.com/nodejs/node/commit/9e227ef20d)] - **doc**: update AHAFS reference link (Taeuk Ha) [#​65481](https://redirect.github.com/nodejs/node/pull/65481) - \[[`5fbf6c57af`](https://redirect.github.com/nodejs/node/commit/5fbf6c57af)] - **doc**: fix property names in os.networkInterfaces() example (Jihwan) [#​65469](https://redirect.github.com/nodejs/node/pull/65469) - \[[`13f16d28d1`](https://redirect.github.com/nodejs/node/commit/13f16d28d1)] - **doc**: fix broken links in cli.md (Donghoon Kang) [#​65412](https://redirect.github.com/nodejs/node/pull/65412) - \[[`0f36ee3755`](https://redirect.github.com/nodejs/node/commit/0f36ee3755)] - **doc**: remove outdated WASI version fallback (이혜미) [#​65303](https://redirect.github.com/nodejs/node/pull/65303) - \[[`1ad09f712a`](https://redirect.github.com/nodejs/node/commit/1ad09f712a)] - **doc**: fix broken GYP link in n-api.md (Donghoon Kang) [#​65413](https://redirect.github.com/nodejs/node/pull/65413) - \[[`24cd694237`](https://redirect.github.com/nodejs/node/commit/24cd694237)] - **doc**: document that an empty OPENSSL\_CONF skips config loading (Orgad Shaneh) [#​64949](https://redirect.github.com/nodejs/node/pull/64949) - \[[`dae434132e`](https://redirect.github.com/nodejs/node/commit/dae434132e)] - **doc**: fix broken TLS security level example (soreavis) [#​65391](https://redirect.github.com/nodejs/node/pull/65391) - \[[`96b91dc987`](https://redirect.github.com/nodejs/node/commit/96b91dc987)] - **doc**: clarify socket destroyed behavior (Dayun) [#​65395](https://redirect.github.com/nodejs/node/pull/65395) - \[[`9d8d27d444`](https://redirect.github.com/nodejs/node/commit/9d8d27d444)] - **doc**: update outdated nodejs.org guide links (Donghoon Kang) [#​65394](https://redirect.github.com/nodejs/node/pull/65394) - \[[`65f675086e`](https://redirect.github.com/nodejs/node/commit/65f675086e)] - **doc**: clarify that ipv4 mapped to ipv6 are classified as ipv6 (Vedant Kulkarni) [#​62117](https://redirect.github.com/nodejs/node/pull/62117) - \[[`89aba0c311`](https://redirect.github.com/nodejs/node/commit/89aba0c311)] - **doc**: clarify how fs.Dirent file types are determined (soreavis) [#​64532](https://redirect.github.com/nodejs/node/pull/64532) - \[[`3ed0492f52`](https://redirect.github.com/nodejs/node/commit/3ed0492f52)] - **doc**: update security release prepare command (Rafael Gonzaga) [#​64699](https://redirect.github.com/nodejs/node/pull/64699) - \[[`63583c4e75`](https://redirect.github.com/nodejs/node/commit/63583c4e75)] - **doc**: clarify copyFile symlink behavior (T) [#​62941](https://redirect.github.com/nodejs/node/pull/62941) - \[[`abfc51f757`](https://redirect.github.com/nodejs/node/commit/abfc51f757)] - **doc**: document setRawMode write access on Windows (Erik Demaine) [#​63856](https://redirect.github.com/nodejs/node/pull/63856) - \[[`4a784cb3e6`](https://redirect.github.com/nodejs/node/commit/4a784cb3e6)] - **doc**: document per-architecture fast FFI argument limits (Seongeun Lee) [#​65207](https://redirect.github.com/nodejs/node/pull/65207) - \[[`262f966155`](https://redirect.github.com/nodejs/node/commit/262f966155)] - **doc**: add missing return types in fs.md (Chaseton Collins) [#​65307](https://redirect.github.com/nodejs/node/pull/65307) - \[[`695cd896a7`](https://redirect.github.com/nodejs/node/commit/695cd896a7)] - **doc**: add missing return types in buffer.md (Yuya Inoue) [#​65308](https://redirect.github.com/nodejs/node/pull/65308) - \[[`676a1228cd`](https://redirect.github.com/nodejs/node/commit/676a1228cd)] - **doc**: fix lint clean command (greenhead) [#​65274](https://redirect.github.com/nodejs/node/pull/65274) - \[[`9ea318d4e3`](https://redirect.github.com/nodejs/node/commit/9ea318d4e3)] - **doc**: fix typo in onboarding.md (서울민트초코) [#​65295](https://redirect.github.com/nodejs/node/pull/65295) - \[[`3b6a918ab4`](https://redirect.github.com/nodejs/node/commit/3b6a918ab4)] - **doc**: add missing `added:` tags to `fs.lchmod` (Lazizbek Ergashev) [#​65283](https://redirect.github.com/nodejs/node/pull/65283) - \[[`a77b1e61df`](https://redirect.github.com/nodejs/node/commit/a77b1e61df)] - **doc**: fix SQLite changeset constant descriptions (greenhead) [#​65265](https://redirect.github.com/nodejs/node/pull/65265) - \[[`ab50ae60e4`](https://redirect.github.com/nodejs/node/commit/ab50ae60e4)] - **doc**: document open pull request limit (Matteo Collina) [#​65250](https://redirect.github.com/nodejs/node/pull/65250) - \[[`e2f4ea03a3`](https://redirect.github.com/nodejs/node/commit/e2f4ea03a3)] - **doc**: document http2 header constants (Harjoth Khara) [#​64548](https://redirect.github.com/nodejs/node/pull/64548) - \[[`5b5509d0d3`](https://redirect.github.com/nodejs/node/commit/5b5509d0d3)] - **doc**: create ai-guidelines and include to CONTRIBUTING (Rafael Gonzaga) [#​62105](https://redirect.github.com/nodejs/node/pull/62105) - \[[`c63e873073`](https://redirect.github.com/nodejs/node/commit/c63e873073)] - **doc**: fix broken fs.BigIntStats link in vfs.md (greenhead) [#​65045](https://redirect.github.com/nodejs/node/pull/65045) - \[[`d6059e84c0`](https://redirect.github.com/nodejs/node/commit/d6059e84c0)] - **doc**: update synopsis (Augustin Mauroy) [#​65171](https://redirect.github.com/nodejs/node/pull/65171) - \[[`43f1dc03e7`](https://redirect.github.com/nodejs/node/commit/43f1dc03e7)] - **doc**: document close() error when in a sqlite callback (Trivikram Kamat) [#​65090](https://redirect.github.com/nodejs/node/pull/65090) - \[[`8f5f48ad96`](https://redirect.github.com/nodejs/node/commit/8f5f48ad96)] - **doc**: fix broken internal links (greenhead) [#​64901](https://redirect.github.com/nodejs/node/pull/64901) - \[[`5b64b37739`](https://redirect.github.com/nodejs/node/commit/5b64b37739)] - **doc**: report proper return type on urlPattern.test (Brian Muenzenmeyer) [#​64831](https://redirect.github.com/nodejs/node/pull/64831) - \[[`9633bb0f29`](https://redirect.github.com/nodejs/node/commit/9633bb0f29)] - **doc**: fix permission documentation examples (greenhead) [#​64897](https://redirect.github.com/nodejs/node/pull/64897) - \[[`e52e573fd7`](https://redirect.github.com/nodejs/node/commit/e52e573fd7)] - **doc**: document sqlite parameter binding (Guilherme Araújo) [#​65089](https://redirect.github.com/nodejs/node/pull/65089) - \[[`fa52f11d3b`](https://redirect.github.com/nodejs/node/commit/fa52f11d3b)] - **doc**: finalize statements in sqlite examples (Guilherme Araújo) [#​65088](https://redirect.github.com/nodejs/node/pull/65088) - \[[`0157c45012`](https://redirect.github.com/nodejs/node/commit/0157c45012)] - **doc**: document quic stopSending() and resetStream() (Issac) [#​64888](https://redirect.github.com/nodejs/node/pull/64888) - \[[`003a913799`](https://redirect.github.com/nodejs/node/commit/003a913799)] - **doc**: clarify sqlite bare parameter default (Sumit Kumar Das) [#​62009](https://redirect.github.com/nodejs/node/pull/62009) - \[[`c5588d71ad`](https://redirect.github.com/nodejs/node/commit/c5588d71ad)] - **doc**: remove usage of `util.inherits` (Augustin Mauroy) [#​60817](https://redirect.github.com/nodejs/node/pull/60817) - \[[`673db40fbf`](https://redirect.github.com/nodejs/node/commit/673db40fbf)] - **doc**: fix grammar in worker\_threads.md (이혜미) [#​64913](https://redirect.github.com/nodejs/node/pull/64913) - \[[`ee5f72cf16`](https://redirect.github.com/nodejs/node/commit/ee5f72cf16)] - **doc**: fix broken link (Antoine du Hamel) [#​65078](https://redirect.github.com/nodejs/node/pull/65078) - \[[`0450ab6c6a`](https://redirect.github.com/nodejs/node/commit/0450ab6c6a)] - **doc**: update `node.1` to fix linter (Antoine du Hamel) [#​65053](https://redirect.github.com/nodejs/node/pull/65053) - \[[`9a256b0693`](https://redirect.github.com/nodejs/node/commit/9a256b0693)] - **doc**: clarify OpenSSL FIPS configuration (Filip Skokan) [#​64982](https://redirect.github.com/nodejs/node/pull/64982) - \[[`c321752dcb`](https://redirect.github.com/nodejs/node/commit/c321752dcb)] - **doc**: remove `--expose-gc` flag from CLI documentation (Dario Piotrowicz) [#​58909](https://redirect.github.com/nodejs/node/pull/58909) - \[[`0cf79931bb`](https://redirect.github.com/nodejs/node/commit/0cf79931bb)] - **doc**: document ArrayBuffer support in pbkd2Sync (kyungrae2002) [#​64976](https://redirect.github.com/nodejs/node/pull/64976) - \[[`3b8a0bacaa`](https://redirect.github.com/nodejs/node/commit/3b8a0bacaa)] - **doc**: correct default highWaterMark values (Yilong Li) [#​64617](https://redirect.github.com/nodejs/node/pull/64617) - \[[`be313012e4`](https://redirect.github.com/nodejs/node/commit/be313012e4)] - **doc**: use ffi.suffix in permission example (agape1225) [#​64914](https://redirect.github.com/nodejs/node/pull/64914) - \[[`4a1c9a7ee0`](https://redirect.github.com/nodejs/node/commit/4a1c9a7ee0)] - **esm**: avoid super-linear data URL MIME regex (Sumit Kumar Das) [#​61951](https://redirect.github.com/nodejs/node/pull/61951) - \[[`b1770bc196`](https://redirect.github.com/nodejs/node/commit/b1770bc196)] - **esm**: only register text format when enabled (Efe Karasakal) [#​64992](https://redirect.github.com/nodejs/node/pull/64992) - \[[`f48927fe5b`](https://redirect.github.com/nodejs/node/commit/f48927fe5b)] - **esm**: fix wasm import name in error message (이혜미) [#​64950](https://redirect.github.com/nodejs/node/pull/64950) - \[[`8d48adf688`](https://redirect.github.com/nodejs/node/commit/8d48adf688)] - **events**: inline iterationCondition hybrid dispatch closure (Szymon Łągiewka) [#​64473](https://redirect.github.com/nodejs/node/pull/64473) - \[[`b827c0047e`](https://redirect.github.com/nodejs/node/commit/b827c0047e)] - **events**: inline createEvent hybrid dispatch closure (Szymon Łągiewka) [#​64473](https://redirect.github.com/nodejs/node/pull/64473) - \[[`7670c81d99`](https://redirect.github.com/nodejs/node/commit/7670c81d99)] - **ffi**: prefer canonical type names (Trivikram Kamat) [#​65417](https://redirect.github.com/nodejs/node/pull/65417) - \[[`1fe7a1c33d`](https://redirect.github.com/nodejs/node/commit/1fe7a1c33d)] - **ffi**: validate the value passed to the float setters (Soul Lee) [#​65342](https://redirect.github.com/nodejs/node/pull/65342) - \[[`537feecd0b`](https://redirect.github.com/nodejs/node/commit/537feecd0b)] - **ffi**: reject direct SharedArrayBuffer pointers (Trivikram Kamat) [#​65233](https://redirect.github.com/nodejs/node/pull/65233) - \[[`0002f0a718`](https://redirect.github.com/nodejs/node/commit/0002f0a718)] - **ffi**: remove dead null check in callback arguments (Trivikram Kamat) [#​64998](https://redirect.github.com/nodejs/node/pull/64998) - \[[`9024ec27b6`](https://redirect.github.com/nodejs/node/commit/9024ec27b6)] - **ffi**: keep FFI functions non-constructible (Trivikram Kamat) [#​65184](https://redirect.github.com/nodejs/node/pull/65184) - \[[`9b4f349b01`](https://redirect.github.com/nodejs/node/commit/9b4f349b01)] - **ffi**: refresh cached string buffers on every call (Trivikram Kamat) [#​65051](https://redirect.github.com/nodejs/node/pull/65051) - \[[`eacd65e9c2`](https://redirect.github.com/nodejs/node/commit/eacd65e9c2)] - **ffi**: reject detached ArrayBufferViews (Trivikram Kamat) [#​65086](https://redirect.github.com/nodejs/node/pull/65086) - \[[`be2ab89730`](https://redirect.github.com/nodejs/node/commit/be2ab89730)] - **ffi**: reject detached ArrayBuffers as pointers (Trivikram Kamat) [#​65083](https://redirect.github.com/nodejs/node/pull/65083) - \[[`6f9e0846ea`](https://redirect.github.com/nodejs/node/commit/6f9e0846ea)] - **ffi**: validate fast pointer BigInt argument ranges (Trivikram Kamat) [#​65032](https://redirect.github.com/nodejs/node/pull/65032) - \[[`3e6688c5e3`](https://redirect.github.com/nodejs/node/commit/3e6688c5e3)] - **ffi**: reuse the callable created per symbol (Trivikram Kamat) [#​64971](https://redirect.github.com/nodejs/node/pull/64971) - \[[`8b0bdd931c`](https://redirect.github.com/nodejs/node/commit/8b0bdd931c)] - **ffi**: shrink trampoline placement probe window (Trivikram Kamat) [#​64969](https://redirect.github.com/nodejs/node/pull/64969) - \[[`9c282c4532`](https://redirect.github.com/nodejs/node/commit/9c282c4532)] - **ffi**: accept pointer BigInts in multi-argument fast calls (Trivikram Kamat) [#​64964](https://redirect.github.com/nodejs/node/pull/64964) - \[[`b98294b57d`](https://redirect.github.com/nodejs/node/commit/b98294b57d)] - **ffi**: support SharedArrayBuffer in getRawPointer (Junsoo Ha) [#​64864](https://redirect.github.com/nodejs/node/pull/64864) - \[[`5cac7c2c55`](https://redirect.github.com/nodejs/node/commit/5cac7c2c55)] - **ffi**: reuse libffi call plans (Yilong Li) [#​64958](https://redirect.github.com/nodejs/node/pull/64958) - \[[`262f0ec82a`](https://redirect.github.com/nodejs/node/commit/262f0ec82a)] - **fs**: stop stat()ing every entry in recursive readdir (Shelley Vohr) [#​65487](https://redirect.github.com/nodejs/node/pull/65487) - \[[`e3ae912e9a`](https://redirect.github.com/nodejs/node/commit/e3ae912e9a)] - **fs**: use sized reads for large files in readFileUtf8 (Shelley Vohr) [#​65328](https://redirect.github.com/nodejs/node/pull/65328) - \[[`bc1e19b4b7`](https://redirect.github.com/nodejs/node/commit/bc1e19b4b7)] - **fs**: fix realpath of namespaced drive paths (Jason Zhang) [#​65378](https://redirect.github.com/nodejs/node/pull/65378) - \[[`6673ebadf2`](https://redirect.github.com/nodejs/node/commit/6673ebadf2)] - **fs**: abort in-flight stat operations (Mert Can Altin) [#​63143](https://redirect.github.com/nodejs/node/pull/63143) - \[[`74dcdbb5f1`](https://redirect.github.com/nodejs/node/commit/74dcdbb5f1)] - **fs**: fix glob early return skipping sibling entries (Srinu desetti) [#​64895](https://redirect.github.com/nodejs/node/pull/64895) - \[[`6305a744df`](https://redirect.github.com/nodejs/node/commit/6305a744df)] - **fs**: pass symlink type in cp when filter is provided (Jerry Zhao) [#​62654](https://redirect.github.com/nodejs/node/pull/62654) - \[[`c5cb6bc7e2`](https://redirect.github.com/nodejs/node/commit/c5cb6bc7e2)] - **fs**: allocate FSReqPromise stat arrays lazily (Samuel Attard) [#​63886](https://redirect.github.com/nodejs/node/pull/63886) - \[[`992af05719`](https://redirect.github.com/nodejs/node/commit/992af05719)] - **fs**: fix out-of-bounds write in mkdtemp for long prefixes (Hierax\_Umbra) [#​64770](https://redirect.github.com/nodejs/node/pull/64770) - \[[`2de845b2dd`](https://redirect.github.com/nodejs/node/commit/2de845b2dd)] - **fs**: treat `std::errc::permission_denied` as `EPERM` error (Kirill Saied) [#​64698](https://redirect.github.com/nodejs/node/pull/64698) - \[[`77fedbd350`](https://redirect.github.com/nodejs/node/commit/77fedbd350)] - **fs**: read small files in one thread pool round trip (Shelley Vohr) [#​65327](https://redirect.github.com/nodejs/node/pull/65327) - \[[`810929b6dd`](https://redirect.github.com/nodejs/node/commit/810929b6dd)] - ***Revert*** "**fs**: fix close listener leak in FileHandle streams" (Mike McCready) [#​65387](https://redirect.github.com/nodejs/node/pull/65387) - \[[`8873b91fce`](https://redirect.github.com/nodejs/node/commit/8873b91fce)] - **fs**: fix close listener leak in FileHandle streams (Y1D7NG) [#​64227](https://redirect.github.com/nodejs/node/pull/64227) - \[[`656cfaeb2d`](https://redirect.github.com/nodejs/node/commit/656cfaeb2d)] - **fs**: add windowsHandle option to file streams (Kirill Saied) [#​63851](https://redirect.github.com/nodejs/node/pull/63851) - \[[`c2c31d69fd`](https://redirect.github.com/nodejs/node/commit/c2c31d69fd)] - **http**: improve performance with known-length calls to end() (Tim Perry) [#​65466](https://redirect.github.com/nodejs/node/pull/65466) - \[[`7e9204f4b3`](https://redirect.github.com/nodejs/node/commit/7e9204f4b3)] - **http**: use intrusive lists in ConnectionsList (Matteo Collina) [#​65296](https://redirect.github.com/nodejs/node/pull/65296) - \[[`98e6272c70`](https://redirect.github.com/nodejs/node/commit/98e6272c70)] - **http**: cache maxHeaderPairs per header section (GetThatCookie) [#​64988](https://redirect.github.com/nodejs/node/pull/64988) - \[[`6c3516f179`](https://redirect.github.com/nodejs/node/commit/6c3516f179)] - **http**: fix keylog listener setup on existing agent sockets (Shani Singh) [#​65066](https://redirect.github.com/nodejs/node/pull/65066) - \[[`dad9548fbc`](https://redirect.github.com/nodejs/node/commit/dad9548fbc)] - **http**: emit drain on socket takeover and avoid stale HWM reuse (Naman Trivedi) [#​64991](https://redirect.github.com/nodejs/node/pull/64991) - \[[`563cab119b`](https://redirect.github.com/nodejs/node/commit/563cab119b)] - **http2**: avoid uaf while receiving and sending rst\_stream (esgor) [#​64166](https://redirect.github.com/nodejs/node/pull/64166) - \[[`099801641b`](https://redirect.github.com/nodejs/node/commit/099801641b)] - **inspector**: avoid calling into JS from V8 interrupts (Joyee Cheung) [#​65028](https://redirect.github.com/nodejs/node/pull/65028) - \[[`b71d5de0b8`](https://redirect.github.com/nodejs/node/commit/b71d5de0b8)] - **lib**: use bracket notation instead of startsWith/endsWith for single char (Taejin Kim) [#​61500](https://redirect.github.com/nodejs/node/pull/61500) - \[[`e8e2abcc8d`](https://redirect.github.com/nodejs/node/commit/e8e2abcc8d)] - **lib**: load fewer builtins when bootstrapping without a snapshot (Shelley Vohr) [#​65329](https://redirect.github.com/nodejs/node/pull/65329) - \[[`3619dc0601`](https://redirect.github.com/nodejs/node/commit/3619dc0601)] - **lib**: fix ERR\_INVALID\_ARG\_TYPE with --enable-source-maps (June) [#​63215](https://redirect.github.com/nodejs/node/pull/63215) - \[[`ad7c67026b`](https://redirect.github.com/nodejs/node/commit/ad7c67026b)] - **lib**: harden webidl dictionary member reads (Filip Skokan) [#​65115](https://redirect.github.com/nodejs/node/pull/65115) - \[[`b5182f0a1c`](https://redirect.github.com/nodejs/node/commit/b5182f0a1c)] - **lib**: use validateArray for array arguments (greenhead) [#​64959](https://redirect.github.com/nodejs/node/pull/64959) - \[[`7f7df06821`](https://redirect.github.com/nodejs/node/commit/7f7df06821)] - **lib**: add and test \[EnforceRange] in webcrypto dictionaries (Filip Skokan) [#​65091](https://redirect.github.com/nodejs/node/pull/65091) - \[[`753033c110`](https://redirect.github.com/nodejs/node/commit/753033c110)] - **(SEMVER-MINOR)** **lib,src**: improve histogram implementation (James M Snell) [#​65024](https://redirect.github.com/nodejs/node/pull/65024) - \[[`8d39d0d660`](https://redirect.github.com/nodejs/node/commit/8d39d0d660)] - **meta**: add a root-level AGENTS.md (James M Snell) [#​65493](https://redirect.github.com/nodejs/node/pull/65493) - \[[`3770f9baea`](https://redirect.github.com/nodejs/node/commit/3770f9baea)] - **meta**: move targos to emeritus (Michaël Zasso) [#​65393](https://redirect.github.com/nodejs/node/pull/65393) - \[[`a9b31dfe30`](https://redirect.github.com/nodejs/node/commit/a9b31dfe30)] - **meta**: add unified http api initiative (James M Snell) [#​65139](https://redirect.github.com/nodejs/node/pull/65139) - \[[`6bffc306aa`](https://redirect.github.com/nodejs/node/commit/6bffc306aa)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#​65182](https://redirect.github.com/nodejs/node/pull/65182) - \[[`4abd1c8100`](https://redirect.github.com/nodejs/node/commit/4abd1c8100)] - **meta**: add support for alpha prerelease tag (Antoine du Hamel) [#​63135](https://redirect.github.com/nodejs/node/pull/63135) - \[[`132c578e97`](https://redirect.github.com/nodejs/node/commit/132c578e97)] - **meta**: add Aviv Keller to `.mailmap` (Aviv Keller) [#​65048](https://redirect.github.com/nodejs/node/pull/65048) - \[[`7aff78d231`](https://redirect.github.com/nodejs/node/commit/7aff78d231)] - **meta**: update sccache to 0.17.0 (René) [#​64985](https://redirect.github.com/nodejs/node/pull/64985) - \[[`97a437e7ea`](https://redirect.github.com/nodejs/node/commit/97a437e7ea)] - **module**: add a read-only mode to the compile cache (Shelley Vohr) [#​65302](https://redirect.github.com/nodejs/node/pull/65302) - \[[`5821362819`](https://redirect.github.com/nodejs/node/commit/5821362819)] - **module**: do not split a portable compile cache by uid (Shelley Vohr) [#​65293](https://redirect.github.com/nodejs/node/pull/65293) - \[[`eb5d66e856`](https://redirect.github.com/nodejs/node/commit/eb5d66e856)] - **module**: report unreadable package.json (Paul Bouchon) [#​65223](https://redirect.github.com/nodejs/node/pull/65223) - \[[`43757d07c1`](https://redirect.github.com/nodejs/node/commit/43757d07c1)] - **module**: cache nearest parent package.json per directory (Shelley Vohr) [#​65326](https://redirect.github.com/nodejs/node/pull/65326) - \[[`d7805e00dc`](https://redirect.github.com/nodejs/node/commit/d7805e00dc)] - **module**: fix --check on ambiguous ESM files (Paul Bouchon) [#​65203](https://redirect.github.com/nodejs/node/pull/65203) - \[[`646221a495`](https://redirect.github.com/nodejs/node/commit/646221a495)] - **net**: handle undefined parent in \_unrefTimer and \_destroy (Shivay-98) [#​64644](https://redirect.github.com/nodejs/node/pull/64644) - \[[`3d7d277493`](https://redirect.github.com/nodejs/node/commit/3d7d277493)] - **(SEMVER-MINOR)** **net**: improve performance of net.BlockList (James M Snell) [#​64974](https://redirect.github.com/nodejs/node/pull/64974) - \[[`9e8e9080fd`](https://redirect.github.com/nodejs/node/commit/9e8e9080fd)] - **(SEMVER-MINOR)** **perf\_hooks**: add statistical hypothesis testing to histogram (James M Snell) [#​65416](https://redirect.github.com/nodejs/node/pull/65416) - \[[`01a8ae0ce6`](https://redirect.github.com/nodejs/node/commit/01a8ae0ce6)] - **permission**: guard UDP handle adoption (Rafael Gonzaga) [#​65358](https://redirect.github.com/nodejs/node/pull/65358) - \[[`ac3c412aaf`](https://redirect.github.com/nodejs/node/commit/ac3c412aaf)] - **permission**: enforce addon permission in GetLinkedBinding (Rafael Gonzaga) [#​65432](https://redirect.github.com/nodejs/node/pull/65432) - \[[`8765afd4c2`](https://redirect.github.com/nodejs/node/commit/8765afd4c2)] - **process**: validate resource stats array offsets (Archkon) [#​65098](https://redirect.github.com/nodejs/node/pull/65098) - \[[`d0447c93f6`](https://redirect.github.com/nodejs/node/commit/d0447c93f6)] - **quic**: changes for nghttp3\_conn\_close\_stream2 (Marten Richter) [#​64574](https://redirect.github.com/nodejs/node/pull/64574) - \[[`91393898b5`](https://redirect.github.com/nodejs/node/commit/91393898b5)] - **quic**: mark drain promise handled (James M Snell) [#​65319](https://redirect.github.com/nodejs/node/pull/65319) - \[[`5c9576bf50`](https://redirect.github.com/nodejs/node/commit/5c9576bf50)] - **quic**: reset rejected HTTP/3 request streams with H3\_REQUEST\_REJECTED (trivenay) [#​65442](https://redirect.github.com/nodejs/node/pull/65442) - \[[`ec956f2abc`](https://redirect.github.com/nodejs/node/commit/ec956f2abc)] - **quic**: write desired size needs update on maxstream (Marten Richter) [#​64768](https://redirect.github.com/nodejs/node/pull/64768) - \[[`41c510803d`](https://redirect.github.com/nodejs/node/commit/41c510803d)] - **quic**: do not destroy incoming streams that have a consumer (trivenay) [#​65335](https://redirect.github.com/nodejs/node/pull/65335) - \[[`009e376581`](https://redirect.github.com/nodejs/node/commit/009e376581)] - **quic**: fix wake up blob (Marten Richter) [#​64044](https://redirect.github.com/nodejs/node/pull/64044) - \[[`4674a10368`](https://redirect.github.com/nodejs/node/commit/4674a10368)] - **quic**: convert incoming :status header to number (Hallison Pereira Melo) [#​63589](https://redirect.github.com/nodejs/node/pull/63589) - \[[`5953165f53`](https://redirect.github.com/nodejs/node/commit/5953165f53)] - **quic**: fix infinite loop if STOP\_SENDING received on a buffering stream (Tim Perry) [#​64715](https://redirect.github.com/nodejs/node/pull/64715) - \[[`bb499c312e`](https://redirect.github.com/nodejs/node/commit/bb499c312e)] - **repl**: keep entries added while history file is loading (Mhayk Whandson) [#​64513](https://redirect.github.com/nodejs/node/pull/64513) - \[[`825fcfe4d5`](https://redirect.github.com/nodejs/node/commit/825fcfe4d5)] - **repl**: add benchmarks (Aviv Keller) [#​64590](https://redirect.github.com/nodejs/node/pull/64590) - \[[`c18b0aa54e`](https://redirect.github.com/nodejs/node/commit/c18b0aa54e)] - **repl**: add basic syntax highlighting (Aviv Keller) [#​64591](https://redirect.github.com/nodejs/node/pull/64591) - \[[`f32a8631ad`](https://redirect.github.com/nodejs/node/commit/f32a8631ad)] - **sea**: avoid dangling CLI option pointers (Archkon) [#​64755](https://redirect.github.com/nodejs/node/pull/64755) - \[[`3126ce5779`](https://redirect.github.com/nodejs/node/commit/3126ce5779)] - **sea**: handle NUL bytes in asset keys (Archkon) [#​64773](https://redirect.github.com/nodejs/node/pull/64773) - \[[`64a8843ff2`](https://redirect.github.com/nodejs/node/commit/64a8843ff2)] - **sea**: reject trailing content in config JSON (Archkon) [#​64774](https://redirect.github.com/nodejs/node/pull/64774) - \[[`1d9dd252f1`](https://redirect.github.com/nodejs/node/commit/1d9dd252f1)] - **sea**: reject malformed --node-options values (Archkon) [#​64803](https://redirect.github.com/nodejs/node/pull/64803) - \[[`6ec735c910`](https://redirect.github.com/nodejs/node/commit/6ec735c910)] - **sqlite**: reject reentry while binding parameters (Trevor Burnham) [#​65294](https://redirect.github.com/nodejs/node/pull/65294) - \[[`60cb384c15`](https://redirect.github.com/nodejs/node/commit/60cb384c15)] - **sqlite**: remove unused column name helper (Trivikram Kamat) [#​65401](https://redirect.github.com/nodejs/node/pull/65401) - \[[`fce6754a83`](https://redirect.github.com/nodejs/node/commit/fce6754a83)] - **sqlite**: reject busy statement finalization in authorizer (Trivikram Kamat) [#​65369](https://redirect.github.com/nodejs/node/pull/65369) - \[[`e2f952f2ff`](https://redirect.github.com/nodejs/node/commit/e2f952f2ff)] - **sqlite**: prevent reentrant session.close() (Trivikram Kamat) [#​65349](https://redirect.github.com/nodejs/node/pull/65349) - \[[`0e8af3378a`](https://redirect.github.com/nodejs/node/commit/0e8af3378a)] - **sqlite**: reuse cached column names in statement all() and get() (Edy Silva) [#​65276](https://redirect.github.com/nodejs/node/pull/65276) - \[[`e6bfec91be`](https://redirect.github.com/nodejs/node/commit/e6bfec91be)] - **sqlite**: validate StatementSync.run() integers (Trivikram Kamat) [#​65178](https://redirect.github.com/nodejs/node/pull/65178) - \[[`bbb1226dbe`](https://redirect.github.com/nodejs/node/commit/bbb1226dbe)] - **sqlite**: add diagnostic channel (Guilherme Araújo) [#​62241](https://redirect.github.com/nodejs/node/pull/62241) - \[[`6302168de8`](https://redirect.github.com/nodejs/node/commit/6302168de8)] - **sqlite**: add stmt persistent flag (Guilherme Araújo) [#​62757](https://redirect.github.com/nodejs/node/pull/62757) - \[[`2989311d81`](https://redirect.github.com/nodejs/node/commit/2989311d81)] - **sqlite**: reject connection access from authorizer callbacks (Trevor Burnham) [#​65156](https://redirect.github.com/nodejs/node/pull/65156) - \[[`72c37b133e`](https://redirect.github.com/nodejs/node/commit/72c37b133e)] - **sqlite**: expose prepared statement statistics (Edy Silva) [#​64541](https://redirect.github.com/nodejs/node/pull/64541) - \[[`3e50a2f1e9`](https://redirect.github.com/nodejs/node/commit/3e50a2f1e9)] - **sqlite**: manage sqlite3\_stmt lifetime with RAII (Guilherme Araújo) [#​62419](https://redirect.github.com/nodejs/node/pull/62419) - \[[`3ab7e72555`](https://redirect.github.com/nodejs/node/commit/3ab7e72555)] - **sqlite**: check sqlite3\_step() and sqlite3\_reset() results (semimikoh) [#​63319](https://redirect.github.com/nodejs/node/pull/63319) - \[[`5e387ce979`](https://redirect.github.com/nodejs/node/commit/5e387ce979)] - **sqlite**: reject statement-less SQL in prepare() (Trevor Burnham) [#​65157](https://redirect.github.com/nodejs/node/pull/65157) - \[[`83169e58f3`](https://redirect.github.com/nodejs/node/commit/83169e58f3)] - **sqlite**: reject statement-less SQL in SQLTagStore (Trevor Burnham) [#​65157](https://redirect.github.com/nodejs/node/pull/65157) - \[[`7f31f6226e`](https://redirect.github.com/nodejs/node/commit/7f31f6226e)] - **sqlite**: isolate applyChangeset filter errors (Trivikram Kamat) [#​64823](https://redirect.github.com/nodejs/node/pull/64823) - \[[`c89878c3c8`](https://redirect.github.com/nodejs/node/commit/c89878c3c8)] - **sqlite**: reject deserialize() while in a callback (Trivikram Kamat) [#​64796](https://redirect.github.com/nodejs/node/pull/64796) - \[[`5a852b22d4`](https://redirect.github.com/nodejs/node/commit/5a852b22d4)] - **sqlite**: check null returns from sqlite value functions (Nora Dossche) [#​63288](https://redirect.github.com/nodejs/node/pull/63288) - \[[`5cb78ed300`](https://redirect.github.com/nodejs/node/commit/5cb78ed300)] - **sqlite**: validate maxSize argument in createTagStore() (Anshika Jain) [#​63792](https://redirect.github.com/nodejs/node/pull/63792) - \[[`ca885876f6`](https://redirect.github.com/nodejs/node/commit/ca885876f6)] - **sqlite**: refactor error helpers and user function pointers (Ali Hassan) [#​62794](https://redirect.github.com/nodejs/node/pull/62794) - \[[`06b1758dcd`](https://redirect.github.com/nodejs/node/commit/06b1758dcd)] - **sqlite**: reject non-positive backup rates (Trivikram Kamat) [#​64893](https://redirect.github.com/nodejs/node/pull/64893) - \[[`ce0ca47023`](https://redirect.github.com/nodejs/node/commit/ce0ca47023)] - **sqlite**: clear SQLTagStore bindings (Matteo Collina) [#​65041](https://redirect.github.com/nodejs/node/pull/65041) - \[[`49fb028714`](https://redirect.github.com/nodejs/node/commit/49fb028714)] - **sqlite**: bind Boolean (mike-git374) [#​62001](https://redirect.github.com/nodejs/node/pull/62001) - \[[`09d0da99e9`](https://redirect.github.com/nodejs/node/commit/09d0da99e9)] - **sqlite**: fix undefined behaviour in `Session::Changeset()` (Nora Dossche) [#​63637](https://redirect.github.com/nodejs/node/pull/63637) - \[[`58ea88e1d3`](https://redirect.github.com/nodejs/node/commit/58ea88e1d3)] - **(SEMVER-MINOR)** **sqlite**: add StatementSync.prototype.close() (Guilherme Araújo) [#​64232](https://redirect.github.com/nodejs/node/pull/64232) - \[[`7c61b08aed`](https://redirect.github.com/nodejs/node/commit/7c61b08aed)] - **(SEMVER-MINOR)** **sqlite**: add StatementSync.prototype\[Symbol.dispose]\() (Guilherme Araújo) [#​64232](https://redirect.github.com/nodejs/node/pull/64232) - \[[`9167ebd32b`](https://redirect.github.com/nodejs/node/commit/9167ebd32b)] - **sqlite**: bind ArrayBuffer (mike-git374) [#​62061](https://redirect.github.com/nodejs/node/pull/62061) - \[[`5da6eaa8af`](https://redirect.github.com/nodejs/node/commit/5da6eaa8af)] - **sqlite**: prevent database close during callbacks (Matteo Collina) [#​64743](https://redirect.github.com/nodejs/node/pull/64743) - \[[`29d794bc84`](https://redirect.github.com/nodejs/node/commit/29d794bc84)] - **src**: fix heap value deduplication in embedder graph (Ilyas Shabi) [#​64801](https://redirect.github.com/nodejs/node/pull/64801) - \[[`b405e9b039`](https://redirect.github.com/nodejs/node/commit/b405e9b039)] - **src**: fix out-of-bounds write when transcoding odd-length ucs2 (nashit hayat) [#​64512](https://redirect.github.com/nodejs/node/pull/64512) - \[[`101a215472`](https://redirect.github.com/nodejs/node/commit/101a215472)] - **src**: use simdutf for two-byte utf8 conversion (Mert Can Altin) [#​62248](https://redirect.github.com/nodejs/node/pull/62248) - \[[`340b98346f`](https://redirect.github.com/nodejs/node/commit/340b98346f)] - **src**: run same-priority platform tasks in posting order (Shelley Vohr) [#​65353](https://redirect.github.com/nodejs/node/pull/65353) - \[[`83a7949c18`](https://redirect.github.com/nodejs/node/commit/83a7949c18)] - **src**: define O\_SYNC, O\_DSYNC and O\_DIRECT on Windows (Kirill Saied) [#​64707](https://redirect.github.com/nodejs/node/pull/64707) - \[[`32bb197f2a`](https://redirect.github.com/nodejs/node/commit/32bb197f2a)] - **src**: use simdutf for two-byte strings in UTF-8 writes (Shelley Vohr) [#​65324](https://redirect.github.com/nodejs/node/pull/65324) - \[[`613be79cf4`](https://redirect.github.com/nodejs/node/commit/613be79cf4)] - **src**: add v8::Local specialization for MaybeStackBuffer (James M Snell) [#​65159](https://redirect.github.com/nodejs/node/pull/65159) - \[[`922d47cbd7`](https://redirect.github.com/nodejs/node/commit/922d47cbd7)] - **src**: escape Windows environment variables in task runner (Antoine du Hamel) [#​65217](https://redirect.github.com/nodejs/node/pull/65217) - \[[`3a47f1f282`](https://redirect.github.com/nodejs/node/commit/3a47f1f282)] - **src**: apply minor namespace format tweak in permissions (James M Snell) [#​65158](https://redirect.github.com/nodejs/node/pull/65158) - \[[`981cfa537d`](https://redirect.github.com/nodejs/node/commit/981cfa537d)] - **src**: simplify permissions with BooleanPermissions (James M Snell) [#​65158](https://redirect.github.com/nodejs/node/pull/65158) - \[[`5954b13f88`](https://redirect.github.com/nodejs/node/commit/5954b13f88)] - **src**: simplify includes in permissions (James M Snell) [#​65158](https://redirect.github.com/nodejs/node/pull/65158) - \[[`d4ced88c09`](https://redirect.github.com/nodejs/node/commit/d4ced88c09)] - **src**: apply a modest performance perf to permissions (James M Snell) [#​65158](https://redirect.github.com/nodejs/node/pull/65158) - \[[`efb649ec26`](https://redirect.github.com/nodejs/node/commit/efb649ec26)] - **src**: make permission storage a bit more efficient (James M Snell) [#​65158](https://redirect.github.com/nodejs/node/pull/65158) - \[[`521aaf10fc`](https://redirect.github.com/nodejs/node/commit/521aaf10fc)] - **src**: apply multiple general cleanups to permissions (James M Snell) [#​65158](https://redirect.github.com/nodejs/node/pull/65158) - \[[`ac920e0d2b`](https://redirect.github.com/nodejs/node/commit/ac920e0d2b)] - **src**: simplify c++ diagnostics channel API (James M Snell) [#​65158](https://redirect.github.com/nodejs/node/pull/65158) - \[[`ec8fe275a1`](https://redirect.github.com/nodejs/node/commit/ec8fe275a1)] - **src**: make minor cleanup to permission checks (James M Snell) [#​65158](https://redirect.github.com/nodejs/node/pull/65158) - \[[`968bdd0135`](https://redirect.github.com/nodejs/node/commit/968bdd0135)] - **src**: use DictionaryTemplate for permission diag channel message (James M Snell) [#​65158](https://redirect.github.com/nodejs/node/pull/65158) - \[[`f77aa2f703`](https://redirect.github.com/nodejs/node/commit/f77aa2f703)] - **src**: cache permission strings (James M Snell) [#​65158](https://redirect.github.com/nodejs/node/pull/65158) - \[[`4018f3a776`](https://redirect.github.com/nodejs/node/commit/4018f3a776)] - **src**: shave about 20 bytes off each TLSWrap instance (James M Snell) [#​65144](https://redirect.github.com/nodejs/node/pull/65144) - \[[`b7a23426d9`](https://redirect.github.com/nodejs/node/commit/b7a23426d9)] - **src**: add SetAbortHandler (Max H Fisher) [#​64684](https://redirect.github.com/nodejs/node/pull/64684) - \[[`3cfe19489c`](https://redirect.github.com/nodejs/node/commit/3cfe19489c)] - **src**: use concepts where appropriate (James M Snell) [#​65148](https://redirect.github.com/nodejs/node/pull/65148) - \[[`d8a0f288ab`](https://redirect.github.com/nodejs/node/commit/d8a0f288ab)] - **src**: match cmd.exe case-insensitively in task runner (Archkon) [#​64907](https://redirect.github.com/nodejs/node/pull/64907) - \[[`262d88e6c2`](https://redirect.github.com/nodejs/node/commit/262d88e6c2)] - **src**: reuse cached env strings in remaining files (Seongeun Lee) [#​65039](https://redirect.github.com/nodejs/node/pull/65039) - \[[`ad35fe97f0`](https://redirect.github.com/nodejs/node/commit/ad35fe97f0)] - **src**: expose Windows-only fs open flags (Kirill Saied) [#​64775](https://redirect.github.com/nodejs/node/pull/64775) - \[[`8c4531bbc9`](https://redirect.github.com/nodejs/node/commit/8c4531bbc9)] - **src**: report why --enable-fips failed (Filip Skokan) [#​64979](https://redirect.github.com/nodejs/node/pull/64979) - \[[`a293dbf0e1`](https://redirect.github.com/nodejs/node/commit/a293dbf0e1)] - **src**: update repeated use strings to env (James M Snell) [#​64760](https://redirect.github.com/nodejs/node/pull/64760) - \[[`044402cf0e`](https://redirect.github.com/nodejs/node/commit/044402cf0e)] - **src**: use UTF-8 for task runner filesystem paths (Archkon) [#​64868](https://redirect.github.com/nodejs/node/pull/64868) - \[[`5b7d02e401`](https://redirect.github.com/nodejs/node/commit/5b7d02e401)] - **stream**: normalize fused stateless transform results (Trivikram Kamat) [#​65367](https://redirect.github.com/nodejs/node/pull/65367) - \[[`1d6ec2ddc5`](https://redirect.github.com/nodejs/node/commit/1d6ec2ddc5)] - **stream**: encode whole chunks in TextEncoderStream (Matteo Collina) [#​65414](https://redirect.github.com/nodejs/node/pull/65414) - \[[`0afda47ca4`](https://redirect.github.com/nodejs/node/commit/0afda47ca4)] - **stream**: prevent share from eagerly draining source (Trivikram Kamat) [#​65338](https://redirect.github.com/nodejs/node/pull/65338) - \[[`dc51c7926e`](https://redirect.github.com/nodejs/node/commit/dc51c7926e)] - **stream**: drain pending writes before broadcast end (Trivikram Kamat) [#​65334](https://redirect.github.com/nodejs/node/pull/65334) - \[[`a77f9f7a32`](https://redirect.github.com/nodejs/node/commit/a77f9f7a32)] - **stream**: reuse unexposed managed read buffers (GetThatCookie) [#​64990](https://redirect.github.com/nodejs/node/pull/64990) - \[[`c42fbcc0d1`](https://redirect.github.com/nodejs/node/commit/c42fbcc0d1)] - **stream**: avoid duplicated endReadableNT scheduling (Matteo Collina) [#​65310](https://redirect.github.com/nodejs/node/pull/65310) - \[[`9ec9383d1d`](https://redirect.github.com/nodejs/node/commit/9ec9383d1d)] - **stream**: decouple transform backpressure changes (Matteo Collina) [#​65143](https://redirect.github.com/nodejs/node/pull/65143) - \[[`a9dc50d275`](https://redirect.github.com/nodejs/node/commit/a9dc50d275)] - **stream**: reject pull on signal abort during flush (Trivikram Kamat) [#​65346](https://redirect.github.com/nodejs/node/pull/65346) - \[[`815424db74`](https://redirect.github.com/nodejs/node/commit/815424db74)] - **stream**: avoid leaking consumers on signal failure (Trivikram Kamat) [#​65299](https://redirect.github.com/nodejs/node/pull/65299) - \[[`6a2e0561e8`](https://redirect.github.com/nodejs/node/commit/6a2e0561e8)] - **stream**: use validateObject for zlib/iter params (greenhead) [#​65015](https://redirect.github.com/nodejs/node/pull/65015) - \[[`4f6f2cfffa`](https://redirect.github.com/nodejs/node/commit/4f6f2cfffa)] - **stream**: use validateNumber for BYOB reader options.min (greenhead) [#​65014](https://redirect.github.com/nodejs/node/pull/65014) - \[[`4d297428e6`](https://redirect.github.com/nodejs/node/commit/4d297428e6)] - **stream**: consolidate non-op algorithm callbacks (Matteo Collina) [#​65138](https://redirect.github.com/nodejs/node/pull/65138) - \[[`f7e0c81be4`](https://redirect.github.com/nodejs/node/commit/f7e0c81be4)] - **stream**: cut promise churn in webstreams hot paths (Matteo Collina) [#​65138](https://redirect.github.com/nodejs/node/pull/65138) - \[[`5edffb544f`](https://redirect.github.com/nodejs/node/commit/5edffb544f)] - **stream**: speed up async iteration of Readable (Matteo Collina) [#​64447](https://redirect.github.com/nodejs/node/pull/64447) - \[[`0876a29bb6`](https://redirect.github.com/nodejs/node/commit/0876a29bb6)] - **stream**: preserve falsy cancellation reasons (Trivikram Kamat) [#​64705](https://redirect.github.com/nodejs/node/pull/64705) - \[[`374f7e214d`](https://redirect.github.com/nodejs/node/commit/374f7e214d)] - **stream**: use validateBuffer for BYOB reader view (greenhead) [#​65046](https://redirect.github.com/nodejs/node/pull/65046) - \[[`6bd15b2ac9`](https://redirect.github.com/nodejs/node/commit/6bd15b2ac9)] - **stream**: fix recursive WritableStream abort (Jeong SeokChan) [#​64825](https://redirect.github.com/nodejs/node/pull/64825) - \[[`f33dba704d`](https://redirect.github.com/nodejs/node/commit/f33dba704d)] - **string\_decoder**: decode UTF-8 via StringBytes::Encode (Shelley Vohr) [#​65324](https://redirect.github.com/nodejs/node/pull/65324) - \[[`6409983a6c`](https://redirect.github.com/nodejs/node/commit/6409983a6c)] - **test**: update WPT for WebCryptoAPI to [`e235e08`](https://redirect.github.com/nodejs/node/commit/e235e089b4) (Node.js GitHub Bot) [#​65478](https://redirect.github.com/nodejs/node/pull/65478) - \[[`01cb4f99a0`](https://redirect.github.com/nodejs/node/commit/01cb4f99a0)] - **test**: convert forEach to for of test-messageevent-brandcheck file (Nachiketa Pathak) [#​65279](https://redirect.github.com/nodejs/node/pull/65279) - \[[`359369e24e`](https://redirect.github.com/nodejs/node/commit/359369e24e)] - **test**: use spawnSyncAndAssert in windowsHide test (Junsoo Ha) [#​65351](https://redirect.github.com/nodejs/node/pull/65351) - \[[`9304dee833`](https://redirect.github.com/nodejs/node/commit/9304dee833)] - **test**: remove test-debugger-run-after-quit-restart as flaky on macOS (Yuya Inoue) [#​65424](https://redirect.github.com/nodejs/node/pull/65424) - \[[`30f1a19eec`](https://redirect.github.com/nodejs/node/commit/30f1a19eec)] - **test**: simplify test-timers-interval-promisified.js (Donghoon Kang) [#​65322](https://redirect.github.com/nodejs/node/pull/65322) - \[[`acaf986ad5`](https://redirect.github.com/nodejs/node/commit/acaf986ad5)] - **test**: add Headers coverage and benchmark (Yagiz Nizipli) [#​65365](https://redirect.github.com/nodejs/node/pull/65365) - \[[`b6852e2b96`](https://redirect.github.com/nodejs/node/commit/b6852e2b96)] - **test**: deflake test-net-listen-ipv6only (sangwook) [#​64173](ht > ✂ **Note** > > PR body was truncated to here. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/jGleitz/markdown-it-prism). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC40OS4wIiwidXBkYXRlZEluVmVyIjoiNDQuNDkuMCIsInRhcmdldEJyYW5jaCI6InY1IiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm11/pnpm)) | [`11.24.0` → `11.25.0`](https://renovatebot.com/diffs/npm/pnpm/11.24.0/11.25.0) |  |  | --- ### Release Notes <details> <summary>pnpm/pnpm (pnpm)</summary> ### [`v11.25.0`](https://redirect.github.com/pnpm/pnpm/releases/tag/v11.25.0): pnpm 11.25 [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v11.24.0...v11.25.0) ##### Minor Changes - Added an opt-in proof of concept that lets installs reuse a dependency's build output across machines, by publishing and restoring signed, organization-scoped artifacts through pnpr instead of running the lifecycle scripts locally. Configure it with the new `remoteSideEffectsCache` setting. A workspace names the eligible `organization` and `packages`; everything describing the act of signing — `publish`, `keyId`, `builderId`, `trustedKeys`, `privateKey` and the provenance fields — is refused in `pnpm-workspace.yaml` and read from the global config file or the environment instead. - Added macOS and Windows x64 and arm64 support to remote shared build artifacts [pnpm/pnpm#13771](https://redirect.github.com/pnpm/pnpm/issues/13771). - Added the `audit.ignorePrune` setting. When set to `true`, `pnpm audit --fix` removes ignored GHSA entries that no longer appear in the audit report. - Generalized the experimental shared-artifact protocol so candidates and signed payloads identify a discriminated subject. Dependency side effects use package and source-integrity subjects, while workspace tasks use project and task subjects. This changes shared-artifact request bodies and signed payloads. A pnpr server and its clients have to be on matching versions. - `pnpm init` now pins the latest pnpm version, instead of the version of pnpm that ran the command. A project scaffolded by an outdated pnpm therefore no longer inherits that staleness through its own `devEngines.packageManager` / `packageManager` pin [#​7490](https://redirect.github.com/pnpm/pnpm/issues/7490). The version is read from the `latest` tag on the package-manager registries. When that lookup cannot answer — no network, an unreachable or slow registry, `offline`, or a `latest` that the `minimumReleaseAge` / `trustPolicy` settings reject — `pnpm init` pins the running version as before, and never fails or hangs on the lookup. A `latest` that is older than the running pnpm is never pinned either. - A `scope` set in a project's `pnpm-workspace.yaml` is now ignored, with a warning naming where to set it instead. `pnpm login` records the scope as a `@scope:registry` route in the machine-global `auth.ini`, which outranks `~/.npmrc` in every project — so a repository-committed file could redirect a scope such as `@acme` for all of a user's other projects after one routine login. Use `--scope`, the `PNPM_CONFIG_SCOPE` environment variable, or the global config file instead [#​13557](https://redirect.github.com/pnpm/pnpm/issues/13557). - Verified remote build artifacts are persisted in the shared store with their signed origin metadata. Later installs reverify the artifact against current trust, policy, platform, and source before reuse, while invalid remote variants are quarantined per channel ([pnpm/pnpm#13771](https://redirect.github.com/pnpm/pnpm/issues/13771)). - Persist completed recursive tasks so `--resume-from` skips exactly the work that passed during a matching interrupted or failed `pnpm -r run` / `pnpm -r exec` invocation. When no compatible state exists, pnpm retains its graph-based resume behavior. - Allowed `pnpm update --patches` to refresh registry revisions through a configured pnpr server while retaining locked package versions. - Added explicit registry revision selection with `<version>+rN` and `pnpm update --patches` for refreshing revision artifacts without changing package versions. Registry-backed lockfile policy checks recognize historical revisions, and pnpr now preserves safe revision histories from upstream registries. - Workspace install, rebuild, pack, publish, stage, and lifecycle work now starts as soon as its dependencies finish instead of waiting for an unrelated topological group. - `pnpm stage approve` now approves several staged packages at once. Run it without a stage id to pick from the staged versions interactively, or pass a list of stage ids. The whole batch is approved with a single one-time password, and pnpm asks for a new one only once the registry stops accepting it. Inside a workspace, the selected packages are approved in dependency order, and a package whose workspace dependency could not be approved is skipped instead of being published against a dependency that never reached the registry. - Added per-task concurrency limits to workspace task orchestration. Set `tasks.<name>.concurrency` in `pnpm-workspace.yaml` to limit how many instances of that task may run across workspace projects at once: ```yaml tasks: build: concurrency: 2 ``` - Added support for registry replacement tarballs using standard integrity values, explicit revision fields, registry routing from the `registries` setting, non-redirecting integrity-addressed URLs, canonical safe-integer revision numbers, and pnpr proxying for immutable upstream revision artifacts. - `sideEffectsCache` now declares the whole of how a package's build output is reused — whether one is restored, whether one is saved, and the remote tier that shares it between machines: ```yaml sideEffectsCache: read: true write: true remote: org: acme packages: ['native-addon'] ``` `sideEffectsCache: true`, `sideEffectsCacheReadonly`, `remoteSideEffectsCache`, and its `organization` field all keep working. Where a field is set under both spellings the one above wins; where it is set under only one, it is kept. Two behaviors change, both bringing this CLI in line with what the Rust one already did: `sideEffectsCacheReadonly: true` now blocks writing to the cache, and setting it alongside `sideEffectsCache: false` gives a read-only view rather than switching the cache off entirely. A cache can also be declared write-only now, to populate one the run does not read. - Workspace task orchestration ([pnpm/rfcs#23](https://redirect.github.com/pnpm/rfcs/pull/23)). `pnpm -r run` and `pnpm -r exec` now schedule per task instead of in topological chunks: a task starts as soon as the tasks it depends on have finished, so a project no longer waits for unrelated projects that happen to share its chunk. A new `tasks` section in `pnpm-workspace.yaml` declares what a task depends on, using the `^` convention: ```yaml tasks: build: dependsOn: ['^build'] test: dependsOn: ['build'] lint: {} ``` `^name` means the named task in each of the project's workspace dependencies; a bare `name` means the task in the same project; an entry with no `dependsOn` declares an empty dependency list. A task with no entry behaves as `dependsOn: ['^<its own name>']`, which is exactly what the previous chunked ordering implied — an unconfigured workspace gets the scheduler improvement and nothing else changes meaning. A project without the script is reported skipped and passes its edges through to its own dependencies, so a scriptless package does not sever a chain. Also part of this change: - A dependency cycle among the tasks of a run is now an error naming the participating tasks (`ERR_PNPM_TASK_CYCLE`) instead of silently running in an arbitrary order. Setting `ignoreWorkspaceCycles: true` downgrades the error to a warning: the cycle's tasks run in an arbitrary order relative to each other. - `--resume-from` now skips exactly the transitive dependencies of the anchor package; work unrelated to the anchor still runs. - Under `--no-bail`, tasks whose dependencies failed are reported as skipped, not failed, and do not add to the exit code. - With `--bail` (the default), the first failure still ends the run at once and nothing new is dispatched — including scripts already queued behind the concurrency limit. - `pnpm -r run --dry-run <script>` prints the task graph that would execute without running anything (including skipping the `verifyDepsBeforeRun` check); `--json` emits the tasks and their resolved dependency edges. - Output is inherited rather than piped only when at most one script can ever be in flight (`--workspace-concurrency=1`, or the graph forces the scripts to run one after another). ##### Patch Changes - An `_auth` entry in the global config file no longer decides which registry packages come from when something else says. A `registry` or `registries` declared in `pnpm-workspace.yaml` or the global config now wins over the route inferred from a stored credential, which still applies where nothing else declares one. The `pnpm_config__auth` environment variable is unchanged: it stays the way to point a CI runner at a mandated proxy, and still overrides what a repository declares. - Prevent installs through a symlinked `node_modules` directory from rewriting the target checkout [pnpm/pnpm#14286](https://redirect.github.com/pnpm/pnpm/issues/14286). - Treat empty scripts selected by a regular expression as missing before running dependent tasks. - The options type of the `fetch` command now declares `allowBuilds`, a setting its handler already forwarded to the installer. Type-level only — what `pnpm fetch` does is unchanged. - Filter hidden scripts matched by a regular expression during recursive runs when a visible script also matches. - Fixed automatically switched pnpm versions forcing all descendant pnpm processes to use the same version [pnpm/pnpm#14309](https://redirect.github.com/pnpm/pnpm/issues/14309). - Fixed `ERR_PNPM_UNUSED_PATCH` validation during incremental installs [pnpm/pnpm#13692](https://redirect.github.com/pnpm/pnpm/issues/13692). - Fixed `pnpm deploy --prod` failing when an excluded dev dependency was also declared as an optional peer dependency [pnpm/pnpm#14302](https://redirect.github.com/pnpm/pnpm/issues/14302). - `pnpm update -g` no longer downgrades a global package. `--latest` resolves the `latest` dist-tag, which can point at an older release than the one installed — after `pnpm add -g <pkg>@next`, for instance [#​14270](https://redirect.github.com/pnpm/pnpm/issues/14270). `pnpm update -g` also no longer changes the pnpm version. pnpm's own global install belongs to `pnpm self-update` [#​14270](https://redirect.github.com/pnpm/pnpm/issues/14270). - Copying a built package to its other hoisted locations no longer replaces the destination directory. With `nodeLinker: hoisted`, that replacement deleted the dependencies nested inside the destination's `node_modules`, and made concurrent copies of the same build chunk fail with `ERR_PNPM_ENOENT: no such file or directory, rename '.../node_modules/_tmp_...'` [#​12880](https://redirect.github.com/pnpm/pnpm/issues/12880). - `pnpm update` no longer replaces the specifier a project declares for a dependency that is also listed in `overrides`. A `catalog:` reference stays a `catalog:` reference, and a declared range stays as written, instead of being rewritten to the version the override resolved to [#​12115](https://redirect.github.com/pnpm/pnpm/issues/12115). - `pnpm update` no longer moves the range a project declares for a dependency that `overrides` also lists, even when the override repeats that range verbatim. Previously the updated `package.json` disagreed with the lockfile, so the next `pnpm install --frozen-lockfile` failed with a specifier mismatch [#​14224](https://redirect.github.com/pnpm/pnpm/issues/14224). - Make `pnpm add --lockfile-only` skip dependency linking [pnpm/pnpm#14286](https://redirect.github.com/pnpm/pnpm/issues/14286). - `--production` is accepted again as an alias of `--prod` on `install`, `fetch`, `prune`, `update`, `list`, `why`, and `sbom`, and the install that `verifyDepsBeforeRun` reproduces is now spelled with `--prod`. `pnpm run` no longer aborts with "unexpected argument '--production' found" after a production-only install [#​14147](https://redirect.github.com/pnpm/pnpm/issues/14147). - The progress output no longer overwrites the lines above it once it grows taller than the terminal window [#​14270](https://redirect.github.com/pnpm/pnpm/issues/14270). - Restoring a dependency's build from the remote side-effects cache no longer downloads files the store already holds. - Forward `patchedDependencies` hashes and `packageExtensions` to pnpr so server-side resolution preserves patches and package extensions in the lockfile and installed packages. - Published the workspace task graph and scheduler as `@pnpm/workspace.task-scheduler` so other workspace commands can use the same dependency-aware scheduling as recursive run and exec. - The environment variables for the remote side-effects cache are named for the setting they configure: `PNPM_SIDE_EFFECTS_CACHE_REMOTE_KEY_ID`, `..._BUILDER_ID`, `..._IMAGE_DIGEST`, `..._ARCHITECTURE_BASELINE`, `..._PRIVATE_KEY`, `..._BUILD_ENV`, `..._TRUSTED_KEYS` and `..._PUBLISH`. The `PNPM_REMOTE_SIDE_EFFECTS_CACHE_*` names keep working, and the new one wins when both are set. - A `devEngines.packageManager` range pin on pnpm is now recorded in `pnpm-lock.yaml`'s `packageManagerDependencies` when the running pnpm already satisfies it, using the running version and keeping the range as the recorded specifier. Previously only an exact pin — or a range resolved on the way through a version switch — reached the lockfile, so a range pin written by hand (or by any tool other than `pnpm add` / `pnpm self-update`) left the project without the shared resolution the pin exists to provide. - Fixed recursive `run` cleanup on Windows when a lifecycle script fails while another script's process tree is still running. - The update notification now suggests `pnpm self-update` when `PNPM_HOME` manages the pnpm in use, and the [standalone install script](https://pnpm.io/installation) otherwise — under Corepack, or when another package manager installed pnpm. `pnpm self-update` under Corepack names the standalone install script too. - Enforce `allowBuilds` when a prepared git dependency is reused from the shared store, and use the lockfile's canonical git resolution ID in approval suggestions. - Topologically sorting workspace projects now runs in linear time, fixing installs and lockfile updates that stalled for seconds on workspaces with thousands of projects forming deep dependency chains [#​14149](https://redirect.github.com/pnpm/pnpm/issues/14149), [#​14151](https://redirect.github.com/pnpm/pnpm/issues/14151). <!-- sponsors --> ##### Platinum Sponsors <table> <tbody> <tr> <td align="center" valign="middle"> <a href="https://bit.cloud/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a> </td> <td align="center" valign="middle"> <a href="https://openai.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/openai_dark.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/openai_light.svg" /> <img src="https://pnpm.io/img/users/openai_dark.svg" width="160" alt="OpenAI" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://notion.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/notion.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/notion_light.svg" /> <img src="https://pnpm.io/img/users/notion.svg" width="80" alt="Notion" /> </picture> </a> </td> </tr> </tbody> </table> ##### Gold Sponsors <table> <tbody> <tr> <td align="center" valign="middle"> <a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/sanity.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/sanity_light.svg" /> <img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" /> <img src="https://pnpm.io/img/users/discord.svg" width="220" alt="Discord" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/serpapi_dark.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/serpapi_light.svg" /> <img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160" alt="SerpApi" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" /> <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" alt="CodeRabbit" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/stackblitz.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/stackblitz_light.svg" /> <img src="https://pnpm.io/img/users/stackblitz.svg" width="190" alt="Stackblitz" /> </picture> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/workleap.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/workleap_light.svg" /> <img src="https://pnpm.io/img/users/workleap.svg" width="190" alt="Workleap" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" /> <img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://latitude.so/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/latitude.svg" width="160" alt="Latitude"></a> </td> </tr> </tbody> </table> <!-- sponsors end --> </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/jGleitz/markdown-it-prism). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC40OS4wIiwidXBkYXRlZEluVmVyIjoiNDQuNDkuMCIsInRhcmdldEJyYW5jaCI6InY1IiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Review only — do not merge
This draft PR exists solely to make the completed v5 release candidate easy to review, including on mobile.
Opening this PR does not authorize any release action. Do not merge it, update either branch, change rulesets, pin
v4.x, publish a release, retarget Renovate, or perform any other step from the release runbook without separate explicit approval.Release candidate
v5candidate verified at36d331c16ec64655aa7038456ee3a2531d7e5ceamainSHA:2cd4b414639b5b3902918199928f955b8ff459e9plugins:remains Node-only in browser/bundler targets and is tracked in Support the plugins option in browser bundlers (Webpack/Vite) #1147Final verification
Pending release runbook
Todo 18 in
.omo/plans/v5-major-release.mdremains fully in force and unexecuted. It requires a main freeze and drift check, pinning/configuringv4.x, updating the main ruleset, a fresh pre-merge check, an explicitly approved squash merge, release verification, and only then the post-release Renovate update.If this PR is eventually approved for release, its squash commit subject must remain exactly
feat!: release v5and include aBREAKING CHANGE:footer.BREAKING CHANGE: v5 requires markdown-it 15 and Node.js 22.3 or later, replaces the Babel build with native dual ESM/CommonJS outputs, and changes browser-bundler plugin loading as documented.