Skip to content

chore(toolchain): align Electron 40 with Node 24#1527

Merged
zerob13 merged 3 commits intodevfrom
chore/electron40-node24-toolchain
Apr 23, 2026
Merged

chore(toolchain): align Electron 40 with Node 24#1527
zerob13 merged 3 commits intodevfrom
chore/electron40-node24-toolchain

Conversation

@yyhhyyyyyy
Copy link
Copy Markdown
Collaborator

@yyhhyyyyyy yyhhyyyyyy commented Apr 23, 2026

Align Electron, Node, and CI toolchain versions for the Node 24 / Electron 40 upgrade.

Summary by CodeRabbit

  • Chores

    • Updated CI build toolchain to Node.js 24.14.1 and pnpm 10.13.1.
  • Dependencies

    • Bumped runtime/dev dependencies including Electron, electron-builder, type definitions, and native modules.
  • Updates

    • Refreshed multiple agent registry entries to newer releases (cline, codebuddy-code, corust-agent, factory-droid, fast-agent, gemini, kilo, kimi, opencode, qoder, qwen-code).
  • Documentation

    • Updated getting-started guidance to recommend Node.js 24.14.1.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 23, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f3746c3a-4a46-4364-81dc-6463a47aa74a

📥 Commits

Reviewing files that changed from the base of the PR and between bbb8f64 and bbc3129.

📒 Files selected for processing (1)
  • package.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • package.json

📝 Walkthrough

Walkthrough

Toolchain and runtime versions were bumped across CI workflows, config, docs, and package metadata: Node pinned to 24.14.1, pnpm to 10.13.1, package.json engines tightened, dev deps updated, and multiple ACP agents in the registry advanced to newer releases.

Changes

Cohort / File(s) Summary
CI Workflow Toolchain Updates
\.github/workflows/build.yml, \.github/workflows/prcheck.yml, \.github/workflows/release.yml
Updated Node.js from 22.13.124.14.1 and pnpm from 10.12.110.13.1 in setup steps across workflows.
Runtime & Dev Metadata
package.json, mise.toml
engines.node tightened to >=24.14.1 <25; @types/node, electron, electron-builder, and better-sqlite3-multiple-ciphers bumped; mise.toml node pin changed from "24""24.14.1".
Documentation
docs/guides/getting-started.md
Node prerequisite changed from >= 20.19 to recommended 24.14.1 and trailing blank line removed.
Agent Registry
resources/acp-registry/registry.json
Updated versions and distribution/package/archive references for eleven agents (cline, codebuddy-code, corust-agent, factory-droid, fast-agent, gemini, kilo, kimi, opencode, qoder, qwen-code).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Poem

🐰 I hopped from twenty-two to twenty-four,
pnpm and Node now sprint and soar.
Electrons twirl, agents align,
registry seeds sprout every line.
Hooray — a small hop, big refine! 🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately captures the main objective of the changeset—aligning Electron 40 with Node 24 across toolchain, CI workflows, and dependencies.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/electron40-node24-toolchain

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/build.yml:
- Around line 41-44: The workflow uses pnpm/action-setup@v2 in the "Setup pnpm"
steps while FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 is enabled; update those steps to
use pnpm/action-setup@v4 (or later) so the action runs on node24 runtime, and
apply the same change to all "Setup pnpm" blocks in this repo's workflow files
(build.yml, release.yml, prcheck.yml) to avoid the node16 vs node24 mismatch.
Ensure any occurrences of "pnpm/action-setup@v2" are replaced with
"pnpm/action-setup@v4" (or a later pinned version) in each workflow file.

In @.github/workflows/prcheck.yml:
- Around line 57-60: Replace usages of the GitHub Action reference
"pnpm/action-setup@v2" with "pnpm/action-setup@v5" everywhere this workflow
variable is used (all workflows that set
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true), e.g. the step that currently names
"Setup pnpm" and uses pnpm/action-setup@v2; update those occurrences in the same
steps in the other workflows to ensure the action runs on node24-compatible
runners.

In @.github/workflows/release.yml:
- Around line 136-139: Update all occurrences of the pnpm action in the release
workflow to use pnpm/action-setup@v6 (replace pnpm/action-setup@v2) so the
release jobs that force Node 24 can successfully set up pnpm; locate the action
usage lines like "uses: pnpm/action-setup@v2" in the release.yml (including the
instances around the shown diff and the other occurrences you noted) and change
them to "uses: pnpm/action-setup@v6" for each release build job.

In `@docs/guides/getting-started.md`:
- Around line 5-9: Update the prerequisite under the "## 前置要求" section to mark
Node.js 24.14.1 as required (not recommended) to match package.json's engine
range (>=24.14.1 <25); change the bullet "- Node.js `24.14.1` recommended" to a
required statement that explicitly notes the supported range (e.g., "Node.js
>=24.14.1 <25 (required)") so the docs and package.json remain consistent.

In `@package.json`:
- Line 9: The installRuntime commands calling tiny-runtime-injector with --type
node are missing an explicit runtime version; update each invocation of
tiny-runtime-injector --type node in the installRuntime:* scripts to include
--runtime-version 24.14.1 so the runtime matches the engines.node value
(24.14.1) in package.json; look for the installRuntime:* script entries that
call tiny-runtime-injector and append --runtime-version 24.14.1 to each
platform-specific --type node invocation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 751663d2-31d3-4dc1-b6b5-b37169c77724

📥 Commits

Reviewing files that changed from the base of the PR and between d6e3ee6 and 6ed1136.

📒 Files selected for processing (8)
  • .github/workflows/build.yml
  • .github/workflows/prcheck.yml
  • .github/workflows/release.yml
  • docs/guides/getting-started.md
  • mise.toml
  • package.json
  • resources/acp-registry/registry.json
  • resources/model-db/providers.json

Comment on lines 41 to +44
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 10.12.1
version: 10.13.1
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Expect no remaining v2 pnpm setup actions after the fix.
rg -n -C2 'pnpm/action-setup@v2' .github/workflows

Repository: ThinkInAIXYZ/deepchat

Length of output: 1946


🌐 Web query:

pnpm/action-setup v2 Node 24 compatibility

💡 Result:

pnpm/action-setup v2 is not compatible with Node.js 24. The official repository explicitly warns that "The v2 version of this action has stopped working with newer Node.js versions. Please, upgrade to the latest version to fix any issues." v2 uses 'node16' in its action.yml (updated from node12 in v2.2.4), while Node 24 requires 'node24' in the runner specification, as seen in GitHub's error messages for unsupported node versions like node22. Later versions (v4+, v5.0.0) have been updated to support Node.js 24 by changing to 'using: node24' and updating dependencies like @types/node to ^22+.

Citations:


🏁 Script executed:

# Check the build.yml setup-node configuration and FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 setting
rg -n 'setup-node|FORCE_JAVASCRIPT_ACTIONS_TO_NODE24|node-version' .github/workflows/build.yml -A 2 -B 1

Repository: ThinkInAIXYZ/deepchat

Length of output: 854


🏁 Script executed:

# Check release.yml and prcheck.yml for Node 24 settings
rg -n 'FORCE_JAVASCRIPT_ACTIONS_TO_NODE24|node-version.*24' .github/workflows/release.yml .github/workflows/prcheck.yml

Repository: ThinkInAIXYZ/deepchat

Length of output: 491


Upgrade pnpm/action-setup to v4 or later before forcing Node 24 actions.

FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 is enabled, but these jobs still use pnpm/action-setup@v2. The upstream action repository explicitly warns that v2 has stopped working with newer Node.js versions. v2 uses node16 runtime while Node 24 requires node24, causing the action to fail before pnpm install.

🔧 Proposed workflow update
-      - name: Setup pnpm
-        uses: pnpm/action-setup@v2
+      - name: Setup pnpm
+        uses: pnpm/action-setup@v5
         with:
           version: 10.13.1

Apply the same change to all three platform setup blocks in build.yml (lines 42, 110, 168). The same upgrade is also needed in release.yml and prcheck.yml.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 10.12.1
version: 10.13.1
- name: Setup pnpm
uses: pnpm/action-setup@v5
with:
version: 10.13.1
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/build.yml around lines 41 - 44, The workflow uses
pnpm/action-setup@v2 in the "Setup pnpm" steps while
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 is enabled; update those steps to use
pnpm/action-setup@v4 (or later) so the action runs on node24 runtime, and apply
the same change to all "Setup pnpm" blocks in this repo's workflow files
(build.yml, release.yml, prcheck.yml) to avoid the node16 vs node24 mismatch.
Ensure any occurrences of "pnpm/action-setup@v2" are replaced with
"pnpm/action-setup@v4" (or a later pinned version) in each workflow file.

Comment on lines 57 to +60
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 10.12.1
version: 10.13.1
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Expect no remaining v2 pnpm setup actions after the fix.
rg -n -C2 'pnpm/action-setup@v2' .github/workflows

Repository: ThinkInAIXYZ/deepchat

Length of output: 1946


🌐 Web query:

pnpm/action-setup v2 Node 24 compatibility

💡 Result:

pnpm/action-setup v2 is not compatible with Node.js 24. The official repository explicitly warns that "The v2 version of this action has stopped working with newer Node.js versions. Please, upgrade to the latest version to fix any issues." (sources 1,13,18). v2's action.yml specifies runs: using: node16 (source 16), meaning it runs on Node.js 16 runtime provided by GitHub Actions. With Node 20 deprecated and Node 24 becoming the default (as GitHub runners now support 'node24' per error messages in sources 2,9), v2 fails because 'node16' is outdated and incompatible with current runner environments. Newer versions (v4+, v5.0.0+) have been updated to use Node.js 24 (runs: using: node24), with explicit release notes: "Updated the action to use Node.js 24" (sources 3,10,11). Projects are actively upgrading from v2/v4 to v5+ for Node 24 compatibility (sources 4,19). Use pnpm/action-setup@v5 or later with actions/setup-node for Node 24: - uses: actions/setup-node@v4 with: node-version: 24 cache: pnpm - uses: pnpm/action-setup@v5 with: version: 10

Citations:


🏁 Script executed:

#!/bin/bash
# Get details on all pnpm/action-setup versions in use and their Node requirements
cd .github/workflows
echo "=== All pnpm/action-setup versions in workflows ==="
rg 'pnpm/action-setup@' -o
echo ""
echo "=== Node version configuration ==="
rg 'node-version|FORCE_JAVASCRIPT' .

Repository: ThinkInAIXYZ/deepchat

Length of output: 868


Upgrade pnpm/action-setup from v2 to v5 across all workflows.

pnpm/action-setup@v2 is incompatible with Node 24. The official repository explicitly warns that v2 has stopped working with newer Node.js versions and must be upgraded. v2 runs on the node16 runtime which is no longer supported; v5+ uses node24 and is compatible with the Node 24.14.1 runners configured in your workflows.

This issue affects all workflows with FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true:

  • .github/workflows/prcheck.yml (line 58)
  • .github/workflows/build.yml (lines 42, 110, 168)
  • .github/workflows/release.yml (lines 137, 209, 268)
🔧 Required update for all occurrences
       - name: Setup pnpm
-        uses: pnpm/action-setup@v2
+        uses: pnpm/action-setup@v5
         with:
           version: 10.13.1
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 10.12.1
version: 10.13.1
- name: Setup pnpm
uses: pnpm/action-setup@v5
with:
version: 10.13.1
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/prcheck.yml around lines 57 - 60, Replace usages of the
GitHub Action reference "pnpm/action-setup@v2" with "pnpm/action-setup@v5"
everywhere this workflow variable is used (all workflows that set
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true), e.g. the step that currently names
"Setup pnpm" and uses pnpm/action-setup@v2; update those occurrences in the same
steps in the other workflows to ensure the action runs on node24-compatible
runners.

Comment on lines 136 to +139
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 10.12.1
version: 10.13.1
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Expect no remaining v2 pnpm setup actions after the fix.
rg -n -C2 'pnpm/action-setup@v2' .github/workflows

Repository: ThinkInAIXYZ/deepchat

Length of output: 1946


🏁 Script executed:

#!/bin/bash
# Check for Node 24 forcing in release.yml around line 18
head -30 .github/workflows/release.yml | cat -n

Repository: ThinkInAIXYZ/deepchat

Length of output: 964


🌐 Web query:

pnpm/action-setup v2 Node 24 compatibility issues deprecated

💡 Result:

pnpm/action-setup v2 has compatibility issues with Node.js 24 and is effectively deprecated. The official repository explicitly warns: "The v2 version of this action has stopped working with newer Node.js versions. Please, upgrade to the latest version to fix any issues." This stems from v2 using an outdated Node.js runtime (originally node12/node16), which GitHub Actions no longer supports fully after deprecating older Node versions like node16 (EOL) and node20. With Node 24 now the default runner runtime as of 2026, v2 fails due to runtime mismatches, fetch API issues, and invalid 'using' directives in action.yml. Specific issues include: - ERR_PNPM_META_FETCH_FAIL and ERR_INVALID_THIS errors from outdated dependencies like node-fetch on EOL Node versions. - GitHub warnings: "Node.js 20/16 actions are deprecated... pnpm/action-setup@v2". - Failures when GitHub forces node24, as v2's action.yml specifies unsupported runtimes. Upgrade to the latest version (v6+ as of April 2026), which uses 'using: node24', supports pnpm 11, and resolves these. Example workflow: - uses: pnpm/action-setup@v6 with: version: 10 # or omit to use package.json packageManager Note: This action installs pnpm but does not set up Node.js—use actions/setup-node@v4 separately with node-version: 24.

Citations:


🏁 Script executed:

#!/bin/bash
# Check the current setup-node action version used in release.yml
rg -n 'setup-node' .github/workflows/release.yml -A2 -B1

Repository: ThinkInAIXYZ/deepchat

Length of output: 454


Upgrade pnpm/action-setup to v6 for Node 24 compatibility.

The release jobs force JavaScript actions to Node 24 but still run pnpm/action-setup@v2, which has stopped working with newer Node.js versions. A release tag could fail at pnpm setup before dependencies are installed.

🔧 Proposed workflow update
-      - name: Setup pnpm
-        uses: pnpm/action-setup@v2
+      - name: Setup pnpm
+        uses: pnpm/action-setup@v6
         with:
           version: 10.13.1

Apply the same change to all release build jobs.

Also applies to: 208-211, 267-270

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/release.yml around lines 136 - 139, Update all occurrences
of the pnpm action in the release workflow to use pnpm/action-setup@v6 (replace
pnpm/action-setup@v2) so the release jobs that force Node 24 can successfully
set up pnpm; locate the action usage lines like "uses: pnpm/action-setup@v2" in
the release.yml (including the instances around the shown diff and the other
occurrences you noted) and change them to "uses: pnpm/action-setup@v6" for each
release build job.

Comment on lines 5 to 9
## 前置要求

- Node.js `>= 20.19`
- Node.js `24.14.1` recommended
- pnpm `>= 10.11`
- Git
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Mark Node 24.14.1 as required, not just recommended.

package.json now requires >=24.14.1 <25, so this prerequisite should not read as optional guidance.

📝 Proposed doc wording
-- Node.js `24.14.1` recommended
+- Node.js `>= 24.14.1 < 25` required (`24.14.1` recommended)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/guides/getting-started.md` around lines 5 - 9, Update the prerequisite
under the "## 前置要求" section to mark Node.js 24.14.1 as required (not
recommended) to match package.json's engine range (>=24.14.1 <25); change the
bullet "- Node.js `24.14.1` recommended" to a required statement that explicitly
notes the supported range (e.g., "Node.js >=24.14.1 <25 (required)") so the docs
and package.json remain consistent.

Comment thread package.json
"type": "module",
"engines": {
"node": ">=20.19.0",
"node": ">=24.14.1 <25",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Expect every --type node runtime injection to include the Node 24.14.1 runtime pin.
rg -n -C1 'tiny-runtime-injector --type node' package.json

Repository: ThinkInAIXYZ/deepchat

Length of output: 2817


🌐 Web query:

tiny-runtime-injector npm --type node default version documentation

💡 Result:

tiny-runtime-injector is a CLI/library for downloading lightweight runtimes like Node.js, Bun, Python for projects such as Electron apps. Install via npm install tiny-runtime-injector. Usage for Node: npx tiny-runtime-injector --type node --runtime-version v24.12.0 --dir ./runtime/node (example version shown; no explicit default version found in available sources). Official documentation is in the GitHub repository at https://github.com/zerob13/tiny-runtime-injector, which includes examples for different runtimes. It is a Node.js CLI tool (--type node specifies Node runtime). No npm registry page found in searches, suggesting it may not be published to npm or is very new/low-profile (repo from 2025).

Citations:


🏁 Script executed:

# Check if there's any configuration or other context about runtime versions
git ls-files | grep -E '(\.npmrc|\.npm|runtime|config)' | head -20

Repository: ThinkInAIXYZ/deepchat

Length of output: 896


🏁 Script executed:

# Check if there are any other references to tiny-runtime-injector in the codebase
rg -i 'tiny-runtime-injector' --type-list | head -5
rg -i 'tiny-runtime-injector' -g '*.md' -g '*.json' -g '*.js'

Repository: ThinkInAIXYZ/deepchat

Length of output: 3185


🏁 Script executed:

# Check if there's any reference to v22.9.0 in the codebase related to runtime
rg 'v22\.9\.0|22\.9\.0' -g '*.md' -g '*.json' -g '*.js'

Repository: ThinkInAIXYZ/deepchat

Length of output: 47


🏁 Script executed:

# Check for any documentation or comments about tiny-runtime-injector defaults
rg -i 'tiny-runtime|default.*node|22\.9|24\.14' docs/ -g '*.md' | head -20

Repository: ThinkInAIXYZ/deepchat

Length of output: 127


🌐 Web query:

site:github.com/zerob13/tiny-runtime-injector default Node version

💡 Result:

There is no universal "default" Node.js version, as it depends on the installation method, operating system, and package manager. A recent GitHub project from March 2025 lists Node.js v24.12.0 as its default runtime version.

Citations:


Pin the Node runtime version to 24.14.1 in all installRuntime commands.

The build/release workflows call installRuntime:*, but every tiny-runtime-injector --type node invocation omits a runtime version. Without explicit pinning, the tool may download a mismatched Node runtime instead of the 24.14.1 specified in engines.node and recommended in documentation.

🔧 Proposed runtime alignment
-    "installRuntime": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.9.18 && npx -y tiny-runtime-injector --type node --dir ./runtime/node && npx -y tiny-runtime-injector --type ripgrep --dir ./runtime/ripgrep && npx -y tiny-runtime-injector --type rtk --dir ./runtime/rtk",
+    "installRuntime": "npx -y tiny-runtime-injector --type uv --dir ./runtime/uv --runtime-version 0.9.18 && npx -y tiny-runtime-injector --type node --dir ./runtime/node --runtime-version 24.14.1 && npx -y tiny-runtime-injector --type ripgrep --dir ./runtime/ripgrep && npx -y tiny-runtime-injector --type rtk --dir ./runtime/rtk",

Apply the same --runtime-version 24.14.1 addition to each platform-specific --type node command on Lines 53–58.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package.json` at line 9, The installRuntime commands calling
tiny-runtime-injector with --type node are missing an explicit runtime version;
update each invocation of tiny-runtime-injector --type node in the
installRuntime:* scripts to include --runtime-version 24.14.1 so the runtime
matches the engines.node value (24.14.1) in package.json; look for the
installRuntime:* script entries that call tiny-runtime-injector and append
--runtime-version 24.14.1 to each platform-specific --type node invocation.

@zerob13 zerob13 merged commit b5e24ea into dev Apr 23, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants