Skip to content

Align runtime support after Node 20 EOL #34

Description

@lan17

Priority

P1 — High — make the published runtime support contract truthful before broad production adoption.

Current problem

The package still declares 20 || >=22 and the README says Node 20+, while Node 20 reached end of life on March 24, 2026. CI runs the full development/integration suite on Node 24 and then a packed-consumer test on a floating latest Node 20, so it neither tests the bottom of the declared Node 20 range nor reflects the maintained production runtimes.

Current evidence:

The resolved Vite/Vitest development-tool floor is not itself the consumer-runtime contract; packed artifacts must be tested independently at the declared minimum.

Open decision

Choose deliberately between:

  1. Continue supporting the EOL Node 20 line and pin/prove its exact minimum consumer version, accepting the maintenance and security-support implications.
  2. Move DialCache to Node 22+ and test packed consumers at an exact minimum Node 22 release while retaining the full suite on Node 24/current LTS.

Recommendation: choose Node 22+. Production applications should not be encouraged onto an EOL runtime, and this removes the stale 20.0-versus-20.19 framing without tying consumer support to dev-tool requirements.

Acceptance criteria

  • Confirm the maintained major-version floor.
  • Align engines.node and README requirements.
  • Pin the packed-consumer job to an exact minimum supported version rather than a floating major.
  • Run real packed ESM and CommonJS cache behavior plus declaration checks at that minimum.
  • Keep the full unit, integration, build, and declaration suite on Node 24/current LTS.
  • Document the compatibility change in the PR and release notes.

Impact

This changes only the advertised/install-time support matrix and CI proof. It does not change cache keys, Redis protocol, runtime APIs, or stored data.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions