GitHub Actions is deprecating Node.js 20 runners — every workflow run currently emits this annotation:
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, astral-sh/setup-uv@v3. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026.
See https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/.
Affected workflows
All seven workflows in this repo use `actions/checkout@v4` and most use `astral-sh/setup-uv@v3`:
- `.github/workflows/release.yml`
- `.github/workflows/lint.yml`
- `.github/workflows/test.yml`
- `.github/workflows/bench.yml`
- `.github/workflows/e2e.yml`
- `.github/workflows/docs.yml`
- `.github/workflows/agents-md-sync.yml`
Resolution paths (in order of preference)
- Wait for upstream major-version bumps. Both `actions/checkout` and `astral-sh/setup-uv` will publish new major versions that ship with Node.js 24 binaries. When they do, bump the pins (`@v5`, `@v4`, etc.) across all seven workflows in one PR. This is the cleanest path; expected before June 2026.
- Opt into Node.js 24 early by setting `FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true` either as a runner env var or per-workflow. Validates compatibility before the forced flip on 2026-06-02.
Deadline
- 2026-06-02: GitHub forces Node.js 24 for all action runs. Workflows that haven't migrated may emit warnings or break.
- 2026-09-16: Node.js 20 is removed from runners entirely. Workflows pinned to Node 20-only action versions will fail outright.
Why deferred from v1
The deprecation is informational at v1.0.0 ship time (2026-05-06); the forced flip is ~4 weeks out. v1.0.0 publishes successfully on the current pins.
Acceptance
- All seven workflows run on Node.js 24 without the deprecation annotation.
- Tested via a no-op PR that bumps the action pins and confirms green CI.
GitHub Actions is deprecating Node.js 20 runners — every workflow run currently emits this annotation:
See https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/.
Affected workflows
All seven workflows in this repo use `actions/checkout@v4` and most use `astral-sh/setup-uv@v3`:
Resolution paths (in order of preference)
Deadline
Why deferred from v1
The deprecation is informational at v1.0.0 ship time (2026-05-06); the forced flip is ~4 weeks out. v1.0.0 publishes successfully on the current pins.
Acceptance