-
Notifications
You must be signed in to change notification settings - Fork 657
chore(toolchain): align Electron 40 with Node 24 #1527
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -51,13 +51,13 @@ jobs: | |||||||||||||||||||
| - name: Setup Node.js | ||||||||||||||||||||
| uses: actions/setup-node@v6 | ||||||||||||||||||||
| with: | ||||||||||||||||||||
| node-version: '22.13.1' | ||||||||||||||||||||
| node-version: '24.14.1' | ||||||||||||||||||||
| package-manager-cache: false | ||||||||||||||||||||
|
|
||||||||||||||||||||
| - name: Setup pnpm | ||||||||||||||||||||
| uses: pnpm/action-setup@v2 | ||||||||||||||||||||
| with: | ||||||||||||||||||||
| version: 10.12.1 | ||||||||||||||||||||
| version: 10.13.1 | ||||||||||||||||||||
|
Comment on lines
57
to
+60
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Expect no remaining v2 pnpm setup actions after the fix.
rg -n -C2 'pnpm/action-setup@v2' .github/workflowsRepository: ThinkInAIXYZ/deepchat Length of output: 1946 🌐 Web query:
💡 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
This issue affects all workflows with
🔧 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
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||
|
|
||||||||||||||||||||
| - name: Install dependencies | ||||||||||||||||||||
| run: pnpm install | ||||||||||||||||||||
|
|
||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -130,13 +130,13 @@ jobs: | |
| - name: Setup Node.js | ||
| uses: actions/setup-node@v6 | ||
| with: | ||
| node-version: '22.13.1' | ||
| node-version: '24.14.1' | ||
| package-manager-cache: false | ||
|
|
||
| - name: Setup pnpm | ||
| uses: pnpm/action-setup@v2 | ||
| with: | ||
| version: 10.12.1 | ||
| version: 10.13.1 | ||
|
Comment on lines
136
to
+139
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Expect no remaining v2 pnpm setup actions after the fix.
rg -n -C2 'pnpm/action-setup@v2' .github/workflowsRepository: 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 -nRepository: ThinkInAIXYZ/deepchat Length of output: 964 🌐 Web query:
💡 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 -B1Repository: ThinkInAIXYZ/deepchat Length of output: 454 Upgrade The release jobs force JavaScript actions to Node 24 but still run 🔧 Proposed workflow update- - name: Setup pnpm
- uses: pnpm/action-setup@v2
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v6
with:
version: 10.13.1Apply the same change to all release build jobs. Also applies to: 208-211, 267-270 🤖 Prompt for AI Agents |
||
|
|
||
| - name: Install dependencies | ||
| run: pnpm install | ||
|
|
@@ -202,13 +202,13 @@ jobs: | |
| - name: Setup Node.js | ||
| uses: actions/setup-node@v6 | ||
| with: | ||
| node-version: '22.13.1' | ||
| node-version: '24.14.1' | ||
| package-manager-cache: false | ||
|
|
||
| - name: Setup pnpm | ||
| uses: pnpm/action-setup@v2 | ||
| with: | ||
| version: 10.12.1 | ||
| version: 10.13.1 | ||
|
|
||
| - name: Install dependencies | ||
| run: pnpm install | ||
|
|
@@ -261,13 +261,13 @@ jobs: | |
| - name: Setup Node.js | ||
| uses: actions/setup-node@v6 | ||
| with: | ||
| node-version: '22.13.1' | ||
| node-version: '24.14.1' | ||
| package-manager-cache: false | ||
|
|
||
| - name: Setup pnpm | ||
| uses: pnpm/action-setup@v2 | ||
| with: | ||
| version: 10.12.1 | ||
| version: 10.13.1 | ||
|
|
||
| - name: Install dependencies | ||
| run: pnpm install | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,7 +4,7 @@ | |
|
|
||
| ## 前置要求 | ||
|
|
||
| - Node.js `>= 20.19` | ||
| - Node.js `24.14.1` recommended | ||
| - pnpm `>= 10.11` | ||
| - Git | ||
|
Comment on lines
5
to
9
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Mark Node 24.14.1 as required, not just recommended.
📝 Proposed doc wording-- Node.js `24.14.1` recommended
+- Node.js `>= 24.14.1 < 25` required (`24.14.1` recommended)🤖 Prompt for AI Agents |
||
| - 一个支持 TypeScript / Vue 的编辑器 | ||
|
|
@@ -157,4 +157,3 @@ pnpm run lint:architecture | |
| - `docs/archives/legacy-agentpresenter-architecture.md` | ||
| - `docs/archives/legacy-agentpresenter-flows.md` | ||
| - `docs/archives/thread-presenter-migration-plan.md` | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,3 @@ | ||
| [tools] | ||
| node = "24" | ||
| node = "24.14.1" | ||
| pnpm = "10.13.1" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,7 +6,7 @@ | |
| "author": "ThinkInAIXYZ", | ||
| "type": "module", | ||
| "engines": { | ||
| "node": ">=20.19.0", | ||
| "node": ">=24.14.1 <25", | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 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.jsonRepository: ThinkInAIXYZ/deepchat Length of output: 2817 🌐 Web query:
💡 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 -20Repository: 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 -20Repository: ThinkInAIXYZ/deepchat Length of output: 127 🌐 Web query:
💡 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 The build/release workflows call 🔧 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 🤖 Prompt for AI Agents |
||
| "pnpm": ">=10.11.0" | ||
| }, | ||
| "packageManager": "pnpm@10.13.1+sha512.37ebf1a5c7a30d5fabe0c5df44ee8da4c965ca0c5af3dbab28c3a1681b70a256218d05c81c9c0dcf767ef6b8551eb5b960042b9ed4300c59242336377e01cfad", | ||
|
|
@@ -83,7 +83,7 @@ | |
| "@modelcontextprotocol/sdk": "^1.28.0", | ||
| "ai": "^6.0.157", | ||
| "axios": "^1.13.6", | ||
| "better-sqlite3-multiple-ciphers": "12.8.0", | ||
| "better-sqlite3-multiple-ciphers": "12.9.0", | ||
| "cheerio": "^1.2.0", | ||
| "chokidar": "^5.0.0", | ||
| "compare-versions": "^6.1.1", | ||
|
|
@@ -142,7 +142,7 @@ | |
| "@tiptap/vue-3": "^2.11.7", | ||
| "@types/better-sqlite3": "^7.6.13", | ||
| "@types/mime-types": "^3.0.1", | ||
| "@types/node": "^22.19.15", | ||
| "@types/node": "^24.12.2", | ||
| "@types/xlsx": "^0.0.35", | ||
| "@typescript/native-preview": "7.0.0-dev.20260115.1", | ||
| "@unovis/ts": "1.6.4", | ||
|
|
@@ -159,8 +159,8 @@ | |
| "clsx": "^2.1.1", | ||
| "cross-env": "^10.1.0", | ||
| "dayjs": "^1.11.19", | ||
| "electron": "^39.8.5", | ||
| "electron-builder": "26.0.12", | ||
| "electron": "^40.9.2", | ||
| "electron-builder": "26.9.0", | ||
| "electron-vite": "5.0.0", | ||
| "jsdom": "^26.1.0", | ||
| "katex": "^0.16.27", | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
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/nodeto ^22+.Citations:
🏁 Script executed:
Repository: ThinkInAIXYZ/deepchat
Length of output: 854
🏁 Script executed:
Repository: ThinkInAIXYZ/deepchat
Length of output: 491
Upgrade
pnpm/action-setupto v4 or later before forcing Node 24 actions.FORCE_JAVASCRIPT_ACTIONS_TO_NODE24is enabled, but these jobs still usepnpm/action-setup@v2. The upstream action repository explicitly warns that v2 has stopped working with newer Node.js versions. v2 usesnode16runtime while Node 24 requiresnode24, causing the action to fail beforepnpm install.🔧 Proposed workflow update
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
🤖 Prompt for AI Agents