Skip to content

chore: declare node >=20, the version the box actually runs - #232

Merged
github-actions[bot] merged 1 commit into
mainfrom
chore/pin-node-20
Aug 29, 2026
Merged

chore: declare node >=20, the version the box actually runs#232
github-actions[bot] merged 1 commit into
mainfrom
chore/pin-node-20

Conversation

@catomean

Copy link
Copy Markdown
Collaborator

The box runs Node 20.20.2. This repo's engines.node did not say so.

Across the fleet, 18 of 30 repos declared no Node version at all, and the twelve that did used five spellings of the same intent:

>=18   >=20   >=20.0.0   >=22   >=22.19.0

hirnli claimed >=22 — a requirement the box cannot satisfy, and one nothing would have caught, because npm only warns on an engine mismatch and the deploy never checks it. It is latent rather than live only because hirnli is not deployed to the box yet.

One spelling, matching the machine that actually runs the code, turns an invisible mismatch into a loud one.

Package.json key order and the file's own indentation are preserved — three repos in the fleet run prettier --check ., and a reformatted package.json would fail them.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UvjGNAS9CMfEGNW26tUR4P

Was: undeclared.

Eighteen of thirty repos declared no Node version at all, and the twelve
that did used five spellings of the same intent - >=18, >=20, >=20.0.0,
>=22, >=22.19.0. The box runs 20.20.2, so >=22 was a claim nothing could
satisfy and nothing would have caught.

One spelling, matching the machine that runs it, turns an invisible
mismatch into a loud one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UvjGNAS9CMfEGNW26tUR4P
@github-actions
github-actions Bot merged commit 5d55e6d into main Aug 29, 2026
1 check passed
@github-actions
github-actions Bot deleted the chore/pin-node-20 branch August 29, 2026 07:03
github-actions Bot pushed a commit that referenced this pull request Sep 2, 2026
Three separate sessions have now opened this repo, found the working copy
silently wrong, and spent part of the run repairing it before any real work
could start:

  2026-08-29  local main held a commit origin never got, so `git pull --ff-only`
              failed for every run entering the repo.
  2026-08-31  local main was 2 commits behind origin (#232, #233).
  2026-09-02  local main was 3 commits behind (#234-#236), two squash-merged
              worktrees were still checked out, and frontend/node_modules
              predated the prettier devDependency from #233 — so the first gate
              of `npm run verify` died on "prettier: not found".

A bare `git status` reports "clean" in all three cases, which is why each run
rediscovers it the hard way instead of inheriting the last one's fix. Per the
never-twice rule, the third instance gets the automation, not a fourth repair.

`npm run preflight` checks the three invisible ones — divergence from origin
(after an explicit fetch), merged worktree branches still checked out (compared
by patch id via `git cherry`, since `git branch --merged` cannot see a squash),
and node_modules older than its lockfile. Read-only by default, exit 1 on drift;
`npm run preflight -- --fix` repairs what it finds and refuses to touch a
worktree with uncommitted changes.

Both paths exercised on this branch: the read-only run caught backend/
node_modules as stale against the #229/#230 security bumps, and --fix
reinstalled it to clean.


Claude-Session: https://claude.ai/code/session_01PtVWdxno5WtK9zYLkrBz3P

Co-authored-by: Mao Nakamoto <41178744+maonakamoto@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant