---
summary: Ship vitest.config subpath export as .mjs (fixes Node 22.7+ type-strip failure under node_modules); new devcheck step guards against SDK-coupling antipatterns
breaking: false
---

# 0.7.2 — 2026-04-24

Two small, unrelated preventive changes. The vitest config fix unblocks consumer test runs on Node 22.7+ without `NODE_OPTIONS=--no-experimental-strip-types`. The new devcheck rule pins architectural decisions about how the framework must not work around SDK internals.

## Fixed

- **`./vitest.config` subpath export is now `.mjs`, not `.ts` ([#64](https://github.com/cyanheads/mcp-ts-core/issues/64))** — shipping raw TypeScript under `node_modules/` triggers `ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING` on Node ≥22.7 when the module loader reaches the file before Vite's config handler. Node's type stripper refuses to operate inside `node_modules/` on purpose (supply-chain hygiene), so the failure was correct and the export was wrong. The source file moves from `vitest.config.base.ts` to `vitest.config.base.mjs`; consumers importing via `@cyanheads/mcp-ts-core/vitest.config` see no API change. Removes the need for `NODE_OPTIONS=--no-experimental-strip-types` in consumer test scripts.

## Added

- **`Framework Antipatterns` devcheck step ([#68](https://github.com/cyanheads/mcp-ts-core/issues/68))** — new source-hygiene guard at `scripts/check-framework-antipatterns.ts`, wired into devcheck alongside `MCP Definitions` and `Docs Sync`. Three rules scan `src/` for SDK-coupling shortcuts tempting to reach for when working around MCP SDK error shapes: (1) downgraded `inputSchema` (`z.unknown()`, `z.any()`, `.passthrough()`) passed to `server.registerTool()` in framework-side tool registration; (2) post-register mutation of `RegisteredTool.inputSchema`; (3) transport-layer regex/string matching on the SDK's `"Input validation error"` wording. Each breaks `tools/list` schema advertising or couples the framework to SDK internals. Rules land with zero current violations — pre-emptive hygiene ahead of [#66](https://github.com/cyanheads/mcp-ts-core/issues/66) implementation.
