Weekly GitHub Report for Node: December 01, 2025 - December 08, 2025 (12:04:42)
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 to simplify flag management for the test runner and other experimental 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.
-
Docs for building with an ICU source directory don't work: This issue reports that the current Node.js documentation for building with a custom ICU source directory is outdated and does not work correctly when using a git checkout or newer ICU source layouts. The user describes errors encountered during configuration related to missing ICU data files and suggests that the documentation should be updated to clarify the correct directory structure, the need to use a downloaded tarball rather than a git checkout, and the requirement to copy certain ICU data files to specific locations.
- The comments discuss the root cause being outdated documentation and differences in ICU source packaging, with contributors clarifying that the Node.js build expects a downloaded ICU tarball rather than a git checkout. They agree that the docs need updates to specify the correct ICU source path, explain where ICU data files are generated, and instruct users to copy these files appropriately for the build to succeed.
- Number of comments this week: 8
-
Nominating @gurgunday as a Collaborator: This issue is a nomination proposing @gurgunday as a Node.js Collaborator, highlighting their consistent high-quality contributions in code, communication, and reviews within the Node.js project and organization. The nomination also notes their prior involvement as a member of the triaggers team and includes links to their commits, pull requests, issues, comments, and reviews as evidence of their active participation.
- The comments express strong support and congratulations for the nomination, with community members praising the nominee’s contributions and impact. The nominee responds with gratitude, sharing a heartfelt reflection on their journey with Node.js and appreciation for the collaborative community.
- Number of comments this week: 5
-
Node.js installer not working in Windows Sandbox: This issue reports that the Node.js installer fails to run within the Windows Sandbox environment on Windows 11 Pro, producing an error related to a missing DLL required for installation. The user highlights that while the standalone binary works with some workarounds, the MSI installer does not launch, and the problem seems tied to Windows Sandbox’s restrictions, such as disabled script execution policies.
- The comments suggest this is more of a Windows Sandbox setup or policy issue rather than a Node.js bug, with references to adjusting execution policies and using standalone binaries as workarounds. Some participants note that the installer’s failure is likely due to sandbox limitations dropping certain features needed by the MSI installer, and one user confirms successful installation in a similar environment, pointing to script execution being disabled as a key factor.
- Number of comments this week: 5
-
remove redundancy in node.config schema keys: This issue addresses the redundancy in the node.config schema keys where namespaces like "test" and "watch" are repeatedly specified due to direct mapping of CLI arguments. The proposed feature suggests automatically mapping the namespace part of CLI arguments within the config schema to eliminate this duplication, with an additional recursive mapping to better organize nested options such as test reporters and their destinations.
- The comments discuss the benefits of explicitly associating destinations with multiple test reporters to improve clarity and schema enforcement, consider an alternative ini format for configuration, highlight the potential for parameterizing reporters with additional options, note concerns about consistency with permission flags, and conclude with a mention of a pull request that resolves the redundancy issue by updating the schema generation.
- Number of comments this week: 3
-
Nominating @avivkeller: This issue is about nominating a contributor, @avivkeller, to become a Node.js collaborator, highlighting their contributions through commits, pull requests, issues, and comments within the Node.js organization. The nomination is supported by references to their activity and is intended to follow the project's governance guidelines for collaborator additions.
- The comments express gratitude and congratulations for the nomination, with a reminder to follow governance procedures by notifying the collaborators team.
- Number of comments this week: 3
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.
- Flaky GC-related tests with V8 12.2: This issue addresses flaky garbage collection-related tests that have become unreliable with the update to V8 version 12.2, specifically mentioning tests like
test-shadow-realm-gc-module,test-shadow-realm-gc, andtest-net-write-fully-async-hex-string. The proposed approach is to skip these tests temporarily due to their instability caused by changes in V8's garbage collection strategy, while acknowledging that current alternative methods to verify collectability may invalidate the tests, and suggesting that a better testing solution be developed in the future. - Flaky
test-worker-arraybuffer-zerofillwith V8 12.2: This issue concerns the flaky behavior of thetest-worker-arraybuffer-zerofilltest 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. - Support loading dynamic addon modules (
.nodefiles) when embedding the Node.js shared library without needing to link withnode.def: This issue addresses the challenge of loading dynamic Node.js addon modules (.nodefiles) on Windows when Node.js is embedded as a shared library, specifically without the need to link the embedding executable with thenode.deffile to reexport necessary symbols. The proposed feature suggests 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 relying on the executable's symbol exports, though potential security concerns remain to be evaluated. - Please make Node.js embeddable (e.g. libnode): This issue requests the creation of an embeddable version of Node.js, such as a
libnodelibrary, to allow projects to integrate the Node.js runtime and standard library directly within other host environments, like Rust-based applications. The current lack of an easily embeddable Node.js runtime forces developers to rely on incomplete alternatives like Deno or attempt complex workarounds, limiting the reuse of existing Node.js tooling and dependencies in various projects. - 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.createHashmethod 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, 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: 10
Summarized Issues:
- API clarity and reliability: There is uncertainty about whether the
optionsproperty ofhttp.globalAgentis part of the public API and safe to use for creating newhttp.Agentinstances, as the documentation does not clearly state this despite the property's long presence in the source code. This lack of clarity can lead to inconsistent usage and potential issues in relying on undocumented features. - issues/60914
- Test runner improvements: A proposal suggests adding a command-line option to the Node.js test runner to ignore or reject any
test.onlyor{ only: true }filters, aiming to prevent accidental exclusion of tests in CI environments. This would improve the detection of unintended test filtering and ensure more reliable test coverage. - issues/60917
- Build configuration updates: The Node.js main branch build configuration needs to be updated to stop accepting Python 3.9, which has reached end-of-life, ensuring that only supported Python versions 3.10 and above are used. This change is necessary to maintain compatibility and security in the build process.
- issues/60919
- Collaborator nominations: Two issues nominate contributors (@gurgunday and @avivkeller) as Node.js collaborators, recognizing their consistent high-quality contributions including commits, issue participation, reviews, and community involvement. These nominations highlight the importance of acknowledging active and valuable members of the project.
- issues/60921, issues/60937
- Windows installer issues: The Node.js MSI installer fails to run inside Windows Sandbox on Windows 11 Pro due to a missing DLL error and sandbox restrictions, while the standalone binary works with workarounds. This problem prevents proper installation in sandboxed environments and is related to script execution policies and sandbox limitations.
- issues/60941
- Documentation inaccuracies: The Node.js documentation for building with a custom ICU source directory is outdated and incomplete, lacking proper guidance on specifying the ICU source path, locating the ICU data file, and copying it to the expected directory for successful configuration. This causes confusion and build failures for users attempting custom ICU builds.
- issues/60947
- Readline module bug: A bug in the readline module causes the output from the completer to be erased or overwritten when using a multiline prompt and listing all completions, resulting in duplicated prompt lines and missing completion suggestions. This issue affects usability and clarity of the readline interface.
- issues/60952
- Console logging of Proxy objects: Logging a Proxy object to the console results in an unhelpful empty object
{}, omitting enumerable ownKeys that should be displayed similarly to normal objects. This behavior reduces the usefulness of console output for debugging Proxy objects. - issues/60964
- Module resolution inconsistency: When using
require(esm)in Node.js v25.2.1 on macOS, theparentURLpassed toregisterHooksincorrectly omits the query string, causing a mismatch withimport.meta.urland leading to unexpected module resolution behavior. This discrepancy can cause issues in module loading and hook registration. - issues/60973
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: 9
Summarized Issues:
- Python version support in Node.js builds: Node.js branch builds currently accept Python versions older than 3.10, which have reached end-of-life, causing a need to update the configure scripts and documentation to restrict supported Python versions to 3.10 and above. This change is necessary to align with official Python support policies and ensure compatibility.
- issues/60918
- Security and release management inquiries: There are requests for review and confirmation related to Node.js security and release schedules, including a review request from the security working group and a query about the expected release date for version 22.21.3, which addresses high-priority CVEs in bundled dependencies. These issues highlight ongoing efforts to maintain security and clarity around release timelines.
- issues/60938, issues/60958, (https://github.com/issues/60958)
- Application and API usage issues: Users report problems with Node.js features and APIs, including a segmentation fault with the
Intl.SegmenterAPI on certain builds and platforms, and a regression causing process crashes when logging Error objects with getters in version 24.11.1. These issues affect stability and reliability of Node.js in specific use cases and environments. - issues/60948, issues/60961, (https://github.com/issues/60961)
- Platform compatibility problems: Node.js version 24 exhibits syntax and execution errors on WSL1 with Debian 12, while earlier versions and WSL2 work correctly, indicating compatibility issues with this specific environment. This problem impacts users running Node.js in Windows Subsystem for Linux setups.
- issues/60950
- Infrastructure and service errors: A 500 Internal Server Error was encountered in the Node.js project, which was traced to a Cloudflare-related issue and subsequently resolved, showing the impact of external infrastructure on project availability.
- issues/60955
- Documentation and tooling inquiries: There is a user inquiry about the availability of a JSON API for Node.js documentation to facilitate building a custom frontend, along with questions about the documentation generation pipeline from the source code. This reflects interest in improving documentation accessibility and tooling.
- issues/60965
- Application development with Node.js: A React Native app called "Faceless Video Creator" enables users to create videos for TikTok and YouTube by recording or typing audio, selecting avatars, previewing captions, and exporting via screen recording, showcasing creative uses of Node.js in app development.
- issues/60944
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: 29
Key Open Pull Requests
1. lib,src,test: fix tests without SQLite: This pull request aims to fix tests in the lib, src, and test directories so that they can run successfully without requiring SQLite, with initial changes being tested in draft form and Nix-related modifications planned for a separate pull request.
- URL: pull/60906
- Merged: No
2. node-api: use v-table to reverse module dependencies: This pull request proposes a proof-of-concept implementation to reverse the dependency model of Node-API modules by using v-tables, allowing the runtime to inject the API into pre-built .node modules instead of the modules depending on the Node.js API, thereby enabling compatibility with multiple JavaScript runtimes and overcoming limitations related to module binding on different platforms.
- URL: pull/60916
- Merged: No
3. util: process signal to exit code utility: This pull request introduces a new utility function util.convertProcessSignalToExitCode() that converts process termination signal names (like SIGTERM or SIGKILL) into their corresponding POSIX exit codes, enabling consistent cross-platform handling of child process exit codes when termination is caused by signals.
- URL: pull/60963
- Merged: No
Other Open Pull Requests
- Shell.nix configuration and Nix improvements: This pull request adds new parameters
withAmaro,withSQLite, andwithSSLto theshell.nixconfiguration to align with existingconfigure.pyflags and reorganizes parameter grouping for better readability. It also fixes a bug related to passing--arg ccache null, improves consistency in using Nix library functions, and introduces a localneedsRustCompilerflag to support future Rust dependencies.
[pull/60911]
- Windows symlink error handling: This pull request adds a defensive try/catch block around the
stat()call used in Windows symlink creation to prevent rare synchronous errors from crashing the Node.js process. It ensures safer failure handling while maintaining existing behavior with minimal, platform-specific changes.
[pull/60923]
- Crypto module ML-KEM JWK support: This pull request adds support for the ML-KEM JWK key format to the
node:cryptomodule and the Web Cryptography API.
[pull/60933]
- Node.config JSON schema simplification: This pull request removes redundancy in the node.config JSON schema by eliminating prefixed keys in the test and watch namespaces, simplifying keys like test-concurrency and watch-path to concurrency and path respectively. The original prefixed keys are retained as aliases for backward compatibility.
[pull/60943]
- ESM require feature stabilization and CLI flag updates: This pull request marks the
require(esm)feature as stable across all active LTS release lines due to its widespread adoption and maturity. It replaces the experimental CLI flags--experimental-require-moduleand--no-experimental-require-modulewith stable alternatives while retaining the experimental flags as legacy aliases.
[pull/60959]
- Module customization hooks documentation reorganization: This pull request reorganizes the documentation of module customization hooks to emphasize synchronous variants by presenting them first without caveats and marks these synchronous hooks as release candidates. It also clearly outlines the caveats associated with asynchronous hooks.
[pull/60960]
- V8 crash fix backport for RISC-V architecture: This pull request backports two V8 commits to the v24.x branch to fix a crash related to a failed check in the bind_to function on the RISC-V architecture. The fix addresses an issue encountered when building Adguard Home with webpack and is unnecessary for later versions where the fixes are already included.
[pull/60962]
- Fix for readable.compose() method behavior: This pull request addresses the issue where the
readable.compose()method incorrectly passes its output throughReadable.from(), causing inefficiencies and functional breakages. It modifiesreadable.compose()to be a standalone method that returns the original composed Duplex stream unaltered.
[pull/60907]
- fs.watch documentation improvements: This pull request improves the
fs.watchdocumentation by adding a detailed section explaining limitations of event detection during rapid file operations due to OS-level mechanisms. It clarifies that missed or coalesced events are expected behavior and provides recommendations such as using third-party libraries,fs.watchFile(), or debouncing logic for reliable file event monitoring.
[pull/60910]
- Test suite improvements for NODE_OPTIONS and promise detection: These pull requests propose skipping tests that fail when
NODE_OPTIONSsupport is not available and improve test reliability by enforcing explicit detection of promises that are never expected to settle. These changes ensure smoother test runs and stricter test behavior validation.
[pull/60912, pull/60975, pull/60976]
- queueMicrotask performance optimization: This pull request optimizes the
queueMicrotaskfunction by preserving AsyncLocalStorage only when necessary, improving performance as demonstrated by benchmark comparisons.
[pull/60913]
- Fix readdir recursive mode Buffer argument error: This pull request fixes an issue where calling the readdir function with a Buffer argument in recursive mode incorrectly produces an ERR_INVALID_ARG_TYPE error. It ensures the function returns the expected array of Buffers or Dirents without error.
[pull/60936]
- Fix cpSync symbolic link handling: This pull request fixes an issue in the
cpSyncfunction where the source argument was incorrectly dereferenced due to swapping thesymlink_statusandstatusparameters for the destination. The fix corrects behavior to properly handle symbolic links as described in issue #59168.
[pull/60945]
- Fix errorOnExist option for directory copy in fs.cp: This pull request addresses the issue of the errorOnExist option not being applied during directory copy operations in the fs.cp function. It implements this check for directories, fixing the behavior to match that previously available only for files.
[pull/60946]
- Improve ERR_AMBIGUOUS_MODULE_SYNTAX error message: This pull request improves the ERR_AMBIGUOUS_MODULE_SYNTAX error message by dynamically identifying the specific CommonJS global causing the ambiguity instead of relying on a hardcoded reference to 'require()'.
[pull/60949]
- Enhance process.cwd() failure error message: This pull request improves the error message generated when
process.cwd()fails due to the current working directory being deleted. It modifies the relevant internal module to catch and enhance the ENOENT error and adds a new test to verify this improved message.
[pull/60951]
- Global proxy support API addition: This pull request introduces a new API, http.setGlobalProxyFromEnv(), enabling dynamic, built-in proxy support across fetch() and http.request()/https.request() methods. This simplifies proxy configuration by allowing users to set it globally from environment variables without configuring each method individually.
[pull/60953]
- Mark CLI flags and APIs as stable: These pull requests update documentation to mark the CLI flags --build-snapshot and --build-snapshot-config as stable, propose marking the CLI option
--heapsnapshot-near-heap-limitas stable, and propose marking the v8.queryObjects() API as stable. These reflect consistent support and reliable use over time.
[pull/60954, pull/60956, pull/60957]
- Add ERR_AMBIGUOUS_MODULE_SYNTAX error code: This pull request adds a new error message, ERR_AMBIGUOUS_MODULE_SYNTAX, to clearly indicate when a file improperly mixes CommonJS and ES Module syntax. This improves developer experience by encouraging consistent use of a single module system.
[pull/60968]
- Module compile cache stabilization: This pull request proposes marking the module compile cache feature as stable due to its year-long stability without breaking changes and widespread usage. It clarifies that future changes will treat breakages as semver-major and excludes certain implementation details from the stability contract.
[pull/60971]
- Fix createRequire() URL preservation: This pull request addresses an issue where the createRequire() function did not preserve the URL passed to it in the mock parent module. It adds functionality to retain the URL if createRequire() is invoked with one, which can affect behavior when used with module.registerHooks().
[pull/60974]
- Test flakiness reduction for repl paste big data: This pull request aims to deflake the
test-repl-paste-big-datatest by increasing the data length, raising the threshold, and relocating the test to thepummelsuite. These changes improve test stability when run in parallel with other tests.
[pull/60975]
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: 17
Key Closed Pull Requests
1. tools: update cpplint to v2.0.2: This pull request proposes updating the cpplint tool to version 2.0.2, including disabling certain linting rules to avoid false positives and conflicts with the C++ formatter, and backporting multiple patches to improve lint checks and maintain consistency with the Node.js codebase style guidelines.
- URL: pull/60901
- Merged: No
2. tools: update ESLint deps and handle plugin deprecations: This pull request aims to update the ESLint dependencies to their latest versions, remove deprecated ESLint plugins, and replace the deprecated eslint-plugin-markdown to maintain compatibility and improve the project's linting tools.
- URL: pull/60908
- Merged: No
3. build: add temporal to linux GHA build: This pull request aims to add support for building the V8 temporal API on Linux using GitHub Actions, specifically targeting Ubuntu x64 and arm64 architectures with Rust compiler version 1.82.0 to ensure compatibility with LLVM v19, while simplifying Rust toolchain installation and testing.
- URL: pull/60942
- Merged: No
Other Closed Pull Requests
- CI Configuration Updates: This pull request updates the GitHub Actions CI configuration to ignore additional file paths, reducing redundant builds such as multiple Node.js versions running unnecessarily in pull requests. It also removes references to the obsolete AUTHORS file to clean up the configuration.
pull/60920
- Error Message Improvements: These pull requests improve error handling by clarifying error messages and enhancing error reporting. One improves the error message for
process.cwd()when the current directory is deleted, while another resolves several error handling TODOs in lib/buffer.js and src/node_worker.cc by throwing clearer exceptions and updating exit codes.
pull/60935, pull/60931
- Test and CI Enhancements: This pull request enables running tests with the
--without-amarooption on the test-shared macOS CI job by reusing an existing job to cover this configuration without adding a new one, fixing previously broken tests. Another improves test coverage for config-file permissions, enhancing reliability of permission-related tests.
pull/60902, pull/60929
- WritableStream Property Fixes: This pull request fixes the implementation of the
isErroredandisWritableproperties for WritableStreams by addressing missing underlying machinery, ensuring these properties behave correctly.
pull/60905
- RISC-V Branch Offset Fix: This pull request fixes a branch offset overflow error on RISC-V by increasing the trampoline pool gap in the V8 assembler from 16 to 32 slots and ensuring the trampoline pool is emitted earlier to prevent branch targets from being out of range.
pull/60909
- Documentation Updates: These pull requests update documentation by adding the missing
zstdcompression encoding to the Node.js zlib ES module example and correcting the documentation of the--watchand--watch-pathflags in the Node.js manual page. Additionally, a typographical error in the fixtures README is corrected.
pull/60915, pull/60932, pull/60977
- Stack Trace Handling Improvement: This pull request adds an assertion to ensure that the
util.getCallSitesfunction does not invokeError.prepareStackTrace, preventing unintended side effects during stack trace retrieval.
pull/60922
- Windows-1252 Decoder Fix: This pull request addresses incorrect decoding of bytes 0x80-0x9F in Windows-1252 encoding by replacing the Latin-1 decoder with a proper Windows-1252 decoder including a character mapping table. It updates source and JavaScript binding files and adds comprehensive tests to ensure correct functionality.
pull/60934
- Unmerged Proposals: These pull requests propose new files and workflows, including a new workflow file named manual.yml and a new file named fgts.js, but neither was merged into the project.
pull/60939, pull/60967
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 | 68 | 16 | 2 | 23 |
| joyeecheung | 22 | 12 | 1 | 5 |
| Renegade334 | 11 | 8 | 0 | 21 |
| targos | 21 | 5 | 2 | 8 |
| richardlau | 10 | 3 | 1 | 15 |
| legendecas | 16 | 3 | 0 | 4 |
| LiviaMedeiros | 11 | 6 | 1 | 3 |
| siaeyy | 7 | 2 | 1 | 9 |
| marco-ippolito | 9 | 0 | 0 | 8 |
| RafaelGSS | 9 | 4 | 0 | 3 |