Skip to content

Support Node.js 24 in TypeScript packages - #1183

Merged
strickvl merged 3 commits into
zenml-io:developfrom
thossullivan:support/node-24
Sep 24, 2026
Merged

strickvl merged 3 commits into
zenml-io:developfrom
thossullivan:support/node-24

Conversation

@thossullivan

@thossullivan thossullivan commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

What changed?

  • Add Node 24 to the supported engine range for the TypeScript packages and examples.
  • Exercise both Node 24.0.0 and the current Node 24.x release in CI.
  • Update the ticket-resolver preflight, compatibility tests, documentation, and changelog fragment.
  • Keep .node-version and @types/node on Node 22 so Node 22 remains the build and type-definition floor.

Why?

Node 24 was omitted from the supported TypeScript runtimes. The packages and examples pass the existing validation lane on Node 24 without requiring runtime code changes.

Closes #1144.

Release context

The three TypeScript packages continue to version and release together. This changes engine metadata and compatibility coverage only; it does not change dependencies or the lockfile.

Reviewer Notes

The supported range remains deliberately explicit: Node 22.22+, Node 24, and Node 26. The new CI job runs the same service-free package validation used for Node 26 at both the Node 24 floor (24.0.0) and the current 24.x release. Node 22 stays pinned in .node-version and @types/node to prevent builds from depending on APIs unavailable at the oldest supported runtime.

The ticket-resolver example has the only runtime preflight that encodes the supported Node majors, so its acceptance/rejection cases now cover Node 24 as well.

Reproduction

With Node 24 active from the repository root:

pnpm install --frozen-lockfile
pnpm run generate:check
pnpm run lint
pnpm run typecheck
pnpm run test:built
pnpm run pack:check:built
pnpm --filter @zenml-io/kitaru-example-vercel-ai-ticket-resolver test

The install should complete without an unsupported-engine warning, all package checks should pass, and the ticket-resolver preflight tests should accept Node 24 while continuing to reject unsupported majors.

Local checks run

  • Node v24.18.0: frozen install, generated-code check, lint, typecheck/build, 643 package/example tests, and packed-package consumer smoke
  • Ticket-resolver tests: 94 passed
  • TypeScript metadata/CI contract tests: 13 passed
  • just check: passed, including formatting, lint, OpenAPI drift, changelog, Python type checks, typos, YAML, Actions lint, and offline link checks

@strickvl
strickvl self-requested a review September 24, 2026 15:45
@strickvl
strickvl merged commit f231ccc into zenml-io:develop Sep 24, 2026
36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Node.js 24 in the TypeScript packages

2 participants