inspector/scripts
Repository files (latest commit first)
Filename Latest commit message Latest commit date
cliffhall 6c33da38c9 chore(deps): align zod across installs and guard against version skew
Closes #1896

`clients/web`'s `tsc -b` exhausted the 4GB default heap at zod 4.4.x. The
cause is not a zod regression nor a pathological inference site of ours: it
is two copies of zod at *mismatched versions* inside one tsc program.

`clients/web/tsconfig.test.json` compiles `test-servers/src`, whose files
resolve zod (and the SDK's zod) from the **root** install, alongside web's
own sources, which resolve from `clients/web/node_modules`. At 4.3.6 vs
4.4.3 TypeScript must relate two structurally-distinct declarations of every
`@modelcontextprotocol/*` schema type, which is exponential over a recursive
generic surface — `TS2589 Type instantiation is excessively deep`, then OOM.

Bumping root zod to 4.4.3 and changing nothing else returns the build to
baseline: 11.4s and 2,567,882 instantiations, against 11.2s / 2,567,503 at
4.3.6. Two copies at the same version are harmless; skew is what explodes.

So drop the `~4.3.6` hold on `clients/web` and move all four manifests and
lockfiles to zod 4.4.3 together, and add `verify:dep-lockstep` to `validate`
to keep them there. The guard derives its candidate set from what `core/`
and `test-servers/src` import, compares the committed lockfiles' top-level
entries, and fails deny-by-default on any skew not in the annotated
`TOLERATED_SKEW` allowlist. It joins the existing mutual-vouch ring so
dropping it from `validate` is caught by `verify:format-coverage`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HDdo1rNRVQnVRRdsqSrvG3
2026-08-10 20:29:58 -04:00
..
lib fix(scripts): await the pack:verify web child's exit before removing its work dir (#1895) 2026-08-01 19:50:00 -04:00
install-clients.mjs feat: port CLI, TUI, and launcher from v1.5 into v2 (#1452) 2026-06-14 20:27:49 -04:00
pack-and-verify.mjs fix: ship clients/web/static so the MCP Apps sandbox proxy loads 2026-08-05 17:46:10 -04:00
smoke-cli.mjs feat(web): enforce localhost-only binding; expand loopback origin allow-list (#1796) 2026-07-26 22:15:10 -04:00
smoke-launcher.mjs refactor: self-validating clients, fast validate + separate coverage/smoke (#1504) (#1505) 2026-06-21 11:41:33 -04:00
smoke-tui.mjs fix(scripts): await the pack:verify web child's exit before removing its work dir (#1895) 2026-08-01 19:50:00 -04:00
smoke-web-app.mjs fix: handle spawn failure of the MCP test server in smoke:web:app 2026-08-06 09:52:40 -04:00
smoke-web-browser.mjs ci: add headless-browser boot smoke for the web client (#1615) (#1768) 2026-07-24 19:11:46 -04:00
smoke-web.mjs ci: add headless-browser boot smoke for the web client (#1615) (#1768) 2026-07-24 19:11:46 -04:00
verify-build-gate.mjs chore(web): format-gate the ungated first-party TS/JS (server/, vite.config.ts, scripts/) (#1788) 2026-07-25 23:15:45 -04:00
verify-dep-lockstep.mjs chore(deps): align zod across installs and guard against version skew 2026-08-10 20:29:58 -04:00
verify-dep-lockstep.test.mjs chore(deps): align zod across installs and guard against version skew 2026-08-10 20:29:58 -04:00
verify-format-coverage.mjs chore(deps): align zod across installs and guard against version skew 2026-08-10 20:29:58 -04:00
verify-typecheck-coverage.mjs test(cli,tui): typecheck the __tests__ dirs (#1791) (#1799) 2026-07-27 12:05:35 -04:00
verify-typecheck-coverage.test.mjs test(cli,tui): typecheck the __tests__ dirs (#1791) (#1799) 2026-07-27 12:05:35 -04:00