Repository navigation
Run Node-based CI on supported Node.js 22 - #19
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Result
Node-based CI now uses the supported Node.js 22 line. Every
actions/setup-nodestep asks GitHub Actions for the newest available 22.x patch.This removes Node.js 20 from these CI jobs. Node.js 20 is end of life and receives no security fixes. Node.js 22.23.4 fixes the October 21, 2026 security release issues, including CVE-2026-111497.
Files changed
.github/workflows/framework-smoke.yml: Node20→22; addedcheck-latest: true..github/workflows/cross-sdk.yml: both Node20steps →22; addedcheck-latest: trueto both steps..github/workflows/cross-sdk-smoke.yml: kept Node22; addedcheck-latest: true.No application code changed. There are no Node Docker images or repository Node version files.
What these jobs run
framework-smoke.ymlandcross-sdk.ymlinstall, build, and run the TypeScript ACP SDK from its configured peer commit.cross-sdk-smoke.ymlinstalls the pinned Gemini, Claude, and Codex ACP npm agents.binding.gypaddon. It uses platform packages for tools such as esbuild and Rolldown.@agentclientprotocol/claude-agent-acp@0.85.0requires Node 22 or later.Major-upgrade checks
No checked Node 22 breaking change applies to this code.
Node 22 removes JSON import assertions such as
assert { type: 'json' }. The checked TypeScript SDK and Java integration code do not use that syntax. They also do not use the checked internal APIprocess.binding.A local check used exact Node.js
v22.23.4and npm10.9.9against the current TypeScript SDK peer:npm ci --no-audit --no-fund: passed.npm rebuild: passed.NODE_OPTIONS=--pending-deprecation npm run build: passed.NODE_OPTIONS=--pending-deprecation npm test: passed, with 20 files and 490 tests.whatwg-encoding@2.0.0.Baseline and after CI results
Baseline on
main:Framework smoke matrixrun 39751258183: failed.setup-nodeacquired Node20.20.2. The TypeScript peer install reportedEBADENGINEbecause current packages require Node 22. The run ended with 14 failed scenarios.Cross-SDK and load scenariosrun 39755231642: failed. The TypeScript jobs used Node20.20.2and reported the sameEBADENGINEwarnings. The TypeScript prepare job and its three scenario jobs failed. Other Rust and Python jobs also failed.Real-agent smokehad no recentmainrun. It runs only when started manually.After this change:
build,contention,errorprone,java-java,lincheck (acp-core), andlincheck (acp-http-core).Framework smoke matrixrun 39898264976:Resolved as '22.23.4'. It still ended with the same 14 failed scenarios as the baseline. The existing failure is that the current TypeScript peer no longer creates the expecteddist/acp.jsfile.Cross-SDK and load scenariosrun 39898267280: every changed Node step loggedResolved as '22.23.4'. The TypeScript peer install no longer reportedEBADENGINE. The prepare job and three TypeScript scenario jobs still failed because the current TypeScript peer no longer creates the expecteddist/acp.jsfile. This is the same failure as the baseline.Real-agent smokerun 39898269487:Resolved as '22.23.4'and passed for the selected Claude agent in keyless mode.DEP0169warning from pinned GitHub actions. A same-time unchanged-maincontrol run 39899696888 showed the same warning beforesetup-noderan. It is not caused by the Node 22 job runtime.The three affected workflows do not start automatically for pull requests. They were started manually on this branch. After merge, confirm the next scheduled
Framework smoke matrixandCross-SDK and load scenariosruns. StartReal-agent smokemanually because it has no schedule.Risk and rollback
Risk is high compared with a patch-only update because this changes Node.js 20 to Node.js 22. The effect is limited to CI and integration-test tools. It does not change the Java SDK runtime or published application code.
To roll back, revert this pull request. Node.js 20 is vulnerable and end of life, so use that rollback only for a short investigation.