Skip to content

fix: bump CI Node floor to 24, declare package.json engines - #115

Merged
cipher813 merged 1 commit into
mainfrom
fix/node-24-eol-node-20
Sep 9, 2026
Merged

fix: bump CI Node floor to 24, declare package.json engines#115
cipher813 merged 1 commit into
mainfrom
fix/node-24-eol-node-20

Conversation

@cipher813

Copy link
Copy Markdown
Contributor

What & why

.github/workflows/ci.yml:75 pinned node-version: 20. Node 20 left maintenance 2026-04-30.

Measured cost of the same pin elsewhere: vires CI on Node 20 made vires-PR195 (jsdom 29 → 30) fail with 27 module-load errors (TypeError: webidl.util.markAsUncloneable is not a function) plus four coverage-threshold errors at 0% — a dependency bump that presented as a test regression. jsdom@30 declares node: ^22.22.2 || ^24.15.0 || >=26.0.0, excluding 23 and 25.

Addresses telos-ops-I41.

Changes

  • .github/workflows/ci.yml: node-version: 20node-version: "24" (current active LTS)
  • web/package.json: added engines.node: ">=24.15.0" so the floor is declared where the package can see it, not only in CI

Repo has a single Node workflow (web job in ci.yml) and a single package.json (web/); both are covered. grep -rn 'node-version' .github/workflows/ now returns only "24".

Test plan (measured locally on Node v26.5.0, satisfying >=24.15.0)

  • .venv/bin/python3 -m pytest tests/ -q483 passed, 1 skipped
  • cd web && npm ci → clean install
  • npx tsc --noEmit → exit 0
  • npx eslint . → exit 0
  • npm run build (Next.js 16.3.4, Turbopack) → succeeded, static pages generated

Prepared by: Claude Sonnet 5 via Claude Code

Node 20 left maintenance 2026-04-30. Same pin on `vires` made a jsdom
29→30 bump fail with 27 module-load errors plus a 0%-coverage gate
failure — a dependency bump reading as a test regression, since
jsdom@30 requires node ^22.22.2 || ^24.15.0 || >=26.0.0.

- ci.yml: node-version 20 -> "24" (current active LTS)
- web/package.json: engines.node ">=24.15.0" so the floor is declared
  where the package can see it, not only in CI

telos-ops-I41

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0195gwKbV5G2zycACkZ5Ru69
@cipher813
cipher813 marked this pull request as draft September 9, 2026 22:12
@cipher813
cipher813 marked this pull request as ready for review September 9, 2026 22:14
@cipher813
cipher813 merged commit a11fd4d into main Sep 9, 2026
13 checks passed
@cipher813
cipher813 deleted the fix/node-24-eol-node-20 branch September 9, 2026 22:14
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.

1 participant