Skip to content

v1.51.4

Choose a tag to compare

@erraggy erraggy released this 15 Feb 23:09
· 29 commits to main since this release
Immutable release. Only release title and notes can be modified.
217ece8

⚡ MCP Server Polish: Spec Caching, Smarter Labels, and Documentation Refresh

This patch release makes the MCP server faster and more ergonomic by adding session-scoped spec caching, improving group_by label clarity, and bringing all documentation up to date after the v1.51.3 walk tool expansion.

Session-Scoped Spec Cache

Parsed specs are now cached for the duration of your MCP session, eliminating redundant parsing when exploring the same spec with multiple tools. The cache uses LRU eviction (max 10 entries) with smart key strategies:

  • File inputs: keyed by absolute path + modification time — cache invalidates automatically when the file changes
  • Content inputs: keyed by SHA-256 hash — identical inline specs reuse cached results
  • URL inputs: always bypass cache (external resources may change unpredictably)

Mutating tools (fix, convert, join, overlay_apply) bypass the cache since they modify the document. Read-only tools (parse, validate, walk_*, diff, generate) benefit from cache hits.

Improved group_by Labels

Empty group keys now display meaningful labels instead of blank strings:

  • (untyped) for schemas with no explicit type
  • (ref) for unresolved $ref parameters
  • (component) for component-level responses without status codes

Two new group_by dimensions round out the aggregation feature:

  • walk_refs supports group_by=node_type (schema, parameter, response, etc.)
  • walk_paths supports group_by=segment (first path segment for API structure overview)

Rune-Safe Description Truncation

The parse tool now truncates long info.description fields to 200 characters in summary mode. The truncation is rune-aware, so multi-byte UTF-8 characters are never split mid-codepoint.

Plugin Version Staleness Detection

A new SessionStart hook compares the installed binary version against the plugin manifest version and warns when they diverge — catching cases where the binary was upgraded but the plugin wasn't refreshed.

Documentation Refresh

All user-facing docs updated to reflect v1.51.3's walk_headers, walk_refs, and group_by additions. Homebrew install commands standardized, MCP tool counts corrected (15 → 17), and 40 completed plan files cleaned up.

🔒 User Impact

  • No breaking changes — all additions are backward compatible
  • No public Go API changes (MCP server is internal)
  • Cache is transparent; no user configuration needed

📊 Quality Metrics

  • ✅ All tests passing (2,650+ unit tests)
  • ✅ Zero vulnerabilities (govulncheck clean)
  • ✅ All 10 benchmark suites passing with no regressions
  • ✅ Documentation verified accurate

What's Changed

Other Changes

  • docs: fix accuracy across docs and clean up build pipeline by @erraggy in #323
  • feat(mcp): add spec cache, group_by expansions, and UX improvements by @erraggy in #324
  • chore: prepare v1.51.4 release by @erraggy in #325

Full Changelog: v1.51.3...v1.51.4