Repository navigation
chore: dependency-rot cleanup (node-version SSOT, CI bumps, .npmrc, convex.json, dependabot) - #20
Conversation
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VrVv49ZydmFUGUVbVTGWeN
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VrVv49ZydmFUGUVbVTGWeN
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VrVv49ZydmFUGUVbVTGWeN
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VrVv49ZydmFUGUVbVTGWeN
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VrVv49ZydmFUGUVbVTGWeN
Review: chore: dependency-rot cleanupNice, focused infra PR — no What it does
Consistency check (good)
Things worth double-checking before merge
Dependabot config
Test coverageNo tests needed here — this is pure CI/tooling configuration with no application logic. The PR description's manual verification steps ( SecurityNo concerns — no secrets, no new runtime dependencies, and the dependabot grouping strategy (majors excluded from auto-grouping) errs on the side of caution. Overall: small, well-scoped, and internally consistent. The one thing I'd want confirmed before merging is that the bumped Action major versions ( |
👋 Claude here
Reduces dependency rot and version duplication by making Node's version a single source of truth and adding automated dependency updates. No changes to
package.jsonorpnpm-lock.yaml.What changed
.node-version→22. Single source of truth for the Node version..github/workflows/ci.yml:node-version: 22→node-version-file: .node-version(reads the SSOT above).actions/checkout@v4→@v6,actions/setup-node@v4→@v5.pnpm/action-setup@v4(it readspackageManagerfrompackage.json) andcache: pnpm.concurrencyblock so superseded runs on the same ref get cancelled..npmrc→engine-strict=true(enforcesengines.node: ">=22") +update-notifier=false.convex.json→ pins the Node action runtime to Node 22..github/dependabot.yml→ weekly updates fornpm(/) andgithub-actions, minor+patch grouped (npm split intoproduction/developmentby dependency-type),open-pull-requests-limit: 5.convex.json schema
Verified against the official Convex docs before writing — the key is
node.nodeVersion(string; supported"20"/"22"/"24"; requiresconvex>= 1.27.0, and this repo is on^1.39.1):Docs: https://docs.convex.dev/production/project-configuration
Verification
pnpm install --frozen-lockfilesucceeds with the new.npmrc(on Node >= 22, engine-strict doesn't block).pnpm lintpasses.pnpm buildpasses.ci.yml,dependabot.yml, andconvex.jsonall parse as well-formed YAML/JSON.🤖 Generated with Claude Code
https://claude.ai/code/session_01VrVv49ZydmFUGUVbVTGWeN