Skip to content

chore(deps): update execa 10, esbuild 0.28, vitest 5 and TypeScript 7 - #7

Merged
vannt-dev merged 2 commits into
mainfrom
chore/deps-20260924
Sep 25, 2026
Merged

vannt-dev merged 2 commits into
mainfrom
chore/deps-20260924

Conversation

@vannt-dev

@vannt-dev vannt-dev commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

Updates runtime and build dependencies after the Node.js 22.12 baseline made them installable:

  • execa 9.6 → 10.0 (runtime, bundled)
  • esbuild 0.24 → 0.28, vitest 3 → 5 and typescript 5.9 → 7.0 (dev)
  • zod floor raised to ^3.25.76; zod 4 was evaluated and deliberately not adopted

Why not zod 4

It type-checks and passes all tests, but it bloats every bundled hook, and hooks run on every Write/Edit (the guard twice):

guard hook size start time (15 runs, Windows)
zod 3 (this PR) 136 KB 75 ms
zod 4 770 KB 97 ms
zod 4 + minify 461 KB 85 ms

Junto only uses zod for internal schema validation, so zod 4 has no functional benefit here.

execa 10 and the Windows test fake

execa 10 wraps every argument in quotes when it runs a .cmd file. npm shims forward %* unchanged, so real ocr/pnpm shims receive identical argv under execa 9 and 10 (verified with an npm-style shim). The test's batch-only fake parsed %~1 itself and broke; it now forwards %* to a Node script, the same shape as the shims npm installs.

TypeScript 7

TypeScript 7 no longer includes @types packages implicitly, so tsconfig.base.json lists "types": ["node"]. No source changes were needed; a forced build of all project references takes about 1.2 s. Nothing in the repository uses the typescript JS API.

Verification

  • tsc -b --force with TypeScript 7.0.2 — 0 errors
  • corepack pnpm test — 378 passed, 4 platform/optional skips
  • corepack pnpm build — bundles rebuilt; sizes unchanged (guard 136 KB, server ~1.0 MB); the bundled MCP server answers initialize as 0.6.0

zod stays on 3.x: zod 4 made each bundled hook about 5x larger and added
10-20 ms to every hook start, for no functional gain in Junto's schemas.

The Windows fake reviewer now forwards %* to a Node script like the shims
npm installs, because execa 10 quotes every argument passed to .cmd files
and the old batch-only fake parsed %1 itself.
TypeScript 7 no longer includes @types packages implicitly, so the base config lists node types explicitly. A full forced build of all project references takes about 1.2 s.
@vannt-dev vannt-dev changed the title chore(deps): update execa to 10, esbuild to 0.28 and vitest to 5 chore(deps): update execa 10, esbuild 0.28, vitest 5 and TypeScript 7 Sep 24, 2026
@vannt-dev
vannt-dev merged commit fdb86a6 into main Sep 25, 2026
5 checks passed
@vannt-dev
vannt-dev deleted the chore/deps-20260924 branch September 25, 2026 14:22
@vannt-dev vannt-dev mentioned this pull request Sep 25, 2026
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