Skip to content

v0.29.2

Choose a tag to compare

@toolhive-release-app toolhive-release-app released this 10 Jun 18:29
· 20 commits to main since this release
5143fd8

🚀 Toolhive v0.29.2 is live!

A hardening-focused patch release: two security fixes, an operator-chart regression safety net via helm-unittest, an OTLP header delivery fix, an OAuth public-client TTL fix, continued vMCP New/Serve refactor scaffolding, and the deprecation of the MCPRegistry CRD.

🔄 Deprecations

  • MCPRegistry CRD deprecated in favour of the toolhive-registry-server Helm chart — the CRD remains fully functional but now emits a kubectl deprecation warning and an operator Warning event; it will be removed in a future release (#5470)

🐛 Bug Fixes

  • OAuth/OIDC discovery endpoints (RFC 9728 protected-resource metadata, RFC 8414 authorization-server metadata, OIDC discovery, JWKS) now work for stdio-backed MCP servers with an embedded auth server, instead of returning 404 (#5479)
  • Long-lived public OAuth clients registered via Dynamic Client Registration are no longer evicted after 30 days of active use — their TTL now refreshes on each successful token exchange, preventing spurious invalid_client failures (#5469)
  • OTLP exporter headers supplied via OTEL_EXPORTER_OTLP_HEADERS are no longer silently dropped on the POST /api/v1/workloads path, so collectors requiring an auth header now receive telemetry ([#5474]#5474))
  • Overriding operator.serviceAccount.name in the operator Helm chart no longer breaks the deployment — every reference now routes through the same serviceAccountName helper (#5476)
  • Prevented a path-traversal weakness in LocalStore.getFilePath so state-store file operations can no longer escape the base directory (#5464, Fixes [#4736]#4736))
  • Added baseline X-Content-Type-Options: nosniff and Cross-Origin-Resource-Policy: same-origin security headers to every thv REST API response (#5458)

🧹 Misc

  • vMCP refactor (epic #5419): introduced a stateless, identity-explicit core VMCP constructor (#5457), added the Serve transport skeleton and ServerConfig (#5467), wired the Cedar admission seam into the core so list and call enforce one shared decision (#5459), moved the SDK hooks and two-phase session creation under Serve (#5471), and domain-typed the elicitation seam (#5456) — all additive, with server.New behavior unchanged
  • Added helm-unittest regression coverage for the operator and operator-crds charts: CRD install/keep toggles (#5468), a default-install baseline ([#5473]#5473)), value-driven scenario suites ([#5475]#5475)), and security-posture/naming suites (#5477)
  • Documented the Redis Cluster slot invariant and filtered stray un-prefixed members in the auth-server token storage (#5210)

📦 Dependencies

Module Version
github.com/stacklok/toolhive-core v0.0.24
golang.org/x/exp/jsonrpc2 055de63
github/codeql-action 8aad20d
anthropics/claude-code-action fbda2eb

What's Changed

🔗 Full changelog: v0.29.1...v0.29.2

New Contributors