---
summary: "Maintenance: @cyanheads/mcp-ts-core ^0.9.21 → ^0.10.6; explicit name/title identity pair; Dockerfile image.version + HEALTHCHECK; root-anchored .mcpbignore; post-pack bundle cleaner; packaging and antipattern linter checks; skill sync"
breaking: false
security: false
---

# 0.1.14 — 2026-06-11

Maintenance release adopting `@cyanheads/mcp-ts-core` `^0.10.6`. No tool surface or behavior changes; this server uses no `ctx.sample` (removed in framework 0.10.3) and no boolean env config, so the framework's breaking removals and `stringbool` parsing change carry no migration here.

## Added

- **`name`/`title` identity pair** in `createApp()` (`src/index.ts`) — both set to `crossref-mcp-server`, the unscoped package name, so served `serverInfo` and `/.well-known/mcp.json` show the machine name instead of the npm scope ([mcp-ts-core #231](https://github.com/cyanheads/mcp-ts-core/issues/231)).
- **`scripts/clean-mcpb.ts`** — post-pack bundle cleaner wired into the `bundle` script: runs `mcpb clean`, then strips `node_modules/**` agent-doc entries (`skills/`, `.claude/`, `.agents/`, `SKILL.md`) that root-anchored `.mcpbignore` patterns cannot reach ([mcp-ts-core #230](https://github.com/cyanheads/mcp-ts-core/issues/230)).
- **`Dockerfile` `HEALTHCHECK`** — bun-native `fetch` against `/healthz` every 30s (no `curl`/`wget` in the slim image) ([mcp-ts-core #217](https://github.com/cyanheads/mcp-ts-core/issues/217)).
- **`Dockerfile` `org.opencontainers.image.version`** — stamped from an `APP_VERSION` build arg; the release `docker buildx` passes `--build-arg APP_VERSION` ([mcp-ts-core #202](https://github.com/cyanheads/mcp-ts-core/issues/202)).
- **`techniques` skill** — catalog of response/data-shaping patterns; first reference documents outline-on-overflow ([mcp-ts-core #204](https://github.com/cyanheads/mcp-ts-core/issues/204)).
- **`lint-packaging.ts` checks 5–9** — bundle-content guards (dev-dir exclusion, unanchored-pattern and critical-runtime-path detection), post-bundle agent-doc content check, and `name`/`title`/`display_name` identity checks ([mcp-ts-core #207](https://github.com/cyanheads/mcp-ts-core/issues/207), [#230](https://github.com/cyanheads/mcp-ts-core/issues/230), [#231](https://github.com/cyanheads/mcp-ts-core/issues/231)).
- **`coerce-boolean-env-flag` antipattern rule** (`scripts/check-framework-antipatterns.ts`) — flags `z.coerce.boolean()` in `src/`; the scanner now skips comment lines so docs naming the pattern don't false-positive ([mcp-ts-core #201](https://github.com/cyanheads/mcp-ts-core/issues/201)).

## Changed

- **`.mcpbignore`** — dev-dir patterns root-anchored (`/skills/`, `/.agents/`, `/.claude/`, `/Dockerfile`, etc.) so they exclude bundle root only and can't strip nested `node_modules` runtime paths ([mcp-ts-core #207](https://github.com/cyanheads/mcp-ts-core/issues/207)).
- **`bundle` script** — runs under `bun run build` (was `npm run build`) and appends the `clean-mcpb.ts` strip step after `mcpb pack`.
- **`devcheck.config.json`** — `skillVersions.ignore` added for seven skills whose bodies were synced from upstream without a version bump (`api-auth`, `api-errors`, `api-services`, `api-telemetry`, `field-test`, `report-issue-local`, `tool-defs-analysis`).
- Project skills re-synced to the `^0.10.6` framework.
- Dependencies: `@cyanheads/mcp-ts-core` ^0.9.21 → ^0.10.6, `@types/node` ^25.9.1 → ^25.9.3.
- `packageManager` bun@1.3.2 → bun@1.3.11.
