You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
bug(tests): installer-posix-bootstrap and voice-session fail on Node 22, which engines still supports; CI only runs Node 24 #3229
I searched open and closed issues and did not find a report of this problem.
I reviewed this report and removed credentials, tokens, private paths, hostnames, and other sensitive data.
Problem
package.json declares engines.node: "^22.19.0 || >=23.6.0", but every CI job pins node-version: "24". On Node 22 two unit test files fail deterministically, so local pnpm test exits 1 for contributors on a supported Node while CI stays green:
tests/installer-posix-bootstrap.test.ts — valid canonical ranges, including safe integer floors, still start the wizard fails for the range ^1.0.0 || >=23.6.0 with Node requirement rejected, although the test asserts nodeRequirementSatisfied(range, "24.21.0") and installs a fake Node. The bootstrap appears to validate the real host Node (22.x) instead of the fixture's.
tests/voice-session.test.ts — all 8 tests (plus one subtest) are cancelled with Promise resolution is still pending but the event loop has already resolved.
Both files pass on Node 24.22.0 in the same checkout and environment. This is the same class as #1436 and #2438 (Node 22-only test failures hidden by a Node 24-only CI). Fixing these tests and adding Node 22 to the CI matrix would stop the class from recurring; alternatively engines should stop advertising Node 22.
Steps to reproduce
Check out main (b1af8a493) on Linux with Node 22.22.2.
Run, with an isolated home so host state does not interfere: HOME=$(mktemp -d) node --experimental-strip-types --test tests/installer-posix-bootstrap.test.ts tests/voice-session.test.ts
Observe 1 failure and 9 cancellations.
Repeat step 2 with Node 24.22.0: everything passes.
Expected and actual behavior
Expected: the unit suite passes on every Node version engines declares, and CI exercises the lowest supported major.
Actual: on Node 22.22.2, installer-posix-bootstrap has 1 failure and voice-session has 9 cancelled tests; CI only runs Node 24, so this is not caught.
not ok - valid canonical ranges, including safe integer floors, still start the wizard
"^1.0.0 || >=23.6.0": Node requirement rejected
Bootstrap: Prerequisite acquisition or wizard child failed
1 !== 0
not ok - cancel discards the transcript, ignores late results and leaves no worker
failureType: 'cancelledByParent'
error: 'Promise resolution is still pending but the event loop has already resolved'
(same cancellation for the remaining voice-session tests)
Activity