Weekly Project News

Subscribe
Archives

Weekly GitHub Report for Node: November 10, 2025 - November 17, 2025 (12:02:27)

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
    • 1.2. Other Noteworthy Updates
  • II. Issues
    • 2.1. Top 5 Active Issues
    • 2.2. Top 5 Stale Issues
    • 2.3. Open Issues
    • 2.4. Closed Issues
    • 2.5. Issue Discussion Insights
  • III. Pull Requests
    • 3.1. Open Pull Requests
    • 3.2. Closed Pull Requests
    • 3.3. Pull Request Discussion Insights
  • IV. Contributors
    • 4.1. Contributors

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 to simplify flag management for the test runner and related features, 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.

  1. Regression 25.2.0 - Cannot initialize local storage without a --localstorage-file path: This issue reports a regression in version 25.2.0 where accessing the localStorage global variable without specifying a --localstorage-file path causes errors, breaking tools and builds that enumerate global variables. The problem stems from a change that introduced throwing behavior on accessing localStorage, which conflicts with expectations in testing frameworks, bundlers, and production builds, leading to calls for reverting or modifying the change to avoid breaking existing workflows.

    • The comments discuss code examples reproducing the error, impacts on popular projects like Docusaurus and html-webpack-plugin, and the rationale behind the breaking change being specification-compliant but problematic for server runtimes. Contributors debate reverting the change versus modifying it to expose undefined instead of throwing, note that the issue was flagged in testing but the release proceeded due to its experimental status, and suggest interim workarounds and the need for broader discussion in standards groups.
    • Number of comments this week: 14
  2. util.inspect throws when given a ZodError: This issue reports that the util.inspect function in Node.js v24.11.1 throws an exception when attempting to inspect a ZodError object from the Zod validation library, which worked correctly in earlier Node.js versions like v22. The problem appears to be a regression caused by a recent internal change in Node.js that affects how certain non-own properties (errors and cause) on error objects are handled during inspection, leading to a TypeError.

    • The comments confirm the issue is reproducible with the specified Zod version and note it is fixed in a later Node.js pre-release. Discussion centers on the root cause being the handling of inherited non-enumerable properties on error objects, with proposals to fix it by modifying the property descriptor lookup to traverse the prototype chain or by handling extra keys differently. Contributors express willingness to submit a patch and add regression tests, debating the best location and approach for the fix while acknowledging trade-offs in code complexity and performance.
    • Number of comments this week: 8
  3. Getting abstract error when running node with --perf-basic-prof enabled on Android device via Termux: This issue describes a fatal error encountered when running Node.js with the --perf-basic-prof flag enabled on an Android device via Termux, which prevents profiling the Node.js project as intended. The user suspects a permissions problem related to the filesystem, as attempts to set environment variables and flags to redirect profiling output have not resolved the error.

    • The comments acknowledge the issue and request further assistance, with one response explaining that the error likely stems from V8 being unable to create the map file due to filesystem permissions, and advising that the profiling output path should be set to a directory within the application's own data folder rather than the default /data/local/tmp.
    • Number of comments this week: 3
  4. Node incorrectly resolves relative paths with directory symlinks: This issue reports that Node.js version 25.2.0 incorrectly resolves relative paths when directory symlinks are involved, causing it to fail to locate modules that exist at the expected paths. The user demonstrates this with a reproducible example where running a script through a symlinked directory path results in a "MODULE_NOT_FOUND" error, and notes that similar tools like Bun handle the case correctly while Deno shares the same issue.

    • The comments suggest using the --preserve-symlinks and --preserve-symlinks-main flags as a potential workaround, but the original reporter confirms that these flags do not resolve the problem, indicating that Node.js is preserving the symlink path incorrectly rather than resolving it properly.
    • Number of comments this week: 2
  5. Test Runner test() method concurrency option should specify "application process" instead of "application thread": This issue addresses a documentation inaccuracy in the Node.js test runner API, specifically the description of the concurrency option in the test() method. The reporter suggests that the docs incorrectly refer to "application thread" when tests actually run in separate processes, and proposes changing terminology from "parallel" to "concurrent" to better reflect how test execution works.

    • The comments confirm that the test runner does not use worker threads but runs tests in separate child processes or the main process depending on settings, clarifying the concurrency model. A contributor expresses interest in updating the documentation to replace "application thread" with "application process," clarify concurrency as process-based, and adjust wording from "parallel" to "concurrent," inviting feedback on specific phrasing.
    • Number of comments this week: 2

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.

  1. Flaky GC-related tests with V8 12.2: This issue addresses flaky garbage collection (GC)-related tests that have become unreliable with the update to V8 version 12.2, specifically highlighting problems with the test-shadow-realm-gc-module, test-shadow-realm-gc, and test-net-write-fully-async-hex-string tests. The discussion suggests skipping these tests temporarily due to their instability caused by changes in V8's GC strategy, with a plan to find a more reliable testing approach in the future.
  2. Flaky test-worker-arraybuffer-zerofill with V8 12.2: This issue concerns the flaky behavior of the test-worker-arraybuffer-zerofill test when running with V8 version 12.2, where the test intermittently fails due to a timeout after approximately 300 seconds. The problem may stem from either a genuine bug or broken timing assumptions causing lost messages, and the current approach is to mark the test as flaky while adding additional logging to aid in debugging.
  3. Support loading dynamic addon modules (.node files) when embedding the Node.js shared library without needing to link with node.def: This issue addresses the challenge of loading dynamic Node.js addon modules (.node files) on Windows when Node.js is embedded as a shared library, specifically aiming to eliminate the need for executables to link with the node.def file to reexport necessary symbols. The proposed solution involves enhancing the delay load hook mechanism to optionally use an environment variable to locate the Node.js shared library module handle, thereby enabling addon modules to load correctly without requiring explicit linking, though potential security concerns remain to be evaluated.
  4. Please make Node.js embeddable (e.g. libnode): This issue requests the creation of a dedicated embeddable version of Node.js, such as a libnode library, to allow projects to integrate the Node.js runtime and standard library directly within other host environments. The feature aims to address the current difficulty in embedding Node.js, which forces developers to rely on incomplete alternatives like Deno, and would particularly benefit use cases involving embedding Node.js in Rust-based applications.
  5. unable to sign with external OpenSSL engine after usage of crypto.hash: This issue describes a problem where signing data with an external OpenSSL engine (specifically the gost-engine) fails after using the crypto.createHash method in Node.js version 21.7.1 on a Linux Debian system. The error occurs consistently and produces an "unsupported" digital envelope routines error, which did not happen in earlier Node.js versions (21.6.2 and before), suggesting a regression introduced by recent changes in the crypto subsystem.

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: 14

Summarized Issues:

  • Test failures and regressions in Node.js core and libraries: Several issues report test failures and regressions caused by changes in dependencies or internal behavior. These include HTTP server keep-alive timeout test failures on slower platforms, breakage due to new nghttp2 versions, and regressions in util.inspect handling errors and inspecting ZodError.
  • issues/60656, issues/60661, issues/60683, issues/60717
  • API improvements and standardization proposals: Proposals include adding a new Node-API function napi_set_prototype to mirror V8 functionality and standardizing option naming for write/read stream functions to use 'flag' consistently. These aim to improve API clarity and usability.
  • issues/60670, issues/60671
  • Documentation updates and user experience enhancements: Suggestions to improve documentation include changing the Node.js docs landing page to show "About this documentation" for better visual consistency and updating test runner docs to clarify concurrency behavior and terminology.
  • issues/60667, issues/60721
  • Environment and configuration improvements in testing: A proposal to add an env option to the Test Runner's run() method would allow setting environment variables programmatically, improving over the current manual workaround.
  • issues/60709
  • Filesystem and module resolution bugs: Node.js v25.2.0 has a bug resolving relative paths involving directory symlinks, causing module not found errors despite files existing. This affects module loading reliability in certain filesystem setups.
  • issues/60715
  • Performance regressions related to V8 and native modules: A significant performance regression in SQLite SELECT operations was observed in Node.js v24 compared to v20, likely due to changes in V8's CppHeap management impacting native module performance.
  • issues/60719
  • Runtime errors and environment-specific failures: Running Node.js with --perf-basic-prof on Android via Termux causes fatal errors due to V8 failing to create map files, likely from filesystem permission issues. Additionally, a regression in v25.2.0 breaks tools relying on localStorage without specifying a file path.
  • issues/60695, issues/60704
  • Build and tooling script inaccuracies: The install_tools.bat script outputs an outdated message referencing the 2019 Visual Studio workload instead of the correct 2022 version, which may confuse users during setup.
  • issues/60733

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: 8

Summarized Issues:

  • Dashboard feature enhancement: This issue proposes adding a time-based comparison feature to the team dashboard statistics, allowing users to compare current metrics against previous periods such as last week, month, or quarter. It includes a dropdown selector for period selection, visual indicators for metric changes, and dynamic styling to highlight positive or negative trends.
  • issues/60648
  • Documentation errors in crypto API: The Node.js crypto API documentation contains incorrect Object Identifiers (OIDs) for slh dsa algorithms in doc/api/crypto.md, which need to be updated to align with the IETF draft specifications for x509-slhdsa. This discrepancy causes confusion and requires correction to ensure accurate and reliable documentation.
  • issues/60680
  • Module hooks and return value errors: A bug in the module-hooks test arises when the load hook returns null, causing a TypeError (ERR_INVALID_RETURN_PROPERTY_VALUE) because the hook expects a string, ArrayBuffer, or TypedArray. The fix involves adding a fallback to return a valid module source to prevent this error and allow the test to complete successfully.
  • issues/60685
  • Inconsistent function binding in modules: Node.js modules exhibit inconsistency regarding whether functions provided at runtime require explicit binding to their original object context. Some methods like process.addListener need binding to work correctly, while others like http.request do not, leading to unpredictable behavior and forcing developers to use trial-and-error to determine when binding is necessary.
  • issues/60691
  • Issue placeholder lacking details: This is a placeholder draft issue requesting additional information such as issue type, expected behavior, reproduction steps, environment details, assignees, and related context. Without these details, the problem cannot be properly defined or addressed.
  • issues/60694
  • Double error event emission on proxy tunnel rejection: When using an HTTPS proxy configured via environment variables with NODE_USE_ENV_PROXY=1, the ClientRequest incorrectly emits the error event twice with the ERR_PROXY_TUNNEL code upon proxy tunnel rejection. This causes unhandled error crashes in code that expects the error event to be emitted only once.
  • issues/60697
  • Fatal error on extremely large array creation: Creating an extremely large array (e.g., Array.from({length:2**27})) causes a fatal JavaScript heap out of memory crash instead of producing a nonfatal error as expected for array lengths slightly above the size limit. This behavior leads to unexpected crashes rather than graceful error handling.
  • issues/60710
  • Fetch failure in Google reverse image search: Using the fetch() function to perform a Google reverse image search fails with a "Search by image is unavailable" message in Node, Deno, and Cloudflare environments but works in Bun. The issue is linked to a specific form field and is resolved after upgrading Node to a newer LTS version.
  • [issues/60725](https://github.com/issues/60725]

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: 36

Key Open Pull Requests

1. util: safely inspect getter errors whose message throws: This pull request addresses safely inspecting errors thrown by getters whose error messages themselves throw exceptions, improving error handling and adding comprehensive test cases for uncommon thrown values in the Node.js utility module.

  • URL: pull/60684
  • Merged: No
  • Associated Commits: 09d8f, 796a2, d1b18, bcb98, f8564, 94a70, 9b05e

2. deps: add support of temporal_rs: This pull request adds support for the temporal_rs library by checking it in and building it as a static library with a new build flag to enable V8's temporal support, includes locking dependencies with Cargo.lock, introduces runtime enabling via a CLI flag, and adds related build and test configurations to integrate temporal functionality into the project.

  • URL: pull/60703
  • Merged: No
  • Associated Commits: 6a7b9, 90438, 5617b, 7734e, d7096

3. node-api: napi_set_prototype function: This pull request introduces the napi_set_prototype function to the Node.js API, including its implementation, tests, documentation, and experimental feature guarding, closely following the approach used in napi_set_propertyRefs.

  • URL: pull/60711
  • Merged: No
  • Associated Commits: 80ab2, b5289, ecfa1, e1b57, 4dd9b

Other Open Pull Requests

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: 23

Key Closed Pull Requests

1. Updated: This pull request involves updates to the project's configuration and tooling files, specifically modifying tools.yml and configure.py, but it was not merged.

  • URL: pull/60660
  • Merged: No
  • Associated Commits: f6c31, 3cf0e

2. esm: use wasm version of cjs-module-lexer: This pull request proposes switching to the WebAssembly version of the cjs-module-lexer for ECMAScript modules to improve parsing performance, alongside updating the import CommonJS benchmark to use a more realistic TypeScript fixture and separate measurements for initial and subsequent parsing.

  • URL: pull/60663
  • Merged: No
  • Associated Commits: 86940, 19b31

3. doc: remove mention of SMS 2FA: This pull request removes references to SMS-based two-factor authentication (2FA) from the project's documentation to reflect the current security settings as verified from the Node.js organization's GitHub security page.

  • URL: pull/60707
  • Merged: Yes
  • Associated Commits: 989ac, 51567

Other Closed Pull Requests

  • Dependabot configuration fix: This pull request fixes an issue in the Dependabot configuration by replacing an invalid GitHub Actions expression used for open-pull-requests-limit with a valid integer. This ensures the .github/dependabot.yml file conforms to Dependabot’s schema and validates without errors.
    • pull/60649
  • ECMAScript module system proposal: This pull request proposes adding the import.meta.sync feature to the ECMAScript module system in Node.js as an early implementation and feedback step aligned with the TC39 proposal for import synchronization. However, this feature was not merged.
    • pull/60652
  • Test file restructuring: This pull request splits the monolithic test-runner-run-watch.mjs test file, which contained many independent test cases causing flakiness and masking actual regressions across major platforms, into individual test files. This improves test reliability and makes it easier to identify specific flaky tests.
    • pull/60653
  • V8 dependency and architecture updates: This pull request backports a V8 dependency update that removes unsupported ppc and s390 architectures from the host_arch list, ensuring only ppc64 and s390x are supported. It also addresses related build issues and cherry-picks a commit to handle the removal of the avx10.2-512 target in GCC 15 for compatibility until upstream fixes are incorporated.
    • pull/60654, pull/60682
  • Crypto module improvements: These pull requests ensure the documented default value for the RSA-PSS saltLength parameter is consistently applied regardless of OpenSSL version and correct the incorrect object identifiers (OIDs) for slh-dsa algorithms in the crypto.md documentation. These changes improve consistency and accuracy in the crypto module and its documentation.
    • pull/60662, pull/60681
  • V8 pointer slot tagging: This pull request improves the Node.js source code by tagging more V8 aligned pointer slots, addressing a previously reported issue to enhance internal consistency and correctness.
    • pull/60666
  • Documentation updates and fixes: These pull requests include rendering the "About this documentation" section on the landing page by copying documentation.md output to index.html/.json, clarifying that domain.add() does not accept timer objects, and adding information about a renamed CLI flag. They also update and harden documentation generation tools to accommodate the new index structure.
    • pull/60673, pull/60675, pull/60690
  • GitHub Actions runner tools update: This pull request updates the x64 macOS runner tools in the Node.js project to address issues referenced in the GitHub actions runner-images repository.
    • pull/60676
  • Module hooks async fix: This pull request addresses a "file not found" error in the module hooks by updating the async forward loader to correctly await and return the nextLoad call. This ensures proper asynchronous behavior and fixes related errors in the module hook testing flow.
    • pull/60686
  • Unmerged documentation proposals: These pull requests propose updates to README.md and onboarding.md documentation files but were not merged into the main branch.
    • pull/60687, pull/60688
  • V8 Temporal support build flag proposal: This pull request proposes adding a build flag to compile the V8 engine with Temporal support, marking a preliminary step that requires building temporal_capi to function properly.
    • pull/60693
  • HTTP/HTTPS proxy error handling fix: This pull request fixes duplicate ERR_PROXY_TUNNEL error emissions in the http and https modules by ensuring proxy-related errors are handled exclusively within the proxy logic. This prevents the same root cause from triggering multiple error events.
    • pull/60699
  • install_tools.bat version update: These pull requests propose small updates to the install_tools.bat script by changing the echoed version number from 2019 to 2022 to accurately reflect the current version being installed.
    • pull/60734, pull/60735
  • Unmerged collaborator addition proposal: This pull request proposes adding Renegade334 to the list of collaborators for the project, addressing a referenced issue, but it has not been merged.
    • pull/60714

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
aduh95 77 25 2 47
joyeecheung 88 17 2 31
ChALkeR 8 7 6 62
targos 34 8 3 13
mertcanaltin 29 1 0 22
legendecas 23 4 1 13
Renegade334 9 8 2 14
addaleax 15 2 0 10
richardlau 8 3 1 13
codebytere 16 7 0 2

Don't miss what's next. Subscribe to Weekly Project News:
Powered by Buttondown, the easiest way to start and grow your newsletter.