chore(node): update Node.js version to 24.20.0 - #10555
Conversation
PR Summary by QodoUpdate project Node.js baseline to 24.18.1 across CI, Docker, and workspace config
AI Description
Diagram
High-Level Assessment
Files changed (8)
|
Code Review by Qodo
1. Dangling CircleCI job refs
|
|
|
||
| # ========== Docker Jobs ========== | ||
| docker_build_node_22: | ||
| docker_build_node_24: |
There was a problem hiding this comment.
1. Dangling circleci job refs 🐞 Bug ☼ Reliability
CircleCI workflow harmony_deploy_manual still invokes docker_build_node_22/docker_non_root_build_node_22/server_docker_build_node_22, but this PR renames those jobs to *_node_24, leaving the manual deploy workflow referencing undefined jobs and failing configuration validation/execution.
Agent Prompt
## Issue description
CircleCI jobs were renamed from `*_node_22` to `*_node_24`, but the `harmony_deploy_manual` workflow still references the old job names, which no longer exist.
## Issue Context
The renamed job definitions exist as `docker_build_node_24`, `docker_non_root_build_node_24`, and `server_docker_build_node_24`.
## Fix Focus Areas
- .circleci/config.yml[1636-1676]
- .circleci/config.yml[1202-1248]
## Implementation notes
- In `harmony_deploy_manual`, replace:
- `docker_build_node_22` -> `docker_build_node_24`
- `docker_non_root_build_node_22` -> `docker_non_root_build_node_24`
- `server_docker_build_node_22` -> `server_docker_build_node_24`
- Update `requires:` references accordingly (e.g., `server_docker_build_node_24` should require `docker_build_node_24`).
- Run CircleCI config validation after the change.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
|
Code review by qodo was updated up to the latest commit aaaf52a |
Prettier incorrectly escapes JSX comment markers (\`/* */\` → \`\/* *\/\`) inside these two MDX files' code blocks, breaking the comment syntax. Excludes both files from prettier and fixes the existing bad escaping. Split out of the Node 24 branch (#10555), where it was an unrelated change picked up along the way.
| "nodeVersion": "24.18.1", | ||
| "engineStrict": true, |
There was a problem hiding this comment.
1. Node engines not aligned 🐞 Bug ☼ Reliability
The PR standardizes the project toolchain on Node 24.18.1 (CI images and workspace nodeVersion), but the root package.json still declares engines.node as ">=22.13.0", so tools/users may continue running Node 22 despite the project moving to Node 24. This leaves the supported Node version ambiguous and increases the chance of local/CI environment drift.
Agent Prompt
## Issue description
The repo is now configured to build/test with Node 24.18.1, but `package.json` still advertises Node 22 compatibility (`engines.node: ">=22.13.0"`). This makes it easy for developers/automation to keep using Node 22 even though CI/workspace tooling is pinned to Node 24.
## Issue Context
- CI and workspace config are updated to Node `24.18.1`.
- Bit’s dependency installer passes `nodeVersion`/`engineStrict` from workspace config down into package-manager install options; however, the repository’s public/standard compatibility contract for developers is typically the root `package.json` `engines` field.
## Fix Focus Areas
- package.json[1-8]
- workspace.jsonc[729-734]
### Suggested change
Update `package.json -> engines.node` to reflect the intended supported runtime (e.g. `>=24.18.1` or `^24.18.0`), so local environments are forced to match the Node version this PR standardizes on.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
|
Code review by qodo was updated up to the latest commit 6ec1d09 |
|
Code review by qodo was updated up to the latest commit 12f9871 |
|
Code review by qodo was updated up to the latest commit 0069657 |
|
Code review by qodo was updated up to the latest commit c1f1900 |
| "@pnpm/config.nerf-dart": "1.0.1" | ||
| }, | ||
| "nodeVersion": "22.22.0", | ||
| "nodeVersion": "24.18.1", |
There was a problem hiding this comment.
1. E2e stays on node 22 🐞 Bug ☼ Reliability
The workspace now resolves dependencies for Node 24.18.1, but the GitHub Actions workflow exclusively running the offloaded commands/doctor/flows E2E suites still sets up Node 22.22.0. Those suites therefore cannot catch Node-24-specific runtime regressions even though they are excluded from CircleCI's E2E run.
Agent Prompt
## Issue description
The offloaded GitHub Actions E2E suites still run on Node 22.22.0 while the workspace dependency target and primary CI runtime have moved to Node 24.18.1.
## Issue Context
Update the GitHub Actions setup-node pin so these suites validate the runtime this PR adopts.
## Fix Focus Areas
- .github/workflows/e2e-tests.yml[42-45]
- workspace.jsonc[731-732]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
|
Code review by qodo was updated up to the latest commit bbf91ab |
|
Code review by qodo was updated up to the latest commit bb963fc |
e2e_test CI failure investigationDug into the The
|
…rr assertions Node 24's DEP0169 url.parse() warning contains the word "errors" in its message, which false-positives the ui-start.e2e.ts "clean stderr" check. Wires up the previously-unused shouldIgnoreHttpError() to filter Node's own (node:PID) [DEPxxx] warning lines.
| this.stderr += str | ||
| .split('\n') | ||
| .filter((line) => !this.shouldIgnoreHttpError(line)) | ||
| .join('\n'); |
There was a problem hiding this comment.
1. Chunked warnings evade filtering 🐞 Bug ☼ Reliability
The stderr handler filters each arbitrary stream chunk independently, so a Node warning split across chunks may not match the ignore pattern and its errors text still fails the clean-startup assertion. Splitting and rejoining every chunk also discards trailing newlines, corrupting adjacent stderr output.
Agent Prompt
## Issue description
The stderr filter processes each stream chunk as if it contains complete lines. Since chunks can split warning lines at arbitrary positions, ignored Node warnings can leak into `this.stderr`, and rejoining each chunk can remove line boundaries.
## Issue Context
`this.stderr` is checked for error-related words while the raw `stderrData` remains available for diagnostics. Filtering should therefore preserve complete-line semantics regardless of stream chunk boundaries.
## Fix Focus Areas
- e2e/http-helper.ts[103-118]
- e2e/http-helper.ts[226-231]
- e2e/harmony/ui-start.e2e.ts[58-62]
- e2e/harmony/ui-start.e2e.ts[128-130]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
|
Code review by qodo was updated up to the latest commit f9e58c2 |
Update Node.js version to 24.20.0 (latest Node 24 LTS) across the project. This ensures compatibility with the latest features and security patches.
Replaces #9933 (branch renamed from
chore/update-nodejs-24-6-0tochore/update-nodejs-24and version bumped from 24.13.0 to 24.20.0).