Skip to content

v0.8.4 - Internal cleanup

Choose a tag to compare

@kaosensei kaosensei released this 17 Jun 09:24
· 2 commits to main since this release

What's New in v0.8.4

Pure internal cleanup pass (from a /ponytail-audit over-engineering review). No tool, schema, or output changes — purely structural.

🔧 Improvements

  • Removed redundant zod direct dependency — it was declared but never imported; still available transitively via @modelcontextprotocol/sdk, so behavior is unchanged.
  • Extracted shared ok() helper — collapses 18 identical inline tool-result return blocks ({ content: [{ type:'text', text: JSON.stringify(...) }] }) into one wrapper.
  • Extracted clamp() helper — dedupes the 3 repeated pagination per_page bound expressions.
  • Deleted 4 decorative pass-through interfaces (IntercomArticle / IntercomCollection / ListArticlesResponse / ListCollectionsResponse) that annotated any API responses and added no real boundary type safety.
  • Trimmed drift-prone startup log that hardcoded the tool list (the real source of truth is the ListTools handler).

📉 Result

  • src/index.ts: 1338 → 1199 lines (−139).
  • Build passes (tsc, zero errors); startup smoke verified.

🧷 Deliberately not changed

  • The simplify* response-slimming layer (the fork's core value).
  • The per-handler if (!id) throw runtime guards (the MCP SDK does not validate required, so these are real guards, not dead code).

📦 Installation

```bash
npm install
npm run build
```

Full Changelog: v0.8.3...v0.8.4