chore(deps): consolidate dependabot bumps with flake hash update - #1457
Conversation
…26, ora 9, commander, posthog-node) Replaces #1448, #1451, #1452 and #1453 with a single lockfile resolution. Each of those PRs changed pnpm-lock.yaml, so merging them serially would invalidate the flake.nix pnpmDeps hash four times over. - typescript 5.9.3 -> 6.0.3 (#1452) - @types/node 24.2.0 -> 26.x (#1451) - ora 8.2.0 -> 9.4.1 (#1453) - commander 14.0.0 -> 14.0.3, posthog-node 5.46.0 -> 5.46.1 (#1448, lockfile only) #1450 (@inquirer/prompts 8) is deliberately excluded: it needs a code migration, not a version bump. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughUpdates ChangesTooling and dependency updates
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Hash taken from this PR's first Nix Flake Validation run. Note it differs from the hash any individual dependabot PR would have produced -- the combined lockfile resolves to its own content hash. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
alfred-openspec
left a comment
There was a problem hiding this comment.
The consolidated lockfile and Nix hash are green, but this still carries @types/node 26 while OpenSpec supports Node 20.19. Please keep the Node types aligned with the supported runtime floor (or raise that floor with compatibility evidence), since compiling against Node 26 declarations can admit APIs unavailable to supported users.
Addresses review feedback: compiling against Node 26 declarations lets the type checker admit APIs that are unavailable on the runtimes OpenSpec actually supports (engines: node >=20.19.0). Pins @types/node to ^20.19.43, the latest release in the line matching the declared floor. This also corrects a pre-existing drift -- main was on @types/node 24 against the same 20.19 floor, so the types were already ahead of the supported runtime before this PR. Verified: build clean, tsc --noEmit clean, eslint clean, 112 files / 2253 tests passing, dist/ emit byte-identical to origin/main, and no peer dependency warnings. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The @types/node downgrade to the 20.19 line changed the dependency set again (it pulls undici-types 6.21.0), so the previous hash no longer matches. Value taken from a forced-mismatch Nix run on this branch. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
79582ce to
2d46c5d
Compare
|
@alfred-openspec — good catch, and agreed. Fixed in e4c0ae5.
I took the "keep the Node types aligned with the supported runtime floor" option rather than raising the floor. Two things worth flagging that came out of doing it: 1. This also fixes pre-existing drift, not just the drift this PR would have added. 2. The exposure was type-check-only, not runtime. CI already runs the full test matrix on Node 20.19.0 exactly ( Verification of the downgradeSince dropping two major versions of type declarations can surface errors, I checked it rather than assuming:
One knock-onThe realigned lockfile pulls The PR description has been updated to reflect that If you'd rather keep this PR strictly to the dependabot bumps and handle the 24 → 20.19 realignment separately, say the word and I'll revert that commit to |
alfred-openspec
left a comment
There was a problem hiding this comment.
Re-reviewed at 10611b5. The Node declarations now match the supported Node 20.19 floor, the regenerated Nix hash is green, and the frozen install, production audit, build, typecheck, lint, 2,255-test suite, and all CI checks pass.
Replaces #1448, #1451, #1452 and #1453 with one lockfile resolution, following the pattern set by #1427.
Why consolidate
All four PRs change
pnpm-lock.yaml, andflake.nixpins a content hash of the pnpm dependency set. Merging them serially would invalidate that hash four times, requiring four regenerations and three rebases. Dependabot cannot update Nix files, which is why all four were red onNix Flake Validation.What's in it
commanderandposthog-nodemove in the lockfile only — theirpackage.jsonranges are unchanged, matching #1448 exactly.@types/node: aligned to the runtime floor instead of bumped
Per review feedback from @alfred-openspec,
@types/nodeis now pinned to^20.19.43— the latest release in the line matchingengines.node: ">=20.19.0"— rather than taking dependabot's 26.The concern is real: compiling against newer Node declarations lets the type checker accept APIs that don't exist on the runtimes we actually support, so a Node 22+ call would type-check and then fail for users on Node 20.
Note this also corrects pre-existing drift:
mainwas already on@types/node24 against the same 20.19 floor, so the types were ahead of the supported runtime before this PR. This is the first time they line up.Worth recording that CI already runs the whole matrix on Node 20.19.0 exactly, so runtime behaviour was being validated at the floor — the gap was purely at type-check time, which is what this closes.
Proof it works
npm run build— cleannpx tsc --noEmit— 0 errorsnpm run lint— 0 errorsorigin/mainbaselineorigin/main: diffingdist/yields 0 differing.jsor.d.tsfiles. Despite a TypeScript major and a@types/nodemajor move, every user receives bit-for-bit the same shipped JavaScript and type declarations.oraspinners,commanderparsing):--version,--help,init,update,list --json,validateall behave correctlyNix Flake Validationand the linux/macOS/Windows matrixora@9requiresnode >=20, satisfied by the>=20.19.0floor, so no supported user loses support.Excluded: #1450 (@inquirer/prompts 8)
Deliberately left out — it needs a code migration, not a version bump:
checkbox'sinstructionsoption was removed in v8, breakingsrc/commands/config.ts:587(error TS2353).@inquirer/prompts@8requires@inquirer/core@^11, but OpenSpec depends on@inquirer/core@^10.3.2directly —src/ui/welcome-screen.tsandsrc/prompts/searchable-multi-select.tsbuild custom prompts oncreatePrompt,useState,useKeypress,useMemo,usePrefix,isEnterKey,isBackspaceKey,isUpKey,isDownKey. Bumping onlypromptswould put two copies of@inquirer/corein the tree, with custom prompts on v10 and bundled prompts on v11.Closed and tracked in #1458.