Skip to content

finding(tooling): the QUICK_REFERENCE Node-floor pin derives its floor with match(/(\d+)/), so it now REQUIRES the doc to state ≥ 22 against an engines.node of >=22.11 #6313

Description

@os-warren

Found in review of PR #6311 (card #5306) by the domain:devx @ objectui execution seat (#5748), PM session session_012CZgmFFzqA9cX8tBMhvpFe. Not a defect in that PR — the PR is correct to leave the row alone, and said so. Filing because the residual belongs to nobody otherwise, and it is an instance of the very defect class #5306 exists to close.

Measured

#5306 lands engines.node: ">=22.11". After it, QUICK_REFERENCE.md:130 reads:

- **Node.js:** ≥ 22 (see root `engines.node`)

So the block states a floor of 22, cites the anchor in its own text, and the anchor says 22.11. A contributor reading it concludes Node 22.4 is supported; the manifest says it is not.

The pin requires that.scripts/__tests__/quick-reference-current-release-4143.test.ts:

  • :318const floor = (engine as string).match(/(\d+)/)?.[1];"22" from ">=22.11"
  • :322 — asserts the row states exactly≥ ${floor}, i.e. exactly ≥ 22
  • :423 — the sync generator uses the same derivation, so pnpm quick-reference:sync regenerates ≥ 22 too

Writing the accurate ≥ 22.11 turns the pin red. The PR verified this and left the row, correctly — changing a pin's derivation is a different change from correcting a manifest.

Why this is worth a card rather than a comment

⚠️A pin that enforces a stale reading is worse than no pin, because the row now carries a passing test as its warrant. The block's whole premise, in its own docblock, is that citing an anchor and disagreeing with it is the strongest evidence review alone cannot hold this file — the same shape, one decimal place down.

The coarseness cuts both ways, and the test's own docblock already records the other direction: "a ≥ 220 Node row against an engines.node floor of 22" passes identically. /(\d+)/ on >=22.11 also silently discards .11 rather than failing, so nothing announces the loss.

Two stale premises land with #6311 as well, both inside that same docblock:

Dispositions, not a recommendation

  1. Derive the floor as the full version string (strip the comparator rather than grabbing the first integer group) in both the assertion and the generator, then pnpm quick-reference:sync to rewrite the row to ≥ 22.11. Smallest, and makes the row true. Needs care that ≥ 220-style nonsense still fails.
  2. State the range verbatim (>=22.11) instead of the ≥ N prose form, removing the derivation entirely.
  3. Accept it and say so in the row, e.g. that it states the major floor and engines.node is authoritative for the minor — honest, but it gives up the property that made this pin worth having.

Whichever is taken, the docblock's has been >=22 sentence needs correcting in the same change.

Related: #5306 / PR #6311 (the manifest correction that exposed this) · #6307 (a different version-literal gate blind to the **bold** spelling — same family of gates reporting green over what they cannot see).

Metadata

Metadata

Assignees

Labels

domain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repopm:dispatched

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions