Weekly GitHub Report for Node: July 13, 2026 - July 20, 2026 (21:05:52)
Weekly GitHub Report for Node
Thank you for subscribing to our weekly newsletter! Each week, we deliver a comprehensive summary of your GitHub project's latest activity right to your inbox, including an overview of your project's issues, pull requests, contributors, and commit activity.
Table of Contents
I. News
1.1 Recent Version Releases:
The current version of this repository is v23.10.0
1.2 Version Information:
Released on March 13, 2025, this version introduces the --experimental-config-file feature, allowing developers to use JSON configuration files like node.config.json to simplify running tests and managing numerous flags, enhancing developer experience. Additionally, it includes updates to root certificates, new TLS and V8 methods, improved error handling, and various tooling and documentation enhancements.
II. Issues
2.1 Top 5 Active Issues:
We consider active issues to be issues that that have been commented on most frequently within the last week. Bot comments are omitted.
-
QUIC Team Meeting: This issue is about organizing regular meetings for the QUIC team to discuss details of the QUIC/HTTP3 API surface and to finalize the implementation. The issue creator has set up a custom scheduling poll to find suitable times for these biweekly meetings and is encouraging team members to provide their availability.
- The comments include suggestions for alternative scheduling tools, confirmation of a bug in the time zone display which was quickly fixed, expressions of interest in the meetings, and offers to help set up recurring meetings, with reminders to fill out the poll to coordinate times.
- Number of comments this week: 9
-
[BUFFER] buffer: isUtf8 and isAscii accept detached TypedArray views: This issue reports that the
isUtf8andisAsciifunctions in the buffer subsystem accept detached TypedArray views without throwing an error, which is inconsistent with the documented behavior that they should throwERR_INVALID_STATEwhen given a detached ArrayBuffer. The user demonstrates that these functions returntrueinstead of throwing, highlighting a discrepancy between the implementation and the documentation, and suggests that the behavior should be consistent across the API.- The comments discuss whether this behavior is truly a bug or a documentation error, noting that detached ArrayBuffers appear as zero-length and that other Buffer API methods treat detached buffers similarly; there is some consensus that the implementation is inconsistent, with suggestions to either update the documentation or accept the current behavior as treating detached buffers as zero-length.
- Number of comments this week: 7
-
[MODULE] [STRIP-TYPES] Expose the full Amaro loader API via 'node:module': This issue proposes exposing the full Amaro loader API through the built-in
node:moduleinterface to enable comprehensive TypeScript syntax support, including features like enums and namespaces, without requiring external dependencies or flags. It addresses the gap left by the removal of the--experimental-transform-typesflag and allows explicit opt-in for transforming TypeScript files insidenode_modules, providing a programmatic, runtime-configurable API for TypeScript transformation.- The comments discuss concerns about the implications of exposing more of Amaro's API publicly, including potential difficulties in updating Amaro independently of Node.js, the risks of global mutable state affecting application behavior unpredictably, and whether runtime configuration is a necessary trade-off compared to immutable CLI flags.
- Number of comments this week: 6
-
Auto closing old stale PRs: This issue discusses the proposal to automatically close old pull requests (PRs) that have been inactive for over a year, with no comments or updates in the last six months, to reduce the backlog and improve project maintenance efficiency. It highlights concerns about the current stale automation workflows being affected by "phantom" updates caused by repository activities like force-pushes, which reset inactivity timers and prevent stale PRs from being closed as intended.
- The comments reflect a range of opinions on the use of bots for auto-closing PRs, with some preferring human involvement to avoid perceived hostility, while others support automation to reduce manual overhead; the discussion also covers technical challenges with the stale bot’s reliance on the
updated_atfield, leading to false resets of inactivity timers, and concludes with a preference for fixing the root cause upstream in the stale action and possibly adjusting timing thresholds to better handle stale PRs. - Number of comments this week: 5
- The comments reflect a range of opinions on the use of bots for auto-closing PRs, with some preferring human involvement to avoid perceived hostility, while others support automation to reduce manual overhead; the discussion also covers technical challenges with the stale bot’s reliance on the
-
[FS] [FEATURE REQUEST] [STALE] [TEST_RUNNER] test_runner: support mock file system: This issue proposes adding support for a mock file system within the test runner to avoid unsafe real disk writes during testing, which can leave residual files if tests fail. The feature would expose APIs under a mock namespace to enable a virtual file system with options to override specific files or the entire file system, allowing tests to read from this mock environment instead of the real disk.
- The comments discuss the feasibility and appropriate location for this feature, debating whether it belongs in the test runner or the core
fsmodule, suggest marking it experimental and behind a flag, and consider leveraging existing virtual file system implementations as a foundation for the mock system. - Number of comments this week: 4
- The comments discuss the feasibility and appropriate location for this feature, debating whether it belongs in the test runner or the core
2.2 Top 5 Stale Issues:
We consider stale issues to be issues that has had no activity within the last 30 days. The team should work together to get these issues resolved and closed as soon as possible.
As of our latest update, there are no stale issues for the project this week.
2.3 Open Issues
This section lists, groups, and then summarizes issues that were created within the last week in the repository.
Issues Opened This Week: 30
Summarized Issues:
- Memory management and leaks: Several issues describe memory-related problems including a memory leak in
AbortSignal.any()where composite signals accumulate indefinitely causing unbounded memory growth, and unsafe buffer reuse in writable streams leading to data corruption. These issues highlight challenges in proper resource cleanup and buffer lifecycle management in Node.js internals. - [issues/64476, issues/64549]
- Stream and socket errors: Multiple bugs involve stream and socket handling, such as a TypeError in Socket unref due to strict null checks, an uncaught
ERR_INVALID_STATEwhen canceling webReadableStreams, and an exception thrown byresponse.setEncoding()when network inspection is enabled. These problems disrupt normal stream processing and can cause crashes or uncatchable errors. - [issues/64490, issues/64494, issues/64529]
- Native module and FFI bugs: The ffi subsystem has several bugs including incorrect return type changes after Fast API optimization, string buffer corruption during reentrant callbacks, and silent truncation or wrapping of out-of-range integer arguments. These issues cause incorrect native code behavior and data corruption in native bindings.
- [issues/64526, issues/64550, issues/64613]
- File system and virtual file system inconsistencies: Problems include
watchFilefailing to trigger callbacks on virtual file systems,lchownincorrectly following symlinks instead of updating link metadata, and negative times passed tofs.utimesSyncbeing mishandled. These bugs cause unexpected or missing file system event notifications and incorrect file metadata updates. - [issues/64536, issues/64572, issues/64597]
- Zlib and compression validation issues: Several zlib-related bugs involve silent acceptance of truncated input in Zstd decompression, ignoring dictionary options during compression, improper validation of pledgedSrcSize parameters, and failure to reset auto-detection state in unzip streams. These lead to silent data corruption, unexpected behavior, or errors during compression and decompression operations.
- [issues/64592, issues/64598, issues/64600, issues/64603, issues/64619]
- Module loading and test runner regressions: There is a regression where passing a directory to the
--testoption causesMODULE_NOT_FOUNDerrors due to lack of recursive search, and HTTP/network errors during module imports are cached preventing retries. These issues break expected workflows for testing and module loading. - [issues/64517, issues/64555]
- Crash and segmentation faults: Crashes include an intermittent SIGSEGV during concurrent WebAssembly PostgreSQL engine initialization and an "Illegal instruction" crash on a specific board caused by V8 vector instruction changes. These crashes affect stability under certain runtime or hardware conditions.
- [issues/64500, issues/64538]
- API enhancements and proposals: Proposals include exposing the full Amaro loader API for runtime-configurable TypeScript support and adding methods to SQLite's StatementSync class to expose prepared statement statistics. These aim to improve developer experience and API completeness.
- [issues/64518, issues/64540]
- Build and workflow failures: A failure in the
Test Shared librariesworkflow caused by missing Cachix tokens leads to incorrect artifact downloads and tar extraction errors, blocking successful builds in some CI matrix jobs. - [issues/64554]
- Promise and error handling regressions: A regression causes uncaught exceptions and process crashes when errors thrown by TransformStream during pipeTo are caught by user code, due to internal promise rejection handler changes.
- [issues/64561]
- Path module platform cache bug: The path module's
matchesGlob()cache does not distinguish between path platforms, causing incorrect results when switching betweenwin32andposixpatterns. - [issues/64570]
- Community and collaboration: A nomination issue documents the contributions of a GitHub user for Node.js collaborator status, and another discusses organizing biweekly meetings for the QUIC team to finalize API and implementation details.
- [issues/64502, issues/64581]
- Test flakiness due to V8 bugs: Flakiness in the
test-repl-user-error-handlertest is tracked due to a V8 bug related toreplMode: true, impacting test reliability. - [issues/64595]
- Libffi optimization potential: Discussion on leveraging libffi 3.7's reusable call plans to improve efficiency by precomputing call setup overhead for fixed signatures in wrapped functions.
- [issues/64562]
2.4 Closed Issues
This section lists, groups, and then summarizes issues that were closed within the last week in the repository. This section also links the associated pull requests if applicable.
Issues Closed This Week: 46
Summarized Issues:
- Node.js REPL Variable and Execution Issues: Multiple issues describe problems in the Node.js REPL environment, including lexical variable declarations becoming unusable after errors, asynchronous input lines overlapping causing undefined variables, premature advancement of generator functions skipping values, and REPL lockups due to unhandled module import errors. These problems affect the usability and stability of the REPL, complicating debugging and interactive development workflows.
- issues/8309, issues/39387, issues/61390, issues/64523
- REPL Enhancements and Warnings: There are requests and reports related to improving the REPL, such as enabling ES6
importsupport when"type":"module"is set, adding source map support for better stack traces, and addressing internal deprecation warnings triggered by legacy domain properties. These enhancements aim to modernize the REPL and reduce confusing warnings for users. - issues/33369, issues/39689, issues/37445
- HTTP/2 and Networking Protocol Bugs: Issues include incorrect ALPN protocol negotiation in HTTP/2 servers leading to fallback problems and potential information disclosure, a use-after-free error in HTTP/2 session handling causing crashes, and intermittent ECONNRESET errors during large HTTP POST uploads possibly related to timeouts. These bugs impact the reliability and security of HTTP/2 and network communications in Node.js.
- issues/26835, issues/64113, issues/58757
- Stream and Async Iteration Issues: Several problems affect streams and async iterators, including memory overflow in
Readable.toWebdue to queuing strategy, failure to close streams when aborting with signals, bugs in thestream/itermodule wherethrow()resolves incorrectly, and inconsistent validation ofoptions.signalparameters. These issues cause resource leaks, incorrect error handling, and unexpected behavior in stream processing. - issues/47128, issues/47133, issues/64378, issues/64384
- Node.js REPL Async and Microtask Crashes: Crashes occur in the REPL when exceptions are thrown inside
queueMicrotaskcallbacks and when microtasks never resolve inside VM contexts with timeouts, leading to async hook stack corruption and process crashes. These bugs undermine the stability of asynchronous code execution in interactive sessions. - issues/38145, issues/38503
- HTTP Server Response and Socket Property Issues: Problems include the
http.ServerResponse.writableproperty remaining true after response end causing write errors, and missing documentation/type definitions for theserverproperty on thesocketobject of ServerResponse instances, which complicates WebSocket integration. These issues affect server response handling and developer understanding of socket internals. - issues/47249, issues/47148
- Keep Alive and TLS Socket Bugs: The https.Agent's Keep Alive option malfunctions due to a mismatch in keep-alive delay units between milliseconds and seconds in the TLS socket, preventing expected TCP keep-alive packets from being sent. This bug impacts connection persistence and network reliability.
- issues/47137
- Timeout and Interval Resource Leak Concerns: Timeout and interval objects retain references to their resource stores even after being cleared, potentially causing memory leaks. The issue suggests explicitly clearing these references in
clearTimeout()andclearInterval()and possibly exposing APIs for better resource management. - issues/53408
- Windows Named Pipe Lockup: Node.js sometimes locks up indefinitely on Windows when reading exactly 65,536 bytes from a named pipe due to overlapped I/O call issues. Although a fix exists in libuv, it has not yet been released in a stable Node.js version, causing hangs in production environments.
- issues/58135
- False-Positive Deprecation Warning on Windows: A false-positive DEP0155 warning is triggered on Windows when importing packages using
"./*"in their exports field with Node.js v22+, despite the pattern being valid. This causes confusion and build issues for users. - issues/58650
- Stream Piping Regression: A regression in Node.js v20.10 causes piping a source stream to multiple destinations to stop entirely if one destination emits an error, unlike previous behavior where other destinations continued receiving data. This breaks existing stream handling patterns.
- issues/53185
- Documentation and Type Definition Gaps: There are missing or unclear documentation and type definitions, such as for the
serverproperty on sockets and cryptographic key format requirements incrypto.signandcrypto.verify. These gaps lead to user confusion and misuse of APIs. - issues/47148, issues/35331
- Benchmark and Performance Test Failures: Flaky failures in crypto benchmarks and contributions to JetStream benchmark suite highlight ongoing challenges in test reliability and JavaScript performance improvements in V8.
- issues/52690, issues/60799
- Node.js Core and Runtime Crashes: Various fatal errors and crashes occur, including segmentation faults on AWS ECS Fargate, fatal internal errors linked to thread workers or process spawning, and shutdown hangs on NetBSD in Chromium builds. These issues cause instability in production and development environments.
- issues/60882, issues/60755, issues/64560
- Module Resolution and Import Bugs: Node.js v25.2.0 incorrectly resolves relative paths involving directory symlinks causing module resolution failures, and dynamic imports of CommonJS TypeScript files result in missing
require.cacheentries. These bugs affect module loading and caching behavior. - issues/60715, issues/61385
- Unhandled Promise Rejection Handling: Using
Promise.rejectcombined withsetTimeoutcauses unhandled promise rejection errors even when the rejection is awaited inside a try/catch, leading to test failures despite proper asynchronous handling. - issues/62412
- Environment Variable Loading Bug: The
--env-fileoption is silently ignored when used with the--runflag, preventing environment variables from being loaded as expected during command execution. - issues/62988
- Virtual File System and Symlink Issues: The
lchmodfunction incorrectly follows symlinks and changes the target file's mode instead of the symlink's mode, and the experimental VirtualReadStream fails with EBADF errors when used with pipeline utilities, unlike real filesystem streams. - issues/64349, issues/64377
- WASM and Architecture-Specific Crashes: Crashes caused by WASM far-jump operations on x64 with CET enabled are fixed, addressing issues observed on OpenBSD with Node.js 24.x.
- issues/64424
- Deep Equality Comparison Bug:
assert.deepStrictEqualandutil.isDeepStrictEqualthrow a TypeError instead of returning false or throwing an AssertionError when comparing Maps containing null keys, due to missing null checks. - issues/64433
- Corepack Proxy Environment Variable Ignored: After upgrading to Node.js 24.18.0, the bundled Corepack no longer respects proxy environment variables, causing failures when fetching packages like pnpm.
- issues/64499
- Multiline REPL History Handling: Programmatically created REPL instances do not save multiline input history properly, combining lines into a single physical line with internal breaks, which breaks history navigation.
- issues/64508
- AWS Lambda Promise Queue Memory Corruption: Promises in a queue continue executing after AWS Lambda functions exhaust memory, potentially causing logical or memory corruption and security concerns due to zombie promises processing invalid data.
- issues/64519
- JSON Parsing and Stringify Bug: JSON.parse incorrectly decodes escaped quotes in property keys as backslashes under certain heap states, causing failures in deterministic round-tripping with JSON.stringify when using the
--predictableflag. - issues/64546
- FFI Signature Getter Double Evaluation: The ffi subsystem's
getFunction()method evaluates signature getters twice, causing mismatches between native function argument counts and JavaScript wrappers, leading to unsafe native calls. - issues/64558
- Node.js Version Availability in Package Managers: Node.js version 26.5 is missing from the winget package manager despite version 26.4 being available, causing user inquiries about the delay.
- issues/64564
- Empty or Undocumented Issues: Some issues lack details or discussion, such as one related to "nodes" in the Node.js project and another about documentation links related to a specific user, providing no actionable information.
- issues/64576, issues/64514
2.5 Issue Discussion Insights
This section will analyze the tone and sentiment of discussions within this project's open and closed issues that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.
Based on our analysis, there are no instances of toxic discussions in the project's open or closed issues from the past week.
III. Pull Requests
3.1 Open Pull Requests
This section provides a summary of pull requests that were opened in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.
Pull Requests Opened This Week: 82
Key Open Pull Requests
1. V22.23.2 proposal: This pull request is a proposal for Node.js version 22.23.2 "Jod" (LTS), scheduled for release on 2026-07-22, which includes notable updates such as an update to the root certificates to NSS 3.123.1 and various fixes and improvements across multiple subsystems including crypto, benchmark, buffer, build, child_process, http, stream, and others, as detailed in the comprehensive changelog.
- URL: pull/64567
- Associated Commits: f1635, abf0a, 7eec8, 5d0a1, 7d679, afb72, 03f41, 26312, 8be50, 6501e, 4106f, 90548, 8ec00, 861fb, b4201, 4da5c, 02061, 956d8, 5c4d6, 775ae, 831b9, aab80, cd636, 0e103, 80d65, 2308c, eb88e, b933e, a8933, eb3d1, 6e532, 98c53, 52a36, 78c76, cfeaa, ed7c6, 46f24, cd694, 289e7, 15a79, e7bf3, 7a294, 020d2, 38984, 49cc3, 2d4e3, 979e0, c4e51, d2754, b60f3, 7748f, ced02, d11fb, f417a, 5ca31, cb75e, d9962, 2377e, 86f5f, c5870, 3e8ad, 6018b, 6eeef, f5e11, 9e6df, fbfbc, 7ea1b, 5dca7, fb078, df6e2, 9b190, 7fc38, f0982, 5e84a, 90161, 48322, 0a704, 9cc46, 885f2, 19a1e, a3097, d30f9, 7f78d, b27b8, ab955, fb0e8, 29d5a, 33b0b, b9945, 94e87, 5e40c, 5ff84, fff43, 207d6, f2a14, 8198b, c1432, dae96, 90f90, 35784, bfb7f, 12a37, 2238a, 04e1e, f3708, 558d2, dcbb7, 2e5ea, 3bc2b, 737db, faa6d, a77a3, c4c94, 1878e, 53fe5, b86fb, e9e73, 0e83b, 0a8aa, 521f5, de8e6, ddc8f, 0454a, 16db5, b9d77, aafbd, 56903, 6963d, fdac5, 9e1a0, 8ece7, b4fce, 67e64, e32b0, 434fe, e2278, 782b7, d3a7b, e7f59, 8931c, 94080, d7d6f, e1df7, 2ffb9, 96800, 5a9b8, 75b0b, a0b97, da3ac, 99ff8, 1a2ed, 9a26d, ff7b0, 46258, eaa81, 70668, 7ea06, 4226f, 78bf3, c3372, a1495, ffe86, cac00, f83f1, b1043, 6e1e1, 457ad, 694c1, b1fda, 47921, 8a5d5, 07877, 830dd, cd829, 0bc4e, 65839, f84f4, b943a, 8450c, f0569, 1b042, 39826, 1efbb, 7bd09, 7073f, 5c582, 9fc3e, 51609, 18705, 89650, d2ae0, ac2f8, 93bd6, 530ec, 58241, 971bc, 64ff4, c12b3, 98057, daa64, f54cd, 158f5, 3dbf6, 7590f, 73dae, 377cb, 2ef79, e3b53, de3b1, 6c5d1, e30f8, c6780, 83ca1, 1060f, 4ed89, 0320e, faf83, a60aa, 20c6e, 29048, 20ca3, 2c91e, 5facf, f159a, 310f6, 02492, f0a40, b131f, 7f115, 2dfd7, e739f, 693c4, fd1be, a7c40, 5240c, 633b8, cb597, 4a6fb, f9573, 88fff, f1f7c, 61bae, 30c40, 7929e, a0ab4, 5c5da, 0b80e, 26607, a6b3a, 74391
2. child_process: add PTY support for spawn and spawnSync: This pull request adds PTY (pseudo-terminal) support to the child_process.spawn() and spawnSync() methods in Node.js by introducing the options.pty and stdio: 'pty' options, integrating libuv's PTY capabilities including ConPTY on Windows, enabling children processes to run with a real TTY that combines stdout with a null stderr, implements PTY resizing, enforces option constraints, and includes comprehensive documentation and parallel test coverage.
- URL: pull/64501
- Associated Commits: e36b7, fc6f6, 05f51, c8606, fc04e, aa2a9, b86cb, 458a6, 371ac, 4b03a, 468f9, 15878, 0dc26
3. [v24.x backport] more (web)crypto: This pull request backports multiple improvements and fixes related to the Web Crypto API in Node.js v24.x, including enhanced accuracy of SubtleCrypto support detection, stricter validation of raw key imports, refactoring of key conversion methods, shared helper functions for WebCrypto operations, support for non-byte-aligned lengths and cSHAKE customization, rejection of small-order EdDSA points during verification, and updates to WebCrypto API tests.
- URL: pull/64629
Other Open Pull Requests
- Perfetto tracing support: This pull request implements Perfetto tracing support in the Node.js source code, enabling trace generation with the
--with-perfettoconfigure flag that outputs protobuf-encoded trace files viewable on the Perfetto UI. It disables inspector trace support due to protocol limitations.
pull/64565
- Test runner diagnostics enhancement: This pull request enhances the test runner's dot reporter to display warning and error-level diagnostics, such as coverage collection failures, by threading diagnostic levels through the test framework. The reporter now shows these issues with appropriate coloring and symbols, providing visible output instead of just a non-zero exit code.
pull/64578
- OpenSSL backend legacy behavior restoration: This pull request restores legacy Diffie-Hellman validation behavior, improves handling of incomplete RSA private keys, and securely cleanses private key material from providers. It also preserves the legacy RSA-PSS public key DER encoding to maintain compatibility without relying on deprecated APIs.
pull/64547
- REPL syntax highlighting and enhancements: These pull requests add basic syntax highlighting to the Node.js REPL using
util.inspect.stylesfor consistent coloring and introduce a feature that modifies the REPL's Up and Down arrow keys to navigate through command history by whole multiline blocks when the--experimental-repl-enhancementsflag is enabled. Both improve the user experience in the REPL environment.
pull/64591, pull/64477
- Temporal_rs dependency update: This pull request updates the temporal_rs dependency to version 0.2.3, incorporating numerous bug fixes and spec compliance improvements. It backports relevant V8 changes including ICU4X updates, increases the Rust compiler requirement to version 1.86 or higher, and results in a minor increase in the final Node.js binary size due to additional locale data and tests.
pull/64543
- QUIC module preparation for nghttp2 changes: This pull request prepares Node.js for the upcoming nghttp2 version 2 callback and function for closing streams by implementing necessary changes in the QUIC module. It also includes additional lint fixes to ensure code quality.
pull/64574
- Zlib module improvements: These pull requests update the zlib module to accept an ArrayBuffer dictionary for Zstd compression and validate the pledged source size for synchronous zstd compression. These changes address issue #64598 and ensure that the consumed input size matches the originally pledged size, reporting errors if mismatched.
pull/64599, pull/64601
- Perf_hooks event loop delay monitoring enhancement: This pull request introduces a samplePerIteration option to the monitorEventLoopDelay function in the perf_hooks module, enabling event loop delay recording based on libuv event loop iterations rather than the default timer interval sampling. It maintains backward compatibility with existing interval-based monitoring.
pull/64480
- Socket and HTTP module fixes: These pull requests fix a TypeError in
Socket.prototype._unrefTimer()by replacing a strict null check with a nullish check, improve the Node.js inspector by capturing HTTP response body chunks before decoding, and fix an issue where errors occurring after response headers but before response completion were silently ignored. These ensure better error handling and network inspection fidelity.
pull/64491, pull/64496, pull/64507
- HTTP proxy and header size enforcement: This pull request enforces the configured maximum HTTP header size when reading HTTPS proxy CONNECT responses, optimizes listener usage to prevent unbounded buffer growth, and adds regression tests for fragmented and incomplete proxy response headers.
pull/64545
- FFI implementation improvements: This pull request modifies the caching of temporary string conversion buffers in the FFI implementation to be scoped by the FFI wrapper and active call depth. This prevents nested reentrant FFI calls from overwriting buffers still in use by outer native calls.
pull/64551
- Web Streams adapter improvements: This pull request improves the Node.js Web Streams adapters by preserving mutable BufferSource chunks correctly during writable stream writes and coordinating native write callbacks with backpressure and errors. It prevents premature promise resolution and potential data corruption while maintaining HTTP input validation and SharedArrayBuffer backing.
pull/64579
- Readline performance optimizations: This pull request improves the performance of
readline.createInterface()by optimizing property descriptor definitions, avoiding unnecessary mutations and hidden-class transitions, gating environment variable checks to terminal mode, and replacing a costly regex line-splitting loop with a more efficient string split approach. These changes result in significant speedups in interface construction and line throughput for CLI tools.
pull/64585
- fsPromises Blob support: This pull request adds support for the Blob data type to the
writeFileandappendFilefunctions in thefsPromisesandfilehandleAPIs by converting Blobs to web ReadableStreams and processing them through existing async-iterable mechanisms. It expands accepted data types beyond strings and Buffers and includes comprehensive tests for various Blob scenarios.
pull/64611
- Runtime deprecation warning for Timeout disposal: This pull request introduces a runtime deprecation warning (DEP0208) for the use of
Timeout.prototype[Symbol.dispose]to discourage incompatible code between Node.js and web platforms. It recommends usingclearTimeout()instead, leavesImmediate.prototype[Symbol.dispose]unchanged, and provides documentation with migration examples.
pull/64615
- HTTP/2 stream window size increase: This pull request increases the default HTTP/2 stream window size from 64KB to 4MB and the default local connection window to 32MB. These changes significantly improve throughput on high-latency connections by addressing performance limitations caused by smaller window sizes.
pull/64623
- AbortSignal memory leak fix: This pull request fixes a memory leak in
AbortSignal.any()by ensuring that transitively-aborted composite signals are properly removed from thegcPersistentSignalsset. This allows them to be garbage collected and prevents unbounded growth of dependant signal sets associated with long-lived sources.
pull/64481
- CI results display enhancement: This pull request introduces a build enhancement that displays continuous integration (CI) results directly on the pull request page by updating the
node-test-pull-requestto trigger GitHub repository dispatch events with the pull request and Jenkins run IDs. It addresses issues #32306 and #64333.
pull/64483
- Typo fixes in QUIC module: This pull request fixes a typo in TODO comments by correcting the misspelled word "covrerage" to "coverage" across multiple QUIC module files including diagnostics.js, quic.js, state.js, stats.js, and symbols.js.
pull/64486
- Delayed task scheduler use-after-close fix: This pull request addresses a use-after-close bug in the delayed task scheduler's async handle by introducing a
stopped_flag to prevent latePostDelayedTask()calls during shutdown. This avoids assertion failures and race conditions and includes a cctest to reproduce the shutdown race.
pull/64492
- Diagnostics_channel subscriber array fix: This pull request addresses the fixed native subscriber array issue in the diagnostics_channel module by allocating native slots only for channels used by native publishers and dynamically growing the subscriber buffer. This prevents process termination when creating more than 1,024 channels while maintaining subscriber tracking and snapshot behavior.
pull/64497
3.2 Closed Pull Requests
This section provides a summary of pull requests that were closed in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.
Pull Requests Closed This Week: 70
Key Closed Pull Requests
1. V22.24.0 proposal: This pull request is a proposal for the Node.js 22.24.0 "Jod" LTS release, detailing numerous semver-minor feature additions and improvements across core modules such as async_hooks, buffer, cli, console, crypto, debugger, fs, http, lib, net, node-api, perf_hooks, sqlite, src, permission, stream, and test_runner, including updates like adding a trackPromises option to async_hooks, increasing Buffer.poolSize, adding new CLI options, updating root certificates, enhancing debugger probes, and fixing security and performance issues.
- URL: pull/64533
- Associated Commits: b7946, b6141, 144f1, bc588, 9798f, ff239, 70ecf, e4c6a, bb6fa, 341aa, 82335, 4adf0, 88dff, d99d1, 96db0, d3c2e, f3ecb, d050e, c0c7e, dde05, 29abc, 071b9, 186ca, 65497, ced34, dc75c, 97af2, 0924a, 02e2b, 26645, cb19b, a37a7, 72002, eb776, e5800, 6e573, a61ef, e4753, f5689, 646f1, 2e854, 50155, e91c3, 286d7, bd354, 53ae6, e756f, 0587e, 9641f, ab55a, 8d550, c3804, 30219, 1fae8, 7a166, a9ffd, 34e14, 336e6, 4c805, c54a9, 98f3a, e8a6a, 43791, 7fe2c, 83b59, e77dd, aa448, 2a2bc, 4f862, a2639, 7aae6, a72dd, 6cea6, ec4c7, 62a7f, 73e11, d9537, 3933b, 99a81, 8edd0, adca0, 798ac, ee503, 057ea, e33b1, da56a, ea6fd, 56f75, 79574, 0dbb6, c96f1, 2ebef, 6ad17, ff010, 0556b, 810d0, bd180, 0de9f, 67bc9, fbda3, 229f3, e096f, ee617, 9529a, 5028d, ffcb6, 5766f, b3684, bc4d8, cd8dc, 4395f, 0bade, 09d67, f7a93, 5f230, acec5, e1f2f, 6aef8, 6c058, 122d8, 29c14, ed322, b0a8d, f9e4e, 98a46, e9b83, 7dc1a, d548e, 11d3b, 11c1d, 0ab4b, bdbec, 2581c, 7e1c5, bad20, 83797, 41f61, a1ed7, 3fac8, 06363, f1498, 01421, ea619, 33c00, 037ae, e2d5c, 382f5, 1114f, 3a416, b7d35, 13a28, 5db12, 966ed, 7c039, 2aba3, 8d8b5, e7f9d, 93918, 8d112, 0d211, 614d6, fac9b, 0c9ec, 3747f, bbb61, f50b0, bdc1d, 400c7, 25df4, 9709d, baf98, 13fe7, e8529, 9546e, 23370, 90d85, 7d41d, 7b2cc, 5ecef, 0e3a4, 1b4f4, 758b4, dfeb2, 3af96, a7601, f5ed1, 90cae, d9a31, 92d84, a673b, 5aaa7, 79a5e, 34a36, aede0, 91cc8, 5ca80, 67360, 60145, 5346c, 9313d, 85237, 15c41, 6e4f4, b06bd, ffa9b, e9b06, 70895, 841a2, 97e1e, 90b34, 1ba81, 707d5, 34855, 29540, 60b26, fa7d6, 14950, 3fc9d, 77834, d764a, b520e, b9b58, 96ed4, 9ff43, c2b0d, 6a175, 127a4, c9801, 9f484, c2822, 333b0, 3db33, fae81, 67a27, 1e8a8, 9a9b6, 845f5, 0e48f, 64e70, c0a73, 5e31a, d09e7, b5c9e, d4fc3, aacaf, 8d15b, 16d03, 0b66d, c0080, d48d6
- Associated Commits: b7946, b6141, 144f1, bc588, 9798f, ff239, 70ecf, e4c6a, bb6fa, 341aa, 82335, 4adf0, 88dff, d99d1, 96db0, d3c2e, f3ecb, d050e, c0c7e, dde05, 29abc, 071b9, 186ca, 65497, ced34, dc75c, 97af2, 0924a, 02e2b, 26645, cb19b, a37a7, 72002, eb776, e5800, 6e573, a61ef, e4753, f5689, 646f1, 2e854, 50155, e91c3, 286d7, bd354, 53ae6, e756f, 0587e, 9641f, ab55a, 8d550, c3804, 30219, 1fae8, 7a166, a9ffd, 34e14, 336e6, 4c805, c54a9, 98f3a, e8a6a, 43791, 7fe2c, 83b59, e77dd, aa448, 2a2bc, 4f862, a2639, 7aae6, a72dd, 6cea6, ec4c7, 62a7f, 73e11, d9537, 3933b, 99a81, 8edd0, adca0, 798ac, ee503, 057ea, e33b1, da56a, ea6fd, 56f75, 79574, 0dbb6, c96f1, 2ebef, 6ad17, ff010, 0556b, 810d0, bd180, 0de9f, 67bc9, fbda3, 229f3, e096f, ee617, 9529a, 5028d, ffcb6, 5766f, b3684, bc4d8, cd8dc, 4395f, 0bade, 09d67, f7a93, 5f230, acec5, e1f2f, 6aef8, 6c058, 122d8, 29c14, ed322, b0a8d, f9e4e, 98a46, e9b83, 7dc1a, d548e, 11d3b, 11c1d, 0ab4b, bdbec, 2581c, 7e1c5, bad20, 83797, 41f61, a1ed7, 3fac8, 06363, f1498, 01421, ea619, 33c00, 037ae, e2d5c, 382f5, 1114f, 3a416, b7d35, 13a28, 5db12, 966ed, 7c039, 2aba3, 8d8b5, e7f9d, 93918, 8d112, 0d211, 614d6, fac9b, 0c9ec, 3747f, bbb61, f50b0, bdc1d, 400c7, 25df4, 9709d, baf98, 13fe7, e8529, 9546e, 23370, 90d85, 7d41d, 7b2cc, 5ecef, 0e3a4, 1b4f4, 758b4, dfeb2, 3af96, a7601, f5ed1, 90cae, d9a31, 92d84, a673b, 5aaa7, 79a5e, 34a36, aede0, 91cc8, 5ca80, 67360, 60145, 5346c, 9313d, 85237, 15c41, 6e4f4, b06bd, ffa9b, e9b06, 70895, 841a2, 97e1e, 90b34, 1ba81, 707d5, 34855, 29540, 60b26, fa7d6, 14950, 3fc9d, 77834, d764a, b520e, b9b58, 96ed4, 9ff43, c2b0d, 6a175, 127a4, c9801, 9f484, c2822, 333b0, 3db33, fae81, 67a27, 1e8a8, 9a9b6, 845f5, 0e48f, 64e70, c0a73, 5e31a, d09e7, b5c9e, d4fc3, aacaf, 8d15b, 16d03, 0b66d, c0080, d48d6
2. Remove vendored ICU locale core and update dependencies: This pull request proposes removing the vendored ICU locale core Rust crate and its source files from the repository while updating related dependencies and package-lock.json to clean up the codebase and manage external dependencies more effectively.
- URL: pull/64568
- Associated Commits: 65a17, b7895, ba454, 74ad0, 05f22, 849ad, 8928c, c9247, 494c9, 6133b, 763f2, f67d4, 2abb0, 6abd7, c848f, 2f956, 02af2, 84425, a0ac0, 6e7a9, d1856, f63ce, 193c9, e0656, 267e4, 60584, 391ac, 4f59f, b38cd, ea088, 6eef7, 6ebca, f3218, 3f89d, aea8b, bbadd, 55bc8, 8b8a2, e24f5, a08a0, 506e6, d739e, c9566, 2673a, 342a4, 00c93, f5eca, d030c, 364cc, b5213, 31086, 85dec, 5ffd5, 9aad4, b1fd7, 3371e, b5e8f, 04edb, 26b58, 1fc67, 2032a, 33a6c, b2ea6, 30ff8, 6dc29, 1a36d, 38aa0, 52fdb, 4345f, 762a2, 61a5d, df4db, 878e1, 05d3c, aa2ef
- Associated Commits: 65a17, b7895, ba454, 74ad0, 05f22, 849ad, 8928c, c9247, 494c9, 6133b, 763f2, f67d4, 2abb0, 6abd7, c848f, 2f956, 02af2, 84425, a0ac0, 6e7a9, d1856, f63ce, 193c9, e0656, 267e4, 60584, 391ac, 4f59f, b38cd, ea088, 6eef7, 6ebca, f3218, 3f89d, aea8b, bbadd, 55bc8, 8b8a2, e24f5, a08a0, 506e6, d739e, c9566, 2673a, 342a4, 00c93, f5eca, d030c, 364cc, b5213, 31086, 85dec, 5ffd5, 9aad4, b1fd7, 3371e, b5e8f, 04edb, 26b58, 1fc67, 2032a, 33a6c, b2ea6, 30ff8, 6dc29, 1a36d, 38aa0, 52fdb, 4345f, 762a2, 61a5d, df4db, 878e1, 05d3c, aa2ef
3. lib,tools: rename functions named value: This pull request introduces a new node-core/func-name-matching ESLint rule to properly handle functions defined as property values, renames existing functions named value to comply with this rule, and includes corresponding tests and tooling updates to enforce consistent function naming across the codebase.
- URL: pull/57901
- Associated Commits: 1b7ce, a171b, c3143, 47c6a, 22f5e, 72802, 6eb47, 93c6d, 709e3, 95d7e, 245dd, 919bf, 8d08a, 7c44f, bbb11, 55163, ea7c4, 7699a, c0256
- Associated Commits: 1b7ce, a171b, c3143, 47c6a, 22f5e, 72802, 6eb47, 93c6d, 709e3, 95d7e, 245dd, 919bf, 8d08a, 7c44f, bbb11, 55163, ea7c4, 7699a, c0256
Other Closed Pull Requests
- REPL Improvements and Enhancements: Multiple pull requests focus on improving the Node.js REPL experience by introducing a built-in
help()function for interactive introspection, replacing the synchronousnode:vmevaluator with an asynchronous V8 Inspector-based implementation to support top-level await, and limiting REPL line processing to one line at a time to enhance reliability and clarity. These changes collectively improve usability, performance, and maintainability of the REPL environment.
- Streams Module Fixes and Optimizations: Several pull requests address stream-related issues including fixing the
readable.compose()method to correctly handle Duplex streams, optimizing writable stream backpressure by integrating desired size checks, fixing a regression where synchronous errors in one destination stream incorrectly stopped data flow to others, and proposing a concurrency fix for theflatMapmethod in streams. These updates improve stream correctness, performance, and concurrency behavior.
- Documentation Updates and Clarifications: Multiple pull requests enhance Node.js documentation by adding a detailed
DOMExceptionsection clarifying differences between web and Node.js errors, correcting HTTP/2 Compatibility API examples for better clarity, updating fsPromises.appendFile() documentation to reflect accepted data types, and fixing a Dispatcher undici documentation link. These improvements help users better understand API behaviors and error handling.
- Networking and Socket Enhancements: One pull request enables synchronous connection establishment for
net.Socketinstances created fromnet.BoundSocket, allowing immediate access to local address and port after connection, while aligning error handling across platforms and adding tests for synchronous source address resolution and error throwing. This improves socket connection behavior and consistency.
- Performance Improvements: A pull request introduces benchmarks and a simple internal cache for the
path.matchesGlob()function, significantly improving performance by reusing compiled glob pattern matchers and avoiding repeated matcher creation during pattern matching. This optimization enhances efficiency in path matching operations.
- Security Fixes: A pull request addresses a heap-use-after-free vulnerability in the HTTP/2 implementation by marking the session as receiving during
nghttp2_session_mem_recv()and deferring RST_STREAM handling, preventing premature stream closure and ensuring safe processing within nghttp2. This fix improves HTTP/2 stability and security.
- Dependency and Build Updates: One pull request updates the
temporal_rsdependency to version 0.2.3, synchronizing the manifest and lockfile with the Chromium snapshot to ensure exact dependency matching, incorporating bug fixes, specification compliance improvements, and vendored ICU4X locale data without affecting binary size or Intl formatting.
- Inspector and Debugging Enhancements: A pull request adds a
--cond <expr>option to the Node.js inspector's probe mode, enabling conditional recording of probe hits only when a specified expression evaluates to true, improving efficiency by filtering irrelevant hits without pausing the target.
- CLI and Output Styling Improvements: One pull request applies the
util.styleTextfunction to thenode --helpCLI output, enhancing visual hierarchy and readability by adding conditional color styling such as bold headers, colored option names, dimmed annotations, and underlined URLs, while preserving alignment and supporting plain text output when color is disabled.
- Timers Module Cleanup: A pull request improves the timers module by cleaning up references to the async store after timers fire, preventing retention of these references by iterating over all active stores and setting relevant symbols to undefined, addressing a memory retention issue.
- TLS Module Maintenance: One pull request moves the
_tls_*modules to end-of-life status, making them internal only in Node.js 26 and no longer publicly available. Another pull request improves test clarity in TLS-related exception handling tests by copyediting assertions.
- Filesystem Fixes: Multiple pull requests fix filesystem-related issues including correcting
fs.promises.lchmod()on mounted VFS paths to update symbolic link modes correctly, fixingfs.cpandfs.cpSyncon Windows by stripping extended-length path prefixes and updating error checks, and expanding tests forfsPromises.appendFile()to cover more data types and scenarios.
3.3 Pull Request Discussion Insights
This section will analyze the tone and sentiment of discussions within this project's open and closed pull requests that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.
Based on our analysis, there are no instances of toxic discussions in the project's open or closed pull requests from the past week.
IV. Contributors
4.1 Contributors
Active Contributors:
We consider an active contributor in this project to be any contributor who has made at least 1 commit, opened at least 1 issue, created at least 1 pull request, or made more than 2 comments in the last month.
If there are more than 10 active contributors, the list is truncated to the top 10 based on contribution metrics for better clarity.
| Contributor | Commits | Pull Requests | Issues | Comments |
|---|---|---|---|---|
| mcollina | 108 | 15 | 2 | 1 |
| aduh95 | 95 | 11 | 0 | 7 |
| trivikr | 51 | 14 | 8 | 8 |
| panva | 56 | 10 | 1 | 1 |
| Archkon | 17 | 12 | 6 | 10 |
| avivkeller | 18 | 8 | 1 | 18 |
| Renegade334 | 26 | 6 | 1 | 7 |
| martenrichter | 32 | 2 | 1 | 3 |
| jasnell | 22 | 2 | 1 | 12 |
| pimterry | 24 | 3 | 0 | 6 |