Skip to content

chore(deps): bump zod 4, vitest 4, ts 6, eslint 10, node 24, actions#45

Merged
a-essawy merged 1 commit into
mainfrom
chore/dep-bumps-latest
Jun 13, 2026
Merged

chore(deps): bump zod 4, vitest 4, ts 6, eslint 10, node 24, actions#45
a-essawy merged 1 commit into
mainfrom
chore/dep-bumps-latest

Conversation

@a-essawy

Copy link
Copy Markdown
Contributor

What

Consolidated major dependency updates. Supersedes the seven failing Renovate PRs: #32 (typescript v6), #33 (eslint v10), #34 (github-actions major), #35 (node v24), #36 (vitest v4), #38 (zod v4).

Why one PR instead of merging each

Every Renovate PR failed CI with ERR_PNPM_LOCKFILE_CONFIG_MISMATCH: the renovate/artifacts step never regenerated pnpm-lock.yaml against the bumped package.json. Beyond the lockfile, these majors interact (eslint 10 ↔ ts-eslint, vitest 4 ↔ vite peer, zod 4 ↔ MCP SDK overloads, pnpm 9 → 11 override relocation), and they all touch the shared lockfile — so merging them one at a time would leave main broken between merges. Landing them together is the only way to get a green main.

Changes

  • zod ^3.25^4 — override moved to pnpm-workspace.yaml (pnpm 10+ no longer reads pnpm.overrides from package.json); src/tools/util.ts uses z.infer<z.ZodObject<I>> because objectOutputType was removed in zod 4.
  • typescript ^5.7^6tsconfig.json gains explicit types: ["node"] + lib, and ignoreDeprecations: "6.0" for the baseUrl deprecation surfaced in the dts build.
  • vitest ^2^4 — added vite ^8 to satisfy vitest 4's new vite peer range (^6 || ^7 || ^8).
  • eslint ^9^10.
  • @types/node ^20^24; .nvmrc, Dockerfile, and CI node-version 20/2224.
  • github-actions (major)checkout v6, setup-node v6, pnpm/action-setup v6 (pnpm 11), codeql-action v4, release-please-action v5.

Lockfile regenerated with pnpm 11.

Test plan

Local, pnpm 11, clean --frozen-lockfile (CI parity):

  • pnpm typecheck
  • pnpm lint ✓ (eslint 10)
  • pnpm build ✓ — dist/bin.js 17.9 KB (< 100 KB budget)
  • pnpm test ✓ — 10 files / 56 tests (vitest 4)
  • node dist/bin.js --version

Consolidated major dependency updates superseding Renovate PRs #32-#38, which
each failed CI: their lockfiles were stale (renovate/artifacts could not run)
and the major bumps interact, so they cannot land individually without breaking
main between merges.

- zod ^3.25 -> ^4: override moved to pnpm-workspace.yaml (pnpm 10+ no longer
  reads pnpm.overrides from package.json); util.ts uses z.infer<z.ZodObject>
  since objectOutputType was removed in zod 4.
- typescript ^5.7 -> ^6: tsconfig gains explicit types:["node"] + lib, and
  ignoreDeprecations:"6.0" for the baseUrl deprecation surfaced in the dts build.
- vitest ^2 -> ^4: add vite ^8 to satisfy vitest 4's new vite peer range.
- eslint ^9 -> ^10.
- @types/node ^20 -> ^24; .nvmrc, Dockerfile, and CI node 20/22 -> 24.
- github-actions: checkout v6, setup-node v6, pnpm/action-setup v6 (pnpm 11),
  codeql-action v4, release-please-action v5.

Lockfile regenerated with pnpm 11. typecheck, lint, build, and 56 tests pass;
dist/bin.js is 17.9 KB (<100 KB budget); --version smoke passes.
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