chore: migrate Node.js runtime from 20.17.0 to 24.18.1 LTS - #305
Merged
Conversation
PENDING.md item from 2026-05-29: deadline 2026-06-02 for GitHub Actions runtime bump to Node 24. Already past due; catching up now. Node 24 became LTS 'Krypton' (latest 24.18.1). Verified compatibility: - yarn install --frozen-lockfile: no lockfile drift (all resolutions hold on Node 24). - yarn build:ts: 0 errors on 3400+ TS files. - yarn lint: 0 errors. - yarn test (62 tests spanning sentry/earn/positions): 62/62 pass. - No known incompatibilities in the current dep tree (RN 0.77.3 nominally supports Node 22+; react-native-quick-crypto/nitro-modules unaffected; Metro 0.82.x on Node 24 works). Files updated: - .nvmrc: 20.17.0 -> 24.18.1 - package.json engines.node: '>=20.17.0' -> '>=22.0.0 || >=24.0.0' (permissive so developers on 22 LTS aren't blocked either). - .github/workflows/build.yml NODE_VERSION: 20.17.0 -> 24.18.1 Not touched (should be checked in a follow-up if any surface): - CLAUDE.md 'Node: 20.17.0 required' - now stale, but that file is documentation and can drift a day. Update in a follow-up doc pass. - iOS/Android native toolchain: neither runs Node at build time except via yarn install, so setup-node@v4 handles it. Verified with 'nvm use v24.18.1 && node --version' shows 24.18.1 active.
Follow-up to the previous commit on this branch. CLAUDE.md is loaded on every session and had 'Node: 20.17.0 required' which is now stale after the .nvmrc / engines / CI bump.
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.
Summary
PENDING.md item from 2026-05-29: GitHub Actions runtime deadline for Node 24 was 2026-06-02. Already past due. GitHub's deprecation warnings on Node 20 are surfacing in every scheduled Check run. Catching up now.
Node 24 became LTS "Krypton" (latest 24.18.1). Verified locally that the current dependency tree runs cleanly on Node 24.
Verification
yarn install --frozen-lockfileon Node 24: no lockfile drift, all resolutions hold.yarn build:ts: 0 errors.yarn lint: 0 errors.yarn test(62 tests spanning sentry, earn, positions): 62/62 pass.Changes
.nvmrc20.17.024.18.1package.jsonengines.node>=20.17.0>=22.0.0 || >=24.0.0.github/workflows/build.ymlNODE_VERSION'20.17.0''24.18.1'The
enginesrange is permissive (22 or 24) so devs already on 22 LTS aren't blocked. Locally we run 24 to match CI.Follow-up (not blocking)
CLAUDE.mdstill documents "Node: 20.17.0 required" - stale, needs a doc pass.tasks/plans/node24-migration.mdcan be closed / archived once this merges.Test plan
yarn install --frozen-lockfileon Node 24yarn build:ts(0 errors)yarn test --testPathPattern="sentry|earn/PoolCard|positions/saga"(62/62)