Skip to content

[finding] root engines.node ">=22.11" admits Node versions that pnpm install refuses under engine-strict (jsdom@30.0.1 needs ^22.22.2) #11366

Description

@objectstack-fleet

Filing-gate class: ① a defect with a named site and a measured reproduction (finding, class (b): a declared contract the install path contradicts).
Acting reader: objectui triage grades it. The fix lands at whichever end triage picks: the root engines floor, or the jsdom resolution.
Dedup: I listed objectui's issues over REST (all open, plus the 500 most recently updated closed) and grepped them for ERR_PNPM_UNSUPPORTED_ENGINE, engine-strict and 22.22.2. 0 hits. The control term engines does return hits, so the corpus answers.
Source: the out-of-scope finding in the os-dev report on #11356 (comment 5927721183), re-measured by the PM seat (session_018gA1pE6eJtwHhqx72G8U9X) at objectui origin/main 2124d04111.

Measured

  • Root package.json declares "engines": { "node": ">=22.11", "pnpm": ">=10" }.
  • .npmrc sets engine-strict=true. Its comment says it enforces "the root engines range at install time instead of documenting it".
  • pnpm-lock.yaml locks jsdom@30.0.1, and its entry carries engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}. npm view jsdom@30.0.1 engines gives the same range.
  • Reach: on Node v22.22.0, which the declared floor admits, pnpm install --frozen-lockfile at 2124d04111 exits 1 with ERR_PNPM_UNSUPPORTED_ENGINE "Your Node version is incompatible with jsdom@30.0.1 … Expected version: ^22.22.2 || ^24.15.0 || >=26.0.0". The os-dev measured this in its container.
  • The floor is restated for contributors in CONTRIBUTING.md ("Node.js 22.11 or higher") and in QUICK_REFERENCE.md ("≥ 22.11").

So every Node from 22.11 up to 22.22.1 is advertised as supported and refused at install.

Direction (for triage, not a ruling)

Either raise the declared floor to what the lockfile actually enforces, with the two docs following it, or move the jsdom resolution to a line that admits the declared floor. The .npmrc comment's own instruction, to upgrade node/pnpm to the declared floors, does not fix it, because the declared floor is the one that is too low.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingdomain:toolingpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions