Aquí hi ha 153 versions de thv, des de 9 de juny del 2025 fins a l’actual, 0.56.0. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.
153 versions en 1 any · unes 112 per any
| Versió | Data | Mida | Fitxers |
|---|---|---|---|
| 0.56.0Darrera versió | 22 d’octubre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* b474553b2fbef6449e2fc9c0efd7e134aa41c079: Add OSS Scanner audit configuration (#6874) (@rdimitrov)
* ad40e16acc77ee78c80327f83736bb2abbeb2e3b: Add auth server TLS listener and SPIFFE middleware (#6843) (@jhrozek)
* 901dccf876aecf285ab5fd497d4f1930c8fad0a7: Add coverage for -32601 under HTTP error statuses (#6873) (@hellouz818)
* 32360e2b9052546d7dd4d85c6534b2b830b2dc00: Add native Go fuzz targets for untrusted parsers (#6877) (@rdimitrov)
* 06e7d90e0a72a9f6cc35344bbd79903545d0c998: Answer 401 when a token session holds no upstream access token (#6846) (@alex-feel)
* 0bf3ed193fd32a2246c5034f4bc1b14371a7bb7a: Cap DCR clients and expire unused ones after 24h (#6863) (@tgrunnagle)
* 4fd48545aed1daf9ca6995872e43b0e285811864: Cover the embedded auth server in threat model (#6879) (@jhrozek)
* a8b7a0137bd2136c1d4b6eb378ead737833d9246: Decode IPv4 in IPv4-compatible and SIIT addresses (#6878) (@rdimitrov)
* 56fd4dfb66fe0b1d5c3461713fa9a9f8ab70750d: Enable Claude Code gateway model discovery (#6862) (@jerm-dro)
* 0ea7c4f44e80b122eb5e31db8b3b53d0b359d812: Explain LLM gateway model-discovery failures (#6884) (@jerm-dro)
* 57827a1d64178b088aa931f7c9962d75a5a08c9b: Expose DCR client cap and register rate limit in CRD (#6867) (@tgrunnagle)
* 9abf3640509cd573c6a4caaa12f15e098758d8f5: Fix Claude Desktop paths and managed check on Linux (#6883) (@jerm-dro)
* bf79521dcab9b6994e1e3c322144572455fb9bd0: Fix field names in external-auth examples (#6330) (@3nesdeniz)
* 8aaed56d2c9c0d478e1334bd88da566daad6a44b: Let embedders skip consent for preauthorized clients (#6882) (@jhrozek)
* 6354164631a7e72d02fc7086a115c574da1f4ac4: Make unit tests pass as root and without a container runtime (#6875) (@rdimitrov)
* f42472c276e97db51d9b4d3de2d7e9868cdc3d07: Merge commit from fork (@peppescg)
* d90a504d2f91b83f6375e52acb45635d072f3323: Merge commit from fork (@jhrozek)
* aed6a97023dabac2166fc0feea390f77e6c91135: Release v0.56.0 (#6917) (@toolhive-release-app[bot])
* 7a8f6fca6970c8400dfbdd7620e8731872a1fb6f: Start auth server TLS listener in vMCP (#6891) (@jhrozek)
* 7c0318117073e809fe0195bc71757c801e7f790a: Test client response posts across handlers (#5885) (@jstar0)
* d8af1f3e19051b2551f8c4455b736347645e675d: Verify row ownership in Redis upstream token read (#6876) (@hellouz818) |
| 0.55.2 | 19 d’octubre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* b5246d810b4ad21a63b45de9de2fc4126777b2d0: Merge commit from fork (@JAORMX)
* 89b1bd28fee86b17c640c5811dbc1abac5edf30d: Release v0.55.2 (#6871) (@toolhive-release-app[bot])
* 47e10f37fad07eb03df269e22a6d0538c0dd1ca5: Update go modules to v0.0.57 (#6869) (@renovate[bot])
* 72622768d188bba13c387a05fa33075849ef8c3b: Use postflight_steps for the thv Homebrew cask hook (#6870) (@rdimitrov) |
| 0.55.1 | 19 d’octubre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 3800072d1c0c78df519326cf19f788c9775e4232: Drop Go patch pin, bump toolhive-catalog, stop e2e pings (#6866) (@rdimitrov)
* c314501867468de847be6adf4747f32847ef1e7a: Fix Podman client creation with compat transport (#6860) (@rdimitrov)
* 7e35c5be551801bc8f37027e75d2ac9bd28155e6: Fix flaky ignore overlay tests from shared artifact dir (#6854) (@rdimitrov)
* b027b8148b2d58446745cbee074ba4ec59ce519d: Publish thv to Homebrew as a cask (#6859) (@rdimitrov)
* a36e9871fc075991ea165b74951437d461898c19: Release v0.55.1 (#6868) (@toolhive-release-app[bot]) |
| 0.55.0 | 19 d’octubre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 107c4a95c41332b55619804027773185cd664772: Add TLS listener config and SPIFFE X.509 authority capability (#6760) (@jhrozek)
* 14c6066a4d62aa07c090b27804d20d190a334a45: Add dcrConfig.rotationKey to re-register upstream DCR clients (#6825) (@aron-muon)
* 16ffc0b7ceceb1202dffd2b4f143f74cb49c7b77: Add thv client connector for Claude Desktop (#6840) (@jerm-dro)
* ad8af5ebaf1c35d0845121033b10f98743f44544: Allow omitting scope on upstream token refresh (#6832) (@hellouz818)
* 9adad0abb54756606975ba1bf8466c58c512fd08: Bump x/net and x/text in the Go SDK module (#6828) (@rdimitrov)
* b7886b753375d8defe4adbc6a14b3c192013f79d: Clarify session eviction cleanup guarantees (#6833) (@JAORMX)
* 607cbe8ec6ec38252a52d4c2947d6b6dcca9eb8d: Close terminated vMCP sessions promptly (@hellouz818)
* 0dcd0ad36eeccd453a116f7a7f7eb3c0f6d70a53: Codify conventions stated in recent code reviews (#6812) (@alex-feel)
* ba991a6e224a6718a426e3801c3bb3c975fcccc3: Expose group-based upstream filter via vMCP CRD (@hellouz818)
* 4905ab83fc0967f451023eec92994a5e2b6e4e6a: Fix codespell hits in vMCP resource validation (#6853) (@rdimitrov)
* 60bfed8b85546d2c6c925de537e01093aa2ec480: Grant pods/attach only for stdio transport (#6841) (@hellouz818)
* 87ed79d94429279aa65060872cc052358626ed96: Honor PI_CODING_AGENT_DIR for Pi MCP and skills (#6839) (@jerm-dro)
* a62748b42d5313019d1bc5d6aae0e1e19e7a7f70: Merge commit from fork (@reyortiz3)
* c6e5eebe88d21978f9e27569bc6f1372e66d65ab: Merge commit from fork (@reyortiz3)
* 0ce28113ef882aeb6889ae75b746909359d951a3: Merge commit from fork (@reyortiz3)
* 130f53f2f23aa641b4803cb0497aa8e49d8743b1: Merge commit from fork (@jhrozek)
* 590dc928a5fc8eafc54ce593abc45af33dce57ca: Merge commit from fork (@reyortiz3)
* 7d2acc67a22873abd7cbb57a7319b6a28e31b5da: Re-register DCR clients the upstream evicted (#6822) (@peppescg)
* 5c06e056f79836cd11c4604be5f089697a0d6cf9: Release v0.55.0 (#6855) (@toolhive-release-app[bot])
* 153d14ead4f531c85f1206a935c1b662caf864e8: Return release notes via structured output (#6826) (@rdimitrov)
* 973200560a2d7b285b28adc946f409ec605f6359: Support Pi in LLM gateway setup (#6818) (@jerm-dro)
* 9d0b2e4c346c4f90bf602454c42b1df651d65534: Update docker images (#6851) (@renovate[bot])
* cc0749488ea769979894645439db794bb500c0c3: Update github actions (#6849) (@renovate[bot])
* cc13cc260d68d5713eedc304e29ecf702fe00246: Update go modules (#6850) (@renovate[bot])
* f42d6e4a8a73584c5b2b35ac04c2a89f08168f82: Update golang.org/x/exp/jsonrpc2 digest to f0251eb (#6848) (@renovate[bot]) |
| 0.54.0 | 14 d’octubre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* e7cc53f2e85e8f052d6e37a31960deb25ebf4e41: Add Pi coding agent as a supported MCP client (#6819) (@danbarr)
* 7529e4775c6bbbce5c15f1b6d1df29d780696392: Add SPIFFE file bundle source (#6759) (@jhrozek)
* 5220a0ab3f32cb3e3e5fe7896fd6b0048bff716d: Extract exact-ID decode from DecodeMessage (#6820) (@jhrozek)
* 68517931a97ccf080908ecc02ddb7954f375cd52: Fix lint in RSA client key validation (#6824) (@rdimitrov)
* d77b3828f3c94b471f06ec8ce751648fd82ac3cf: Merge commit from fork (@jhrozek)
* 7fea80d41957b6f4c0374a81d4bdb5140e9f784f: Merge commit from fork (@reyortiz3)
* 0e7efb28c6f658f05284745c40ba23797a10a01b: Merge commit from fork (@jhrozek)
* 8553ebd7c661711f93a566fd9352bb9e0a48bb51: Merge commit from fork (@jhrozek)
* 35babeb8dc190cda19a8ba5ed909d57b51a52ac7: Merge commit from fork (@reyortiz3)
* 17123f9a60629db28f33c04464711146507ceacb: Narrow OIDC referrer watches to ref changes (#6706) (@Sriram-PR)
* ce74cfa3757d361bd5aa6c719201f7ca43caf17c: Refresh upstream tokens when the ID token expires (#6773) (@tgrunnagle)
* 1ce13bbbbbe1ed9a3f40fea03ed1a42533f04cea: Release v0.54.0 (#6823) (@toolhive-release-app[bot])
* d2bf888eb26bc5fecc73bf2343e5efb68b1f4439: Update module github.com/stacklok/toolhive-catalog to v0.20261013.0 (#6816) (@renovate[bot]) |
| 0.53.0 | 13 d’octubre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* d6660c0e6b728e4e208aed82591570957f503e34: Add group-based upstream filter for vMCP auth (#6739) (@hellouz818)
* 814983aa304cbc118b3eea973db42dec984af18a: Bump toolhive-core to v0.0.52 (#6815) (@reyortiz3)
* d5aa37462f06bab0c3a194cbab3b637506c2e6d7: Merge commit from fork (@ChrisJBurns)
* 37c96deb51ad47125ac8b7fab690b8b661aad537: Record config-handler failures on the MCPRemoteProxy status (#6776) (@feiiiiii5)
* fa7e34412a8504064a4b82f64ceb466c683d08d6: Release v0.53.0 (#6817) (@toolhive-release-app[bot])
* edc02b48d634897ffd055052d62cbc2836763548: Skip undecodable items in Modern list responses (#6772) (@reyortiz3)
* 55591b739f02ff484922adc3e6c469a95a025822: Update docker images (#6778) (@renovate[bot])
* 303ad35eca1096580b1e9573d94c20625d591f40: Update github actions (#6775) (@renovate[bot])
* 27773d73b89f1ed1a87a49ec8f31155f73b52b21: Update go modules (#6777) (@renovate[bot])
* 67159707cc7f73199f6882e1d40203c8d8b55a7d: Update golang.org/x/exp/jsonrpc2 digest to faecfb2 (#6774) (@renovate[bot]) |
| 0.52.0 | 12 d’octubre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 183978d7b8abe69d0583454e1a7d38e39226d27d: Add TLS to Redis session storage (#6731) (@Sanskarzz)
* c88557fc320965566c5ebce3e16831ada75fc186: Add alex-feel to MAINTAINERS (#6808) (@jhrozek)
* 4c866b51928a0fe984a3408f3da5523af6f5dde9: Add compare-and-set update for DCR credentials (#6758) (@tgrunnagle)
* 0c253225fc4199263194e8a07e616a4b76644fd0: Add operator support for Redis session storage TLS (#6767) (@peppescg)
* ec3d1fe6fe1a4d05ed34d7a2cc7a8c707979b905: Add shared JWT claim string-array decoder (#6738) (@hellouz818)
* 2c69e1f1355e2fda4cc3304dd4854c220e5c01e0: Clarify operator Helm values descriptions (#6771) (@danbarr)
* 494dfa20edf5a400c1895c55747b08ac65f90e02: Clarify priority conflicts and strengthen regression coverage (#6716) (@JAORMX)
* 35cfadf805600f497324e989c06c6bca4c16d753: Default Claude Code prompt cache to one hour (#6515) (@Sanskarzz)
* 74379fa458f99072b21e10c3ccecf78d8498ba06: Drop ping from remote MCP server e2e test (#6766) (@jhrozek)
* df0ea6d360bece84df93daf978e7533d52080dab: Guard token exchange may_act CEL (#6532) (@kocaemre)
* d7877b89a3d0edcad2175b182248770edf867099: Merge commit from fork (@jhrozek)
* a87b6fd52ef5f865a5ea53ba24649795a0160b9b: Merge commit from fork (@ChrisJBurns)
* f450a8205ae7c76cbcda35a16e1edc81c2b638d2: Preserve RFC 7662 extension claims (#6707) (@lorenzozanee)
* c23718d5a312155ceed4e3ecc4a7d0948e5084ec: Preserve list result members in authz filters (#6709) (@alex-feel)
* 3ca3c8f71152ad6e109dbb881be13ceb17a2cf3c: Purge LLM tokens on full teardown (#6733) (@danbarr)
* 87de960f619a510b6b627c0cb3cb8c97843d660f: Reduce Podman network normalization complexity (#6809) (@ChrisJBurns)
* 51adbda56e2573a484786ee2663a218e265d21db: Release v0.52.0 (#6810) (@toolhive-release-app[bot])
* 12af93cac86d7c9accd7bb543eb7a26aa625d601: Remove the 10s header timeout from the upstream IdP client (#6755) (@alex-feel)
* a06790ce3c8815650187a1ef54c6756eaef0c241: Unblock config deletion when referrers go away (#6768) (@jhrozek)
* fc57a2232b10eb902f82444866737ab5471ca3ba: Update docker images (#6750) (@renovate[bot])
* 326be93387e16600bd72660c712c23bec9e598fc: Update github actions (#6747) (@renovate[bot])
* 33ba170aad633e20520f380500a45cd158f24aed: Update go modules (#6749) (@renovate[bot])
* 40687d7a25d0d8a16cffeaede79a99d48d0294b6: Update go modules (#6764) (@renovate[bot])
* 5692011cf6e67a82b02ddbea1f7749c2986881be: Use exact version comments on artifact actions (#6761) (@jhrozek)
* 47dbcaba88102d915e5fb1236ffffb70787b8d6f: fix(operator): allow multiple keys of one Secret in spec.secrets (#6690) (@lightsabit) |
| 0.51.4 | 27 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* f2075b4ff8bba6e7ae352815ada78e14d47786e1: Clarify MCP admission and rejection diagnostics (#6727) (@JAORMX)
* a6e228c98cf538c2b5b23a4a4ff9acfd8429a610: Merge commit from fork (@JAORMX)
* 61aaf42df6a1898bc1b4e5c738393b08ef129817: Release v0.51.4 (#6728) (@toolhive-release-app[bot]) |
| 0.51.3 | 26 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* dfb07135cde9036039a2899458ea0ab8b1c74636: Avoid priority annexing unlisted tools (#6127) (@kocaemre)
* 6180ced939170cf4ccc34798e5d76f5eaa8fb32d: Close workflow audit log writers (#6110) (@kocaemre)
* 0f5e7219e05615621db0072eee0f4406007c5a01: Fix spelling flagged by codespell (#6722) (@rdimitrov)
* 024c042fe7895349e15a939c220232e8bbe733e0: Merge commit from fork (@rdimitrov)
* 2c337217db0bba067ac091f9b4f897d0527b89d9: Preserve vMCP resources until requests drain (#6715) (@JAORMX)
* 68465b9c54701201b917ec57f5cb1ce8f9f1efcf: Regenerate OpenAPI docs and SDK for auth config (#6724) (@rdimitrov)
* 88bb28433ae7968027a624f579050b62ce380972: Release v0.51.3 (#6725) (@toolhive-release-app[bot])
* 80f0e847e07e11110e5173995d4e2d2a6dc91704: Update docker images (#6719) (@renovate[bot])
* fffbc1e3f4b884e3f8c880e209e516fd01fd7a84: Update github actions (#6717) (@renovate[bot])
* dcfe0cbd8c95af86e8bcfca9bfb15cf4cc38df49: Update go modules (#6718) (@renovate[bot]) |
| 0.51.2 | 25 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* da92423c351b3fc7db28dadbde671dc6a30aa028: Preserve access across security migrations (#6712) (@JAORMX)
* 90e29fc06d40b6d168c8aee44a091e9ff82fbe0d: Preserve legacy encrypted stores (#6711) (@jhrozek)
* 06a7bfc49902c57fe5da63e58da068d136953e83: Release v0.51.2 (#6714) (@toolhive-release-app[bot]) |
| 0.51.1 | 22 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 2b299c1f48ad3b64aadceb5bf89582ff686f590a: Release v0.51.1 (#6704) (@toolhive-release-app[bot])
* 2c48f39580cbeb3bd1fbcae1d4087760e2d5b300: Route SSE proxy responses to originating session (#6702) (@rdimitrov)
* 226e1bd6ac0c51b9cab8e188cafa5761e52a4212: Update module github.com/stacklok/toolhive-catalog to v0.20260922.0 (#6703) (@renovate[bot]) |
| 0.51.0 | 22 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 3c2a23500430c3fd2682fa8548f97d55fbb6da8e: Add Sanskarzz as ToolHive maintainer (#6700) (@JAORMX)
* 9171b32f912b648b831bf6fe68d76a6ca4fafcdb: Authenticate clients with SPIFFE JWT-SVIDs (#6563) (@jhrozek)
* a31832bbf5c2cccc461fd9311425690c22d9d3d4: Bump go.opentelemetry.io/otel/exporters/zipkin from 1.35.0 to 1.45.0 (#6683) (@dependabot[bot])
* 38584849610cf327759d20aecc932d79f29047c9: Document winget classic PAT requirement in release config (#6692) (@Nashon-Steffen)
* 724e8f8719f3672362fa05d534169f195dc0af51: Drop unusable JWKS placeholders before go-jose (#6697) (@rdimitrov)
* 7937ac76a70ec1905fb18b09650237082165b297: Merge commit from fork (@JAORMX)
* e4e757ba579545089ef4f4381928774055a8bbea: Merge commit from fork (@rdimitrov)
* 78d5781ea0f66d73fab52dcb0bd198ddf149c13a: Recognise every SSE session id spelling (#6698) (@rdimitrov)
* 1fa5e36b948b01ac40e9421b19caa2ce1f61ee26: Release v0.51.0 (#6701) (@toolhive-release-app[bot])
* 44510596c901607d953640efd6d2f499ac2f785d: Update dependency ubuntu to v26 (#6696) (@renovate[bot])
* 59154cc16b28643e90aa357dc1790ad3190431e8: Update docker images (#6693) (@renovate[bot])
* 2f60725641f9890efea0fafb6f28bb4599a2c624: Update github actions (#6694) (@renovate[bot])
* ea99439439ed8f6505cfbfd4f23a71f2a6459fb8: Update go modules (#6695) (@renovate[bot])
* 888fd1f85798f6cd0ccdece9a166048f94d43f82: Update go modules (#6699) (@renovate[bot])
* 30840df2f47343d7ec1f87af2961a96dc4914e8c: fix(operator): remove CRD shortNames that collide with the resource's own names (#6689) (@lightsabit) |
| 0.50.0 | 18 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 59ba54dbd52b4de97b568628a60db9cbf364c93a: Add RFC 8628 device authorization grant support (#6647) (@reyortiz3)
* ef8096c2940a7f074bf332d4ca5b39be1290e297: Add device flow verification page and DCR support (#6682) (@reyortiz3)
* 97b81d897f674f36be7ac97c69880a427d0255e8: Add lock-driven skill key rotation (#6662) (@samuv)
* 6eb93984862c803699ed686454c336b1f8559f68: Add plugin key rotation workflows (#6663) (@samuv)
* 9fb4f660d384e60bda14f7486dc7c494c2be1751: Derive secrets encryption key with Argon2id (#6657) (@rdimitrov)
* e71b55f9c0edb1af4fd9c24e51e3c7b755983fa9: Document key-pair signing trust limits (#6661) (@samuv)
* c2621068e3a966352036b9e726d09bfef8f801c9: Document request-claim fallback provenance (#6656) (@rdimitrov)
* a734c16d3ff730775c66b803e21a369addef822f: Enforce catalog provenance for plugin installs (#6653) (@samuv)
* 440331e9a37ab7e7bf6309d9f99ae309601f59dc: Merge commit from fork (@jhrozek)
* 6cec543e6cae09791d870b1ffeb7f30e30bd9312: Merge commit from fork (@jhrozek)
* 158e6718aca5ea4482b71c759f1b81ca90d55b10: Reduce buildProvider cyclomatic complexity (#6680) (@reyortiz3)
* 6e873dea4d89e4d86aa6c97c3c34f08b3721f984: Release v0.50.0 (#6691) (@toolhive-release-app[bot])
* 031e2fbf337d4c5577e7b6cdeccde403c22c6751: Retry ID-token validation after OIDC refresh (#6559) (@siddiqueirshad)
* 1113b36a5bb9b93883702a3159298a8825e3a205: Simplify Renovate dependency groups (#6658) (@rdimitrov)
* f3dfc9ee6da721d98bd9f867287abd714af77009: Tolerate MethodNotFound for optional capabilities in ListCapabilities (#6660) (@hellouz818)
* f429acc7a14f5972e81992aa318f14885744dd4d: Update cli and ui libraries to v2 (#6611) (@renovate[bot])
* 630354f0e8139c97907e5a517b908a7d7a9e8817: Update kubernetes dependencies (#6589) (@renovate[bot])
* 4d6fccea50129a8f18ef12a614fce94477efc8c0: Update module github.com/cenkalti/backoff/v5 to v7 (#6625) (@renovate[bot])
* 49cf79beff63cd6a68ea85ae907f1868bea4d020: Update module github.com/getsentry/sentry-go/otel to v0.49.0 (#6592) (@renovate[bot])
* 17e6c73c01eae0227d61256dc2fddb15e4e9f7e8: Update module github.com/lestrrat-go/jwx/v3 to v4 (#6626) (@renovate[bot])
* aa913cbc75de249326676d29c57ae694c936661a: Upgrade CI to Helm 4 (#6614) (@renovate[bot])
* 9208d07e78eba8873e98a4199d0f6290df7c5a0e: Use repo variable for Anthropic base URL (#6672) (@eleftherias)
* bab8c660f50911697645c2583beb2286b8739058: Use self-repository syntax for local workflow refs (#6654) (@rdimitrov)
* 9e01c66ac29c21e003e3fb39d0a2e33f4cc3fa8f: authserver/storage: add UpdateDCRCredentialsIfPresent (#6674) (@tgrunnagle)
* 84e3bea7dfec5ccd24b3f16ca75c344cd10be9f6: docs: point nine stale paths at the code that exists (#6650) (@melbinjp)
* 74c659bea21daae1ebd3ccaae846471763355966: feat(authserver): accept ID-JAG assertions with a bound JWT-bearer handler (#6677) (@aron-muon)
* 4e69ba28b426a8672173cb04679061e0a62e00de: feat(authserver): support additional token-request params (RFC 8707 resource indicators) (#6430) (@aron-muon)
* 40554a5565f12b37531c2361eaa7334f48e426d5: feat(vmcp): stop session init stalling on backends that never service the notification stream (#6633) (@aron-muon)
* 5a4854ab807d67725c8ceeabf984ac7b9b98332d: fix(operator): forward default Redis password to MCPServer and MCPRemoteProxy (#6679) (@reyortiz3)
* 619603717b994de122e7723125c4d19f2fd941cd: fix(vmcp): make the version poll interval per-Server, not a global (#6644) (@aron-muon) |
| 0.49.0 | 11 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* a332ba64c700a1ecc3f1a2fd62db76f31edb32c9: Add generated Go management API client (#6637) (@JAORMX)
* 2fd58c5d3ad16bd7abacdae543142d402b31e9fb: Authorize MCP Skills extension requests (#6512) (@JAORMX)
* abd975b4cb7fcb70e6abc3a433a09f7091af27b6: Bump toolhive-core to v0.0.47 (#6646) (@reyortiz3)
* 9d2026186b626431688cb37c96b0f4b94cc12d14: Fix dropped progress frames in POST-SSE responses (#6491) (@isaacgao4396)
* 8ebf792dbbc03f82d45a8f78724438f4963e0f15: Generalize vMCP session dial-control into a per-workload resolver (#6567) (@tgrunnagle)
* 7e52ab91445fb67c680f7e753b45300fcfa90eba: Normalize string role claims before claim-based role mapping evaluation (#6306) (@Yanhaoxi)
* 41dec70ef2c6947c3f509a89755409efeeebc5f0: Publish fallback keys in the authserver JWKS endpoint (#6638) (@reyortiz3)
* 2bb9996271a61396cfc24390e1957932db7a974f: Reject unsigned upgrade candidates in both modes (#6629) (@samuv)
* e532cf07d45fa99f3e4e63819396a3e9c9fd763f: Release v0.49.0 (#6649) (@toolhive-release-app[bot])
* f4b4dedd23dd6ad67f54a5db5b7c87e39952601e: Restore capability-gated --key signing on thv ai-plugin push (#6528) (@samuv)
* a5a747b888f7d5c8c18fa2b1b54c5ac12c459bce: Restore legacy default for OAuth2 upstream auth method (#6648) (@jhrozek)
* 3c544f463ae06958bd76d90b527a13b177d0ba3d: Support no-auth Redis for the embedded auth server and vMCP sessions (#6551) (@tgrunnagle)
* 2d869a1c9fb1977f2f4859490165e10da278628e: Upgrade project to Go 1.27 (#6639) (@JAORMX)
* b934b7c7832e5573131bd93fbc46210fff8562c0: fix(authserver): import miniredis in the runner test (#6636) (@aron-muon)
* bb4c1854709735c1d5205e277ed1f24d84a1cc36: fix(operator): skip no-op VirtualMCPServer Deployment updates (#6377) (@RaviTharuma)
* 8b6ac6ffdbebd7a76da1a27d2f759632550e8f18: fix(sdk): unbreak sdk-verify after the Go 1.27 bump (#6645) (@aron-muon) |
| 0.48.0 | 10 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 9fe5c43aebc984d856919e2c5b787535280e7754: Add SPIFFE client authentication dispatch (#6562) (@jhrozek)
* 59189485a40e6787dfe78b732ce0a8344b75f073: Add dial-control option to vMCP session factory (#6547) (@tgrunnagle)
* 71e8e502e16cdb3ecd803a6776eb3f0e67d0b611: Bump google.golang.org/grpc from 1.83.1 to 1.83.2 (#6558) (@dependabot[bot])
* 2cef443771eac7da5360fd64c9372e152915c139: Document AI plugin support (#6627) (@JAORMX)
* b6e804aa101532655cba5ba3f961776acbbf8b70: Evict vMCP sessions when a backend is dropped (#6549) (@tgrunnagle)
* ada84d0e39e42be873c7369195664dd0307cf2bd: Fail closed on keyed skill upgrade verdicts (#6628) (@samuv)
* ab27a23c5e4ae7f3a971ae56d36c9aa15a136e7e: Fail closed on malformed protected list responses (#6553) (@ChrisJBurns)
* cf9828313199552c12a2102648ff4cb45b49b42c: Fix issue-triage workflow model for Stacklok gateway (#6557) (@danbarr)
* 23644fb4896d1692468d55adf50c76892386ce0a: Fix setup-task version hints (#6565) (@rdimitrov)
* f3caffb9dd8d78d35e3301bfa1ed77f368032d66: Guard rotating refresh-token writes with compare-and-swap (#6548) (@reyortiz3)
* 9bcaec1afc0faa5aaca382e6f25d710627f15767: Harden find tool response filtering (#6555) (@ChrisJBurns)
* 5b669870017ee4b1ea39ea1b95a03f4c5b47aeab: Honour a pinned cosign key on plugin sync and upgrade (#6525) (@samuv)
* 649b242ad0e29c511e20568889b72ee17a708c0e: Make proxy request read timeout configurable (#6285) (@Sanskarzz)
* c25e508592bc3bcfa10dea99af04daaf341db95a: Release v0.48.0 (#6631) (@toolhive-release-app[bot])
* 4d212263a71e1cde07742b340d9587f51d960049: Require a discovery capability for key signing (#6560) (@samuv)
* f8c54a9a579fee92fac7ab3508b21ff59475adbc: Support OIDC dynamic client registration (#6544) (@jhrozek)
* 669cffb1cc30a0374159ef20c17091178e16e87b: Update actions/setup-node action to v7 (#6610) (@renovate[bot])
* 5fa4d2611c89fe477e067aca16a0a19064b00fa1: Update anthropics/claude-code-action action to v1.0.219 (#6568) (@renovate[bot])
* d9387fdf185e9764f96f0d1233e6545ac53701d0: Update anthropics/claude-code-action action to v1.0.220 (#6622) (@renovate[bot])
* d67a9a37f6314e5c74909e7502e909d9cc77daf3: Update auth and security libraries (#6577) (@renovate[bot])
* b6c3477fd1bee1145370a8a579ebf6aa2df51fce: Update aws-sdk-go-v2 monorepo (#6578) (@renovate[bot])
* 847784c1277fa2d35a61a9deb053be5fe72709f6: Update codecov/codecov-action action to v7 (#6612) (@renovate[bot])
* 6e6859f77ad1b53a87b41596d6119cd8173cb306: Update codespell-project/actions-codespell action to v2.4.3 (#6579) (@renovate[bot])
* 56ea13237ba97bb963b84b8d33fb57c1cc481926: Update container build actions (#6580) (@renovate[bot])
* 7d58a66717d370cfb0e2f38a0cc47f78b98bd53b: Update core workflow actions (major) (#6613) (@renovate[bot])
* 52fbca46ecf515ff37f06bf7cfa6b2c19e35931e: Update dependency helm to v3.21.4 (#6581) (@renovate[bot])
* c3453405ab27b8cb72b6930d7e6cdf1eb10832f9: Update dependency helm to v3.22.0 (#6623) (@renovate[bot])
* fcb162f20036f86d8672b7d88c1376a975011b09: Update dependency helm/helm to v3.21.4 (#6582) (@renovate[bot])
* e8a6b26be24ac9d1b57bf3b8053ffe8c489f0226: Update dependency kubernetes-sigs/kind to v0.33.0 (#6583) (@renovate[bot])
* 6d39bf7722ded62bb94594f28ada6ac67e446a69: Update dependency node to v24 (#6615) (@renovate[bot])
* b5854a2b19319d4a1c0b4f326d4eb559a3ce8403: Update dockerfile template base images (#6584) (@renovate[bot])
* 45f48bbf4192284ac2b04578b95535e731336a8b: Update ghcr.io/modelcontextprotocol/inspector Docker tag to v2 (#6616) (@renovate[bot])
* a35f23185a97e7a0208620dd6f602ce473b2da9a: Update ghcr.io/stacklok/thv-registry-api Docker tag to v1.5.2 (#6585) (@renovate[bot])
* f74c319c6a46c63387356e860cf4da85264a2f08: Update ghcr.io/zizmorcore/zizmor Docker tag to v1.30.1 (#6586) (@renovate[bot])
* c8abf17bd7d0bf8db28333eaf0cc53fa1ea8fb0d: Update github/codeql-action action to v4.38.0 (#6587) (@renovate[bot])
* 30675f64a6830113d8ccacc2467fe4ac398bf962: Update go.starlark.net digest to 89a6a09 (#5779) (@renovate[ |
| 0.47.1 | 8 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 1f75a712b5cff3d2ec74f224129397a0ab05fb2a: Merge commit from fork (@ChrisJBurns)
* a1f16cefb6d7e9d70495f603df9b929beb6ba7a8: Merge commit from fork (@ChrisJBurns)
* 73c80e34a2ec77eca54ba61b70cdb453df0e853f: Release v0.47.1 (#6554) (@toolhive-release-app[bot])
* 2533388d7ebce6e8ef6adfbc7b473c35dc6fcb48: Run operator E2E on one Kubernetes version per PR (#6540) (@rdimitrov)
* 527663650e95058c73f869184d1be4575e85fc90: Run short CI jobs on the standard runner (#6541) (@rdimitrov) |
| 0.47.0 | 8 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* e30f1bf371f234396cfdc45b990d2cdc250fd9db: Allow Cedar delegation without an upstream session (#6506) (@jhrozek)
* 4440a7ddffe64db28c52b7fbf45cb89bf488493a: Allow embedded auth servers without upstreams (#6452) (@jhrozek)
* 2ad87a3b3fb44bb0d9c3fb96791f43dc088e93c2: Bound and close HTTP client connection pools (#6480) (@tgrunnagle)
* fd1e7b5874691cb4b019e9783b99357e53a10f1e: Bound and drain hand-rolled HTTP transport pools (#6495) (@tgrunnagle)
* 3b6e59353956616e9997c7ef914fd641e91bd288: Bump google.golang.org/grpc from 1.83.0 to 1.83.1 (#6486) (@dependabot[bot])
* 89fedde52d9a96aeff1af37016980336ea6dacc4: Bump x/crypto to v0.56.0 and adopt go 1.26.0 (#6494) (@tgrunnagle)
* 074c3c690a1dbc341a1a2053da63fde4c0e2dc48: Cancel superseded main validation runs (#6537) (@rdimitrov)
* 0280cf988dc3ce69c84514c7d1ffaeba08deb85d: Cancel superseded pull request checks (#6533) (@rdimitrov)
* 4037560aafa78ca706815815a1e5a60317020135: Close leaked test validators and fix validator-sharing docs (#6504) (@tgrunnagle)
* 788893308ee21be2a9193ac90f4b0eeb4810a048: Define SPIFFE trust configuration (#6467) (@jhrozek)
* 6c1439633651a225da378f33bc7fff65d60a3087: Degrade transient optional list failures in Modern enumeration (#6348) (@lorenzozanee)
* d859bfe06e62443cf9767f864ba06d294faf24fd: Detect GUI editors without a PATH binary (#6481) (@stantheman0128)
* 720209d1d7f7408b53adb547c51f48b1f8c6ed0c: Document SPIFFE association declarations (#6501) (@jhrozek)
* 4aa79fcca594c7881fd215060ba5c692df4b62ef: Encode empty mirrored parameter headers (#6485) (@jhrozek)
* 031675ec5d7439c823f03d5a6f0581956ff2a184: Exclude the x/crypto/ssh DoS advisories from govulncheck (#6502) (@jhrozek)
* 2714d76404bb17c221f4e9b99c61288a6bc92bb7: Expose SPIFFE client-auth registration through the operator CRDs (#6500) (@jhrozek)
* 500f4784984fd5a24eccb8cbabf8b9dd1814a623: Expose canonical inbound grants in CRDs (#6499) (@jhrozek)
* 65eaa1bd05b5cec0b7770f83beeeb5e8f1cb50a9: Fix VirtualMCPServer reconciliation (#6465) (@jhrozek)
* 7f0d08f8641aaca25dbe4772145703facb518af3: Grant CIMD clients the server's allowed audiences (#6490) (@alex-feel)
* 0fb54d437cee848ec7c97c4fa415047ec8b2f63f: Guard OIDC discovery against private IPs (#6455) (@jhrozek)
* ee527be78ea9116868266015e14142b32028d2c9: Honour a pinned cosign key on sync and upgrade (#6478) (@samuv)
* 7bbc1189cd8b424fd8c431a1525bc500d1b120ed: Intersect default scopes with scopes_supported when scope is omitted (#6283) (@alex-feel)
* 0a740048a0469bb93034d95c196343e980cf0c0a: Log MCPRegistry deprecation at most once (#6366) (@asjdf)
* a83059cd5f7f8973aa739fbf2e02d8d5a3888d26: Make proxy request-body limit configurable (#6298) (@Sanskarzz)
* 2cff289f55fff4f4f5f7718dc93aef88a7d6c85d: Merge commit from fork (@jhrozek)
* e180acd80dd2048fc7a7a275e12e23b655bd1da6: Merge commit from fork (@jhrozek)
* 71b0576840c97a9f5544124df44183480b5eb831: Merge commit from fork (@jhrozek)
* eb04008c532aa08dc681aadb4483e02630a61d3d: Merge commit from fork (@jhrozek)
* 9653ef562fd9ce98a63cbe2f35c2f6e8c83d4f7c: Merge commit from fork (@jhrozek)
* 4a41d71a6652dc0b958706a1c46c95d97b88fd18: Merge commit from fork (@amirejaz)
* 6b40bf3d53be0b491c3c7af0b0e189bd911de881: Normalize canonical inbound grants (#6473) (@jhrozek)
* 4fd27ef70d147c3fc8c69d6159dfcdd34abb8616: Persist resolved CIMD clients so Redis session rehydration finds them (#6284) (@alex-feel)
* b5d52b6a9170936925aea6f17f268c4ad2a0be0a: Preserve config-level outgoing auth across backend watcher reconciles (#6513) (@alex-feel)
* d1d76c3b3afca0c5ac6b60f35df40a7cc605f08f: Record a pinned cosign key in the lock schema (#6444) (@samuv)
* 6f73212989f3bdd1f1499e68a2c91f8480d2fc00: Reduce cached token restore complexity to fix CI (#6535) (@rdimitrov)
* a919f589f0855ce6f9dc4b3c46ab73cf92e097a0: Release per-issuer JWKS refresh workers on auth-server shutdown (#6493) (@tgrunnagle)
* 28acc89b418913aafe25552fd5156445d39adf2d: Release v0.47.0 (#6539) (@toolhive-release-app[bot])
* 311cf92763293210517 |
| 0.46.0 | 27 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* ddf38443ec8e790aa1d0226cc38b5297b861a360: Block plugin upgrades that change the signer identity (#6401) (@samuv)
* fd1d2289ea3ade8fc39ab19b9677c53844bb275a: Fail LLM setup when callback port is busy (#6432) (@jerm-dro)
* 8fa9220de1ca69a2c25273d108a6e0b0d5242dac: Negotiate CIMD token endpoint auth method (#6400) (@alex-feel)
* c6c425a924fac51c86cbade15d0e720e29a600ab: Release v0.46.0 (#6448) (@toolhive-release-app[bot])
* 28dd90a4a8e6a4ede9fc3a33e6f349286924a1bd: Scope release-notes tool allowlist for Phase 3 experts (#6439) (@reyortiz3)
* 23e6d2f1130dd17e38f537e939d757a9cd5192b4: Trust private CAs for upstream auth servers (#6428) (@jhrozek)
* b6302d2148c16faa19d1d7b99b8cd070945cb39c: fix(authserver): map deliberate provisioning refusal to access_denied (#6441) (@reyortiz3) |
| 0.45.0 | 26 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 7af27d38297e907c3b92ec4328cc4a8faf5c7195: Accept localhost dynamic-port loopback redirect_uris (#6215) (@jhrozek)
* 3c41b20eb5dc1b5a5d7aa5e71352e41e4cf77f78: Add CEL actor matching for trusted issuers (#6364) (@jhrozek)
* 1f545776d852e02d887d96032da93a3ccce47c4b: Add CLI identity-token acquisition for keyless skill push (#6390) (@samuv)
* 873543844d810d50207518f16290f88c24df968b: Add JWT-bearer assertion grant (#6391) (@jhrozek)
* 89dba0ce7ea0d4ec94179d6ccc2a3bff74d64e9c: Add Qoder IDE as a supported MCP client (#5870) (@haaaashimi)
* 95002a5608f41f4ed10ca3e4349f0f2a1772ac78: Add plugin lock-file sync (#6316) (@samuv)
* a8b3b791342af4f7296ebfe58a9e7cb0af3b43a2: Add plugin lock-file upgrade (#6317) (@samuv)
* c0285d3994e70deb8894e860d59271a80d42adf4: Add private_key_jwt DCR client authentication (#6427) (@jhrozek)
* 9ec0186d2782fe8a4ca80227bc148384c442547b: Allow loopback delegate clients (#6426) (@jhrozek)
* 92be1bffc37ce70b39dfcb55a4eacb5f1b740f43: Allow opt-in private endpoints for remote URLs (#6195) (@premctl)
* b66c49ad8ac124c0e3a79e6d994d7f1a6a984a62: Bump github.com/moby/go-archive from 0.2.0 to 0.3.0 (#6372) (@dependabot[bot])
* 69e922b1eb702a69a4b795b7e47f73a15e6c017f: Check first skill install against catalog-declared provenance (#6420) (@samuv)
* af6877172e51c22af51397e46f243bfc87de32ae: Deduplicate refreshes by storage row (#6361) (@jhrozek)
* e25de16cf9720b13cf0b400c861a2f6840e2763c: Enable keyless signing for CI skill pushes (#6402) (@samuv)
* 75ab44bb46a14845d93fd77cb7f53613731e5ac1: Expose the metrics migration switch to CLI and operator (#6371) (@amirejaz)
* b30ca2b0adceba1b3fa3781e0b672173d9db51db: Fix Windows unix socket URL round-trip (#6416) (@stantheman0128)
* 471e5f5bb8691064f5cbfc54f51371bcbc980d38: Fix atomic local state writes (#6350) (@jhrozek)
* 502cec3113436a58501e7aad8c0c96ca1e4ab680: Guard test backend ready channel against double close (#6363) (@jhrozek)
* 2320d7782413a42e73db0bcd61915fffaea10371: Honor all runtime_config fields over the workload API (#6214) (@jhrozek)
* 7c9c55ef09fae1bbdb49f4ccd1238ab10a27dd07: Honor configured vMCP backend timeouts (#6411) (@christensenjairus)
* ccabad62cb8150729c9435e4a0fb7bae5fc4abc7: Make the metrics endpoint move discoverable (#6369) (@amirejaz)
* 7f15a633caf7c2978925d908adde2d9a5c986cd5: Merge commit from fork (@jhrozek)
* 68dc1ba5c7ee9ead48aeae28409a3fac6b2f3422: Merge commit from fork (@jhrozek)
* 0b8acf26421ea48122add482c90c3c8d7a3dc8ea: Name the concrete removal trigger for the openpgp exclusion (#6286) (@samuv)
* 39a85c8675c034de4546ab37851bc15a8b6e5594: Pin golangci-lint to avoid nilness panic on main (#6393) (@samuv)
* d278b3377d2383088169823b7248040553901b7d: Plumb an identity token through skill push for keyless signing (#6385) (@samuv)
* 63d2522bbf1b35888ec89255c8ed3004c5a216fd: Point five stale doc paths at the moved files (#6388) (@melbinjp)
* 66586bc2bce8c78e24e9f53a0615291019f2ac31: Rate limiting observability (metrics and tracing) PR C (#6282) (@Sanskarzz)
* 789f2fb8e7c0cac6dd8bbcecd0484f71c169a8c8: Re-verify stored plugin signatures during sync (#6399) (@samuv)
* 34f276da4c0b186989c6bfd77e4673b17f0dd8bc: Record plugin installs in the project lock file (#6314) (@samuv)
* cc922a8b47652988ae4d057a957942385fc59270: Release v0.45.0 (#6436) (@toolhive-release-app[bot])
* 2b115568770aea3cea8f0e74d15906b99a14b2a0: Report a rejected stored credential as re-login required (#6389) (@aponcedeleonch)
* d077c74faa044f1d1a5e7c9469093f5c48397e55: Restore transport-port metrics behind a migration switch (#6370) (@amirejaz)
* dd0ea20010a42056d0a13fea4070addfd008cbc4: Resync session tools when backend health changes (#6196) (@premctl)
* fe39aecface7e7579583bf03a713d58272193080: Reuse tool embeddings across sessions (#5996) (@TANTIOPE)
* b6aa0471e93228f74f6b9a64a5e075fb2c0d92a7: Serialize skill sync and upgrade under the lock (#6352) (@samuv)
* 7b72d4b6f71a14c60899d6c732f4a55214d176ca: Serve Prometheus metrics on a separate diagnostics listener |
| 0.44.0 | 18 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 7a0c0a51b8bd8bf823a7134fa936851835e6c207: Fix stale version comment on codespell action pin (#6360) (@samuv)
* 938eec5b08b07d8c34e5f425cc804497cac587fd: Guard OAuth token and DCR endpoints against SSRF (#6351) (@jhrozek)
* c51d154c7d64e1f45dd1ddb700bf48fe765b5866: Harden external may_act delegation (#6353) (@jhrozek)
* 8343851e8a58086ff0768cd35856e14b11d273fd: Push skills unsigned until keyless signing lands (#6334) (@samuv)
* b3df9689bdb7d55d0765565890ba9dc0c076dec0: Release v0.44.0 (#6365) (@toolhive-release-app[bot])
* a35409171ca39b099e3da2013142a1b8145bd9b3: Support actor_token in RFC 8693 token exchange (#6331) (@jhrozek)
* af7c17610afcc0d624ec306a6cec246b5652e3f2: Use an absolute thv path in the Claude Desktop helper shim (#6354) (@jerm-dro)
* 55feedf75f7b6ec673543633773c82c162cb1470: fix(auth): require audience when introspecting via Google tokeninfo (#6236) (@SashaMIT) |
| 0.43.0 | 14 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 41ca9c2dae48cbff931e9943505fbbd4426ac534: Add PluginLockService and managed install flag (#6311) (@samuv)
* 03022064fdcf1f472dbb85a9ded83b6333831e44: Add plugins key to lock file schema (#6303) (@samuv)
* 991fdce08b69c7628f8e584fbdb53a96c849b839: Add zizmor to CI and stop double-running the security scan (#6251) (@ChrisJBurns)
* f8b14e3e6a113da0c5752bb04220bc6acea416ac: Bind the GHCR credentials and chart version in helm-publish (#6270) (@ChrisJBurns)
* 4d77048434ea930e4d90afe7bdd2922fe5c2f812: Bind workflow expressions and drop persisted credentials (#6258) (@ChrisJBurns)
* 3c4dec3c104640be4e5ad623c11b915b8e4e51d1: Bound client-controlled metric label length (#6279) (@Nashon-Steffen)
* d0579299936a6ae16afa9a0f5d456928d54f9c6f: Bump go.mod to get CVE fixes (#6327) (@jhrozek)
* ebb25c203d786fdd2714e42f94faaa33d4e0e7ad: Clear the last zizmor findings in the release workflows (#6281) (@ChrisJBurns)
* 3993308af4e0b3f7d35328acee3da713fe682b97: Clear the remaining zizmor findings in helm-publish (#6275) (@ChrisJBurns)
* db86c06b34e5d60a11561272f367535dd80f05fa: Deflake the initialize dial-error proxy test (#6264) (@amirejaz)
* d1631159e8a9152e7425933f0a0c45095c927f25: Derive PR number from the triggering run in the size labeler (#6259) (@ChrisJBurns)
* 52ad2932e0b41f2ad7cb37ac50abddd3556252c7: Display recorded trust state to the user (#6137) (@samuv)
* 1c030a766a3c92467b596e39cb97c1c2f39d4653: Drop build fingerprint from proxy /health response (#6280) (@Nashon-Steffen)
* cfba58008802f705a199325d92c9488ff3ce4a81: Enforce recorded ref and runner on skill verification (#6315) (@samuv)
* 63f32f3e5dea1bd62b29162d33000f6a0da6e661: Extend private-IP guard to 6to4/Teredo addresses (#6249) (@ChrisJBurns)
* aa1628ee460ca9857c4f3df77ef1549c0322fc6f: Gate the Claude workflow on write access, not contribution history (#6260) (@ChrisJBurns)
* ba90178dc1b1f52dd5908b6b3aacf0c8434bd105: Guard against shell injection via github.ref in image workflow (#6248) (@ChrisJBurns)
* 247a502f9e00cf275bee7aff2f6265496b5b13a1: Ignore unsupported grant types in CIMD documents (#6297) (@amirejaz)
* fc1597f7c21b4427cb497d4d0acfa0d1b72122d6: Let an explicit non-Modern header outrank a reserved key (#6231) (@amirejaz)
* 17e94b386b7a2ec823b78a7d03ae8f5b0da203ef: Make RFC 8693 delegate clients reachable and usable (#6320) (@jhrozek)
* ef5bb19e696f62153661d63051ffd6cfa92b280a: Make the zizmor check blocking (#6274) (@ChrisJBurns)
* e7dd5fa71ffe5fd88685fa2c4e21bca314c5f83d: Parse multi-line Modern SSE events (#6126) (@kocaemre)
* 659967a0e5fb90e837bb59ea6375ff0bb22ff2d3: Pass only the secret the test workflow needs (#6269) (@ChrisJBurns)
* daef21a16303fa5099ed12797f91346c2a12915a: Pin CodeQL SARIF action comment to v4.37.6 (#6313) (@samuv)
* caa351d740f5a4b4d7fe90f1c6beafc1abc316f0: Pin actions to commit SHAs and fix stale version comments (#6254) (@ChrisJBurns)
* 5c3bafb2ced2ac2ef7487d9305a65857066666b1: Rate limiting observability (metrics and tracing) PR B (#5800) (@Sanskarzz)
* 17f07080eff11d5d7b5cc825bd9a21924fe34dc0: Record certificate ref and runner in lock provenance (#6312) (@samuv)
* 8f294e26a9eecfc439c09e3e1d58a241064054f6: Release v0.43.0 (#6333) (@toolhive-release-app[bot])
* 374c30688e5b5a41fe5f38337123f2308c8d70b6: Reset the LLM config when the last tool is torn down (#6295) (@jerm-dro)
* 094a621ee0b789581869af66e9abd1f2a8fdea93: Scope releaser permissions and bind the tag expression (#6263) (@ChrisJBurns)
* ba2cbcb96b00307e5708d279c6ae9380dc628d7e: Scope the release app token to what releaseo needs (#6266) (@ChrisJBurns)
* 06483ba38d8972fc462ff7f97fcd77914567a908: Scope the remaining release app tokens and bind a trailer (#6272) (@ChrisJBurns)
* 78541159f68fe251b0e1dbda7b5222658654738c: Sign pushes by default and remove the lock feature gate (#6139) (@samuv)
* 7164e36933412b5473b78a0fa552b672eb54dcf2: Sign the macOS thv binary with a Developer ID certificate (#6156) (@eleftherias)
* b20cb9fde3684975c16d8933a726f0879e96c7fa: Stop persisting |
| 0.42.1 | 10 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* acc6df345826bf0ae4fe31f4f5a3be205f47cf3e: Add a consent model for external OIDC subject tokens (#6149) (@jhrozek)
* 7544632f877c76912c5d70ad296450875ae66a1a: Add deny-by-default visibility to vMCP aggregation (#6163) (@jerm-dro)
* d29e0d515c7dda24a876d01a85e6e707829030ad: Block only repository moves, not tag moves, on upgrade (#6225) (@samuv)
* 3e5e65fbde0a4eecd61353aa75ca78a582599f90: Clean up deny-visibility validator and CRD docs (#6233) (@jerm-dro)
* 39f38cec9e70d1f7d19e1d4c168d483d66b7988a: Delegate images keychain to toolhive-core (#6147) (@JAORMX)
* 8863eb019a74d3362a7d1398cb6dc452783d5102: Handle non-fatal httprc errors in JWKS registration (#6221) (@danbarr)
* f3a2818424de73e5f3d287e6f4c29fb554ba0b24: Keep the OIDC callback listener alive when an LLM proxy client disconnects (#6229) (@jhrozek)
* e7a995b4d42956ce82a0bd574a9f036360d06350: Pass CA-aware HTTP client to JWKS registration (#6220) (@danbarr)
* 04198d41c211b3511dcbbd00c68ad2c6d4d54a8c: Reject tools/call for tools hidden from tools/list (#6216) (@jerm-dro)
* 06940e81da347135584a4222e963b4e9324e129e: Release v0.42.1 (#6247) (@toolhive-release-app[bot])
* 12ffd7a5b7356cb84e64c165078a7b4fa61dbf73: Resolve relative --project-root before the API call (#6223) (@samuv)
* e91586abd19294d40e8262c1078ba1f2c7e796be: Resolve relative --project-root for ai-plugin too (#6226) (@samuv)
* ee293aa10d5ca046962d29534cb7d739fd38ef80: Skip known-bad backends when opening vMCP sessions (#6162) (@jerm-dro)
* f178d9ebe3b26b267cee37d01a9dab78e901d8d5: Skip logging/setLevel on a Modern-negotiated session (#6184) (@amirejaz)
* 2e83cd197abf6ee2fe07fda40d6a1a7d8ddaad09: Stop severing plugin artifact pulls at fixed timeouts (#6228) (@samuv)
* 127cc88d81990b59bd6d3bd1809c630de2e11513: Stop severing skill artifact pulls at fixed timeouts (#6224) (@samuv)
* 91d6a79e24e3ddeef8e67bff109738a902dd62bf: Support MCP tool annotations for composite tools (#6208) (@JAORMX)
* 32086362cc0d7059ba0c48f972f84aa968700389: Update module github.com/go-git/go-git/v5 to v5.19.2 [SECURITY] (#6244) (@renovate[bot])
* 3cb828f3b8d9d3119cde8ce1ea7af0803e68471a: Validate MCPOIDCConfig inline issuer and JWKS URLs (#5936) (@lopster568)
* 8a05eddd5cca1a34c5f96dc83c83d41cf7eb899b: fix(authz): reject non-JSON POSTs instead of skipping authorization (#6234) (@SashaMIT) |
| 0.42.0 | 5 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 262851ffdb83628a93579a65d32d96d82bcc7682: Add gitsign commit-signature verification (#6121) (@samuv)
* 724ad1f5c669028314d5c450cd879206ae275aa9: Add plugin REST API, thv ai-plugin CLI, and HTTP client (Phase 4) (#5782) (@JAORMX)
* 742ae76aef9159576d3a6518fe01b4595a0dc688: Add plugin registry catalog surface and name-based install (#6135) (@JAORMX)
* ef1ce91a9c8070b16f1033be7e365fec45c7c10d: Add skills verifier wrapping toolhive-core Sigstore exports (#6091) (@samuv)
* 247480f167dc186f5d4aa4d7427d2524d06435f5: Adopt core MCP semconv bucket preset in telemetry (#6144) (@JAORMX)
* 652f3c06608e91f7e9767572b0d3e8f15a5d2990: Adopt telemetry providers from toolhive-core (#6146) (@JAORMX)
* 33e06f4f5c3fcbb75fe67df66af6d381401c7463: Alias audit event constants and logger to toolhive-core (#6148) (@JAORMX)
* 798f37c1a27c1dbecfee949b15b0c76fc158f2f0: Authorize and accept call_tool with nested tool_name (#6150) (@Tanguille)
* ebbdccefa5117ef70b31c251239adcd6f791bbd1: Await manager shutdown before stopping envtest (#6179) (@aponcedeleonch)
* baba8bf608d363d90efe91b86dce95c28986464b: Block upgrades that change the signer identity (#6132) (@samuv)
* 09dfc7bb728a80448bbe1e0bbb60c684b219045c: Confirm Modern promotion with a discover probe (#6158) (@amirejaz)
* d5e8996e21b714137be915b62a84f8ce396b198a: Decode the call_tool target as dispatch does (#6175) (@aponcedeleonch)
* 32f75d99d08fdefa4fff8e67dde259f1a0f7529e: Delegate recovery middleware to toolhive-core with observability hooks (#6145) (@JAORMX)
* 63a0a9b9a15e3153cd7fcc8b76c274408f5885c8: Expire the refuted-Modern-hint memory after a TTL (#6185) (@JAORMX)
* 3d44435d7bfc98ce59fb37a985a0f4c1e23d81d7: Fix port-selection TOCTOU race in e2e tests (#6142) (@jhrozek)
* aa3f5b3726e12cb9c516c1e4e65a80e580c903d6: Forward resource-read _meta in vMCP and the transport bridge (#6180) (@JAORMX)
* eedf566f3436bec92bd2236f47317b4c8b099666: Keep optimizer store's in-memory database alive (#6157) (@aponcedeleonch)
* 6a428a873b78bc0df13e37b2f5893f118bfdb804: Opt Modern backends into log notifications via logLevel _meta (#6140) (@JAORMX)
* 9cce585ac56351821ec8614ee3e0136ffca4bc69: Pin elicitation fail-fast without a standalone stream (#6182) (@JAORMX)
* b7e824c5bb14fbdb2c5df919e62d6d8a848ad1cb: Pin ida-pro-mcp e2e image by digest (#6159) (@aponcedeleonch)
* e439d1f728c0d24e29d108023c2629263fdf4afb: Pin mcp-server-time e2e image by digest (#6160) (@amirejaz)
* 1f50e2b4549a471d2967ed8562ab748c2b819f31: Re-verify stored signatures offline during sync (#6131) (@samuv)
* 11a18f1139ba245e8477ef9c78ea39bbc4ec8a74: Refresh the cached MCP parse after webhook mutation (@jhrozek)
* 2c623d5708a638a4bee515f5aef2a69dba999740: Release v0.42.0 (#6207) (@toolhive-release-app[bot])
* 0a0cbd94929c050fa56e46b7f7da01c9b69f2dec: Remove referencingWorkloads/referenceCount from config CRD statuses (#5631) (@ChrisJBurns)
* 5fecff44a4a1d6e613937233a8825a6722d41a73: Serve repeat initialize from a cached result (#6153) (@amirejaz)
* 4b5b53d0669d99a9605bdfa95b7258e190a5aeaf: Set Windows DACL on discovery directory under LOCALAPPDATA (#5951) (@stantheman0128)
* a48448db49ed447c88a3f5378ef18faabe8d704f: Strip session ID from proxied initialize requests (#6152) (@amirejaz)
* b02a9841db240ffcd4c630ea71b4adb35c5236d1: Update anthropics/claude-code-action action to v1.0.183 (#6173) (@renovate[bot])
* b7074f7def8be042fb65cff0ce7e28a87e8324ad: Update coverallsapp/github-action digest to 8d6379e (#6165) (@renovate[bot])
* 7bd378b24b7b1c5245ef064d99b938de9a1435c8: Update github.com/tailscale/hujson digest to b80ff77 (#6166) (@renovate[bot])
* 7d467113d910703a8177a4b35bc2084444ec7eef: Update github/codeql-action digest to f205ea1 (#6167) (@renovate[bot])
* 227ee7b3ce1425e5c7302c15887c0eb3b16c322d: Update module github.com/stacklok/toolhive-catalog to v0.20260804.0 (#6193) (@renovate[bot])
* 6658f8419234dcf29f28a9dfa80b1f84f159696d: Verify skill signatures at install time (#6129) (@samuv)
* ea71bd28ea914ad5e38ee438abba991c52b02c85: |
| 0.41.0 | 28 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
- Add --uv-with constraint support for uvx:// builds; unskip arxiv e2e (#6111) (@JAORMX)
- Add Envoy network-isolation e2e tests (#5918) (@ChrisJBurns)
- Add Envoy network-proxy backend behind TOOLHIVE_NETWORK_PROXY=envoy (#5907) (@ChrisJBurns)
- Add Redis-backed mixed-era vMCP e2e coverage (#6056) (@jhrozek)
- Add Sigstore signer package for skill OCI artifacts (#6023) (@samuv)
- Add SkillLockService interface and managed install flag (#5893) (@samuv)
- Add commit-signature plumbing and sigstore bundle storage (#6084) (@samuv)
- Add live e2e tests for dual-era stateless proxy behavior (#5981) (@jhrozek)
- Add opt-in strict MCP-Protocol-Version validation (#5957) (@JAORMX)
- Add project-level skills lock file schema package (#5892) (@samuv)
- Add provenance and unsigned fields to the skills lock schema (#6015) (@samuv)
- Add regression pins for TTL, DNS-rebind, bridge, schema (#5977) (@JAORMX)
- Add stateless routing to streamable MCP proxy (#5839) (@jhrozek)
- Add thv skill sync: restore project skills from the lock file (#5895) (@samuv)
- Add thv skill upgrade: re-resolve pinned skills to newer content (#5896) (@samuv)
- Add typed exit codes and confirmation gate to skill sync/upgrade (#5897) (@samuv)
- Add vMCP per-session security regression tests (#5974) (@JAORMX)
- Adopt toolhive-core canonical delegation-chain schema (#6107) (@JAORMX)
- Audit authentication failures and webhook denials (#5874) (@JAORMX)
- Audit stream opens on flush and pre-write panics (#6005) (@JAORMX)
- Bind the vMCP test server's port directly (#6044) (@JAORMX)
- Bound delegated token audience by subject token (#5882) (@jhrozek)
- Bridge era-mismatched client×backend cells in vMCP (#6006) (@jhrozek)
- Bump klauspost/compress to v1.18.7 (#6041) (@JAORMX)
- Bump toolhive-core for tool-schema ingestion fix (#5990) (@JAORMX)
- Capture RFC 8693 act claim in audit logs (#6046) (@JAORMX)
- Classify Modern mid-call capability refusals per spec (#6061) (@JAORMX)
- Close authz response filter bypasses via media type and status (#6092) (@JAORMX)
- Complete Modern client-facing dispatch (#6050) (@JAORMX)
- Consolidate the negotiate-down rationale (#6017) (@JAORMX)
- Consume backend list_changed in vMCP and propagate to clients (#5965) (@JAORMX)
- Correct two references in the canonical rationale (#6025) (@JAORMX)
- Default storage version migrator to enabled in operator chart (#5603) (@ChrisJBurns)
- Deflake CI: TUF warn mode, readiness diagnostics, test races (#6063) (@JAORMX)
- Deflake TestWorkflowEngine_ParallelExecution (#6112) (@ChrisJBurns)
- Deflake real-backend forwarding tests (#5963) (@JAORMX)
- Deflake vMCP forwarding notification wait (#5941) (@JAORMX)
- Design MRTR for vMCP and land the typed input_required seam (#6074) (@JAORMX)
- Document vMCP backend revision classification (#6016) (@JAORMX)
- Drain backend notifications before per-call client close (#5960) (@JAORMX)
- Drop ambiguous prompt names instead of failing aggregation (#6099) (@JAORMX)
- Echo the request JSON-RPC id in session-not-found 404s (#6031) (@JAORMX)
- Emit conformant JSON-RPC on denial and error paths (#6055) (@jhrozek)
- Emit event: message on streamable-http SSE frames (#5954) (@stantheman0128)
- Extract a swappable networkProxy seam from deployOps (#5906) (@ChrisJBurns)
- Extract shared event prologue in WorkflowAuditor (#6122) (@JAORMX)
- Extract shared source-dispatch skeleton for skill sources (#5967) (@samuv)
- Fall back to Legacy on an inconclusive vMCP revision probe (#6001) (@jhrozek)
- Fix Cedar deny-all when upstream JWT lacks identity claims (#6022) (@JAORMX)
- Fix Envoy isolated-server readiness and enable e2e tests (#5926) (@ChrisJBurns)
- Fix bridge_regression_test build after reserved-meta API rename (#6029) (@JAORMX)
- Fix concurrent isolated-startup races (network create + ingress DNS latch) (#6071) (@ChrisJBurns)
- Fix contradictory upstream ID token exp contract (#6036) (@JAORMX)
- Fix digest-pinned image pulls failing at container create (#59 |
| 0.40.1 | 20 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 9bde3e4a3608d3fae0fad9a48b8d96ce1516823e: Audit authorization denials on the proxy runner path (#5872) (@JAORMX)
* 38b03b6fa2234adddd8a75b540d994360bd5a530: Capture proxy logs in conformance CI runs (#5863) (@jhrozek)
* ee9612b4821a2580c345e12fd3862caa98aaee80: Fix isolation error wording and log-level rationale from #5794 review (#5853) (@aponcedeleonch)
* 0b6e1f13d960c182a0c526f13b3ee0a0f66cd873: Release v0.40.1 (#5877) (@toolhive-release-app[bot])
* 52ecebcca4eb5bda15b26fd0aac00bd2298bfc1c: Respect DCR-negotiated token endpoint auth method (#5866) (@tgrunnagle)
* 67f6ba7b4425438b5b620356ad701f0b6f407805: Serve prompts per-session in vMCP (#5857) (@JAORMX)
* 1c60f0faf53561140cf9884f83f5f3447b307ee5: Stop VirtualMCPServer hot-reconcile on cleared podTemplateSpec (#5846) (@jhrozek)
* 9f4b2118efac80001bf35a0c957f4979357b352f: Stop auto-requesting changes on XL PRs (#5864) (@jhrozek)
* 9df07fa0713e9fdb318293b9a6e8ca21e6fa5bc0: Strip hop-by-hop headers before SigV4 signing (#5836) (@Yanhaoxi)
* cd497a2c70993cbcce2e0f3606b30554e19181a8: Update anthropics/claude-code-action digest to af0559e (#5868) (@renovate[bot])
* 5f0a41486b50b7ec6440ce1441fa3d2dd5870ee3: Update module github.com/stacklok/toolhive-catalog to v0.20260717.0 (#5858) (@renovate[bot])
* b44556eaa55f3b4d3579fcc01a78d6fc164809b3: Update module github.com/stacklok/toolhive-catalog to v0.20260720.0 (#5876) (@renovate[bot]) |
| 0.40.0 | 17 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 234ecbdfab0cc20900522014f6a78629b85de660: Add MCP 2026-07-28 revision classification and method vocabulary (#5834) (@jhrozek)
* 3040872c8ccf1cb3f3d9ede995a0fb042f5e3e91: Add RFC 8693 token exchange handler to the embedded AS (#5822) (@jhrozek)
* 7b3cca1ea80179e82b26771c4c85a01e9086dc53: Add upstream identity to DCR credential cache key (#5824) (@tgrunnagle)
* cab6e171e40c7263cee96114ee450b90abf6d608: Follow list pagination cursors in vMCP capability discovery (#5851) (@JAORMX)
* 29b8d00b7176cd9822f599bcfbc2e3bc3b323d7e: Guard upstream-DCR HTTP calls against SSRF (#5826) (@tgrunnagle)
* e14bb31db8fedae730a0c2a347bb7e46a6bde29b: Harden vMCP authz gate: single parse source and reserved-name check (#5850) (@JAORMX)
* e7c6fd5483f941a2dcc75e5d19cdab696366e327: Reconcile network isolation with network mode (#5794) (@JAORMX)
* 505df835ed73790bb9be7db7944ec772dc136a0e: Release v0.40.0 (#5855) (@toolhive-release-app[bot])
* 8c5b00ab0d667523d9ec3e30a2aacb2bec041ace: Resolve temp dirs in plugin adapter tests (#5849) (@jhrozek)
* 748ddd8d3fb2a88ba99aee37256d4b663305b49b: Return HTTP 403 for authz-denied vMCP calls (#5827) (#5841) (@JAORMX)
* 17aeba24e3062cccd2a1a43e64683b6506205e80: Update github/codeql-action digest to 7188fc3 (#5778) (@renovate[bot])
* 61946f9836021d7e42135d30090c961a859c672e: Update golang.org/x/exp/jsonrpc2 digest to 9ea1abe (#5780) (@renovate[bot])
* e07da78de95357fe36b264dd628c62adc54fbf29: Update module github.com/stacklok/toolhive-catalog to v0.20260716.0 (#5843) (@renovate[bot])
* b9fcb21032da4d6578a84549fe76fb26d1987f8a: Update module github.com/stacklok/toolhive-core to v0.0.29 (#5840) (@renovate[bot])
* d76d4e3bd687d54d61b17a1ef6bc384b8a48f709: feat: migrate from mark3labs/mcp-go to toolhive-core/mcpcompat (go-sdk) (#5729) (@JAORMX) |
| 0.39.0 | 16 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 30fb5d2ceb34a82102a2ff3d3e10cc5463573915: Add Bedrock compatibility flag to thv llm setup (#5832) (@aponcedeleonch)
* 4ebb610f23d670b2381b18d5edebf18d48fdb2e5: Release v0.39.0 (#5833) (@toolhive-release-app[bot])
* 2894cace60187141c92eed9bb689eedf287fac8b: Stop VirtualMCPServer hot-reconcile on cleared imagePullSecrets (#5821) (@jhrozek)
* e4c7c1c0faff1d260679d2defa1fb0f056fabf23: Update module github.com/stacklok/toolhive-core to v0.0.28 (#5798) (@renovate[bot]) |
| 0.38.0 | 15 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* b80f1c30b6c3640f0867e6f54b0c1aebca314443: Add Codex App LLM setup support (#5810) (@JAORMX)
* 30ecff0194f12642e504f0f9d115ad830abaa775: Fix tool-filter terminal drain dropping error bodies (#5816) (@aponcedeleonch)
* 116421213382e82016067d32581b61f4fe1ab807: Release v0.38.0 (#5820) (@toolhive-release-app[bot]) |
| 0.37.0 | 15 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 794bcb4452eb6b412550a4718c4814eb46f379c0: Add MCP conformance CI job for thv run proxy (#5806) (@jhrozek)
* 3a55fad1623ca844f69732f3e68e3537b26b9ab4: Add runtime-stage environment variables to protocol Dockerfiles (#5801) (@danbarr)
* 52f82eddc6b6322cb372c8d0c6392a13919048f2: Added spec.podTemplateSpec support to MCPRemoteProxy (#5531) (@Sanskarzz)
* c3a2da258e78fcfe253d1afee4bf927ed47c9846: Document operator phase conventions (#5766) (@buyicoder)
* 59d846654f2842df83fc3fe0ebe277a9dee7ed84: Expose --allow-docker-gateway in workload API (#5799) (@kantord)
* 1ec735238c066e6e2d1fe2088ef337f1f701c6ca: Flush tool-filter buffer after handler returns (#5809) (@aponcedeleonch)
* f4632d8deab998b65b93b870901c65fe6935c27b: Prefer context7 for MCP spec lookups, drop hardcoded version (#5805) (@jhrozek)
* 90539bbb40fe56c934b2c3a09a14fffa4aa95043: Release v0.37.0 (#5811) (@toolhive-release-app[bot])
* 24cbd8e9788c8de96ea1660cbd7eef284c38f4ad: Stop SSE filter from leaking tools/list on undecodable lines (#5304) (@saivedant169)
* 9e50934751f23a674d4192df20f0d520f7f93821: Validate aud and resource claims in returned ID-JAG JWT (#5716) (@jhrozek) |
| 0.36.0 | 14 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* e9473d56b4242590519833e2b40f8ef675ab526b: Add Codex CLI direct-mode support to thv llm setup (#5789) (@jerm-dro)
* f58dbd596368b7318a650ce81608173878087844: Release v0.36.0 (#5795) (@toolhive-release-app[bot])
* 75b3ed7660e8d839207faa7208ac53f3ed3e7406: Update anthropics/claude-code-action digest to f1bd27c (#5777) (@renovate[bot])
* 76f76bd57bff330c3d73680c34a41523988cdba7: Use llmgateway mode constants for direct/proxy modes (#5790) (@JAORMX) |
| 0.35.0 | 13 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 709c918aeeff323a6ac9101c02753f1b5b707183: Add ListBackends/LookupBackend to the vMCP core interface (#5763) (@ChrisJBurns)
* 8e45112dc0903f249b172ab42c4d530889f02351: Allow HTTP upstream OIDC issuers for in-cluster dev environments (#5787) (@ChrisJBurns)
* 34a2169e5ce4c350c2f910bcdd43b9084c5c4a4f: Improve documentation discoverability and cross-linking (#5739) (@JAORMX)
* 3cbfbaec419861288a426775b29de596511a8b19: Rate limiting observability (metrics and tracing) PR A (#5701) (@Sanskarzz)
* d2f6812e7d0df4d756ec9a9c31f98e973bb1eea6: Release v0.35.0 (#5788) (@toolhive-release-app[bot])
* 687ce42358938efbac4a8f5c66fb219f86142132: Suppress GO-2026-5932 (x/crypto/openpgp deprecated-by-design, no fix available) (#5781) (@JAORMX)
* 9662681329fdf5f09109e989d398fcfbd94be277: Update module github.com/stacklok/toolhive-core to v0.0.27 (#5736) (@renovate[bot]) |
| 0.34.0 | 7 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 5e3e74278db4e3f5c23ea42a0a3b427d66bde42d: Add Claude Desktop as an LLM gateway client (#5712) (@jerm-dro)
* 01d4c9abbd57b52519fe327a42ab3504d222cd9c: Add plugin install/list/info/uninstall + MaterializationAdapter (Phase 3, THV-0077) (#5685) (@JAORMX)
* 71ed00c8ce6eb89fca8075607dfbd3b81d65f2b6: Allow custom HTTP headers on the OpenAI embedding client (#5704) (@gabrielcosi)
* a935334ff4271a847879245c74a2198710143bd9: Document that --allow-docker-gateway ignores allowed ports (#5714) (@eleftherias)
* 7c383d6e35fcd57e809af389b9f760499d1b043b: Drop unconditional ACL password guard from auth server Redis storage (#5734) (@JAORMX)
* 61655d18b6f084e9686839ed9e6fe510b2f796e9: Expose UpstreamFilter through authserver.New facade (#5733) (@tgrunnagle)
* 609c0ad2f6bce7a81c9b306d5efb858c4e45e788: Filter upstream auth chain via callback hook (#5725) (@tgrunnagle)
* ab02caeffb686c931ec6438a7e5f13d99f670810: Fix TOOLHIVE_DEV plain HTTP breaking real OCI registry pulls (#5735) (@samuv)
* 72da2e8bef139859b064e14460d27ba1943340e8: Fix documentation link rot across the repo (#5711) (@JAORMX)
* 06a5674701340defdc5f988e345ef14d2ef63b7c: Make --allow-docker-gateway grant host access, not just unblock it (#5707) (@eleftherias)
* 8ba812e01c6c279035e8d67964e66ccb593b4f9d: Preserve external annotations on operator Services (#5731) (@blkt)
* b084be45ce404313d6022a341f51543057b0881b: Release v0.34.0 (#5737) (@toolhive-release-app[bot])
* ba88b46039bdce3624490dc62ceb8d87f5f25f71: Remove Amp editor extension clients (#5717) (@ecgang)
* c46b038175441311d84fcb15f996cdc0c4770eec: Replace opaque Step A/B labels in XAA CRD comments (#5703) (@jhrozek)
* 8010cd0db632a45e610eb78019830f1fecc97e90: Sort aggregated tools by name for deterministic embedding order (#5709) (@gabrielcosi)
* d70cc41a0545707759226dd02a58c0b31e6e54dc: Support nested map claims in Cedar authorization for act claim (#5713) (@jhrozek)
* 7d08e2e8a901d5506d0f2b673fbc1229f7c07d42: Unify subject provider defaulting, hard-error xaa (#5708) (@jhrozek)
* 879865d71511943477fbba91bdc6a12a1c539a0a: Unify token-endpoint URL validation, fix insecure-mode gap (#5706) (@jhrozek)
* 953f5b988a39eccd897a86f5751194549ec1896b: Update anthropics/claude-code-action action to v1.0.165 (#5721) (@renovate[bot])
* f64f9a14ab7649b344734a5cb83ac5e6327cb637: Update anthropics/claude-code-action digest to 558b1d6 (#5718) (@renovate[bot])
* fb69e0008eb56df98c1c99e1b2d92f0280ab97a3: Update auth and security libraries (#5670) (@renovate[bot])
* f6d67b4eafabe79a86f48a59c64b86abcdd73faf: Update aws-sdk-go-v2 monorepo (#5722) (@renovate[bot])
* 69826e94fa9fcc4fcb9db32835fc05b237c400d2: Update github/codeql-action digest to 54f647b (#5719) (@renovate[bot])
* 95941ccead9d7936fd89591987a4fec4b7b0fd2e: Update goreleaser/goreleaser-action digest to f06c13b (#5720) (@renovate[bot])
* fdca599ca6ed6015cf0888d49c81a4bb097f17f3: Update module github.com/getsentry/sentry-go to v0.47.0 (#5726) (@renovate[bot])
* d27d85aed7383f00fd6058807750b2a0fc97ed4e: Update module github.com/stacklok/toolhive-catalog to v0.20260706.0 (#5728) (@renovate[bot]) |
| 0.33.0 | 1 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* f49526f6c0edea8ac40abc0dcf177aff388dfdc8: Add XAA auth strategy CRD support (#5691) (@jhrozek)
* d5092b108a6461f2f8293c8dc5b6f0d1ac660f73: Configure rate limits on VirtualMCPServer PR B 2 (#5522) (@Sanskarzz)
* ae9fb3090c734f5341992d392ce072b6bff4e7c8: Fix stale pre-pulled image tag causing flaky E2E tests (#5693) (@reyortiz3)
* 2aca563879963a905d98fa4479e384371367275a: Release v0.33.0 (#5698) (@toolhive-release-app[bot])
* 99e233dc93a833680bf9ca47467fa0b51497ddff: Update go.starlark.net digest to 529d8e8 (#5520) (@renovate[bot]) |
| 0.32.0 | 30 de juny del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* e9444108dea71adf71448a9ab4ea5c9f6593f1a3: Add E2E test for upstreamInject identity propagation after cross-pod Redis restore (#5660) (@tgrunnagle)
* 81fc91febaa2c8574a1f5a8ee1ab9eb762442ae5: Add OpenAI-compatible embedding client to vmcp optimizer (#5633) (@gabrielcosi)
* 87b4f10198f02fdfd75ec041e48758e08574f704: Add Origin header validation for DNS-rebind protection (#4908) (@JAORMX)
* 1bb20f958a043dfcdfd613992348907ec352fc9c: Add XAA (Cross-Application Access) outgoing auth strategy (#5684) (@jhrozek)
* 74d35234f559dcc212ba808fa6a579c33677292f: Add good-first-issue and good-tenth-issue contribution guidelines (#5634) (@ChrisJBurns)
* 6327b364c3bf92758f11ab96f2fb51f326503d77: Add plugin core service, validation, and storage (Phase 2, THV-0077) (#5676) (@JAORMX)
* 7eebc042d6f2b4f14ad3beb55142ef8e5e30eb8c: Add tests for --allow-docker-gateway behavior (#5644) (@ChrisJBurns)
* 5310b0cfc9a53be3ee9058a64584d49d1f7624c5: Add vMCP OBO strategy seam (OBOConfig field + stub + override hook) (#5624) (@tgrunnagle)
* 0fad777973dc52808ecc1b970fb4d269cdfe2a98: Dedup upstream-token refresh on a shared refresher (#5635) (@jhrozek)
* baf80506b4becd9a374cdbc1bae016850784380b: Expose InsecureAllowHTTP on EmbeddedAuthServerConfig for VirtualMCPServer (#5671) (@tgrunnagle)
* 7b871f7b08f84e9dad74ccf77a4683f7d4d00462: Fail closed on unpersisted rotated refresh token (#5636) (@jhrozek)
* 748d43c5f218d34b8442d92f4d7e94f698bb8a46: Fix DetachedEnvVarValidator rejecting optional secret env vars (#5689) (@danbarr)
* 04ec6077083a84a558dc29f73f076f68c41d18c6: Mount and validate OIDC CA bundle on remote proxy (#5630) (@ChrisJBurns)
* ecb9a8d84bbd10f8c270e1bd61adf6c27ba43644: Release v0.32.0 (#5692) (@toolhive-release-app[bot])
* 6132d91b8b5d300a3372ae5f99efba3c2272f905: Remove dead vMCP discovery seam and default router (#5627) (@tgrunnagle)
* e7934ea85eaba9ac8465fdde38ff00dd2524b198: Remove redundant stale-ref scans from config controller watches (#5626) (@ChrisJBurns)
* 3b4f8634c9470f0f098707eba7333d69da9fcd7f: Removed redundant annotation-based reconcile triggers in config ctrls (#5629) (@Sanskarzz)
* 87bcb74ca62ec756c80b47324db7a7ce80c4ebf1: Return 401+WWW-Authenticate when vMCP upstream token is unrefreshable (#5651) (@tgrunnagle)
* 5fe154d4924f840b05e16f417e34dc58566d031c: Stop fabricating partial identity in RestoreSession (#5650) (@tgrunnagle)
* 9659699727a2ec4e57e66702a5617c7c00499ff9: Strip client Authorization on upstreamswap custom header (#5661) (@jerm-dro)
* 98b35dbbca2c33c9083cbe43ec11fcd3c4e9ef8b: Surface upstream ID tokens through auth middleware (#5682) (@jhrozek)
* 12105e37462847da17be0a47545fc75debe63ee0: Update actions/create-github-app-token action to v3.2.0 (#5667) (@renovate[bot])
* 778ee76bf41d51ab510733555352c288935575db: Update alpine Docker tag to v3.24.1 (#5669) (@renovate[bot])
* 9104ba5f2e20b33cc12cfd692813e387a9407ec5: Update anthropics/claude-code-action action to v1.0.159 (#5665) (@renovate[bot])
* 98440fd6012d12ffbc24966f6088e5fdf97062aa: Update anthropics/claude-code-action digest to a92e7c7 (#5662) (@renovate[bot])
* d7d5fb3d87a1a75be5b6ebcd3be58aa1e7bb9914: Update core workflow actions (#5663) (@renovate[bot])
* 7a6ccb77fa94845fde72be579565fa32516095ce: Update module github.com/stacklok/toolhive-catalog to v0.20260629.0 (#5683) (@renovate[bot])
* e6a09604e15946afdb043fc627da3ae422205e27: Update setup and language actions (#5664) (@renovate[bot])
* 729ebd1e66bd8300599b92f494046f8091fb6b81: feat(operator-chart): add post-install NOTES.txt (#4615) (#5656) (@syf2211)
* 9e6044016fbfc6191cb9e07fe798039c77ead9d0: fix(auth): treat typed-nil Identity in context as absent (#5653) (@syf2211)
* 7c574e2c5a2cfc2ca9430eb836a9573556855cd3: fix(operator): always apply vMCP PodTemplateSpec strategic merge patch (#5641) (@syf2211)
* c1122b92cffb230ba9d78cf4d778016ae344fbf7: fix(operator): mirror Redis password env in deploymentNeedsUpdate (#5639) (@syf2211)
* 17d3432f4a0800cf4950b74a35a7ce990fcafbda: fix(proxy): set X-Forwa |
| 0.31.0 | 24 de juny del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 10e23a22654d25a52b7614aa93d64efeb22d0866: Add opt-in code mode decorator for vMCP (#5606) (@jerm-dro)
* baa8bb4542c6fbcae358f127d9318a8c598594a7: Allow private IPs for in-cluster OIDC and OAuth2 upstream providers (#5618) (@tgrunnagle)
* 9bd40ac47aa63a174c225ed346162a467366bd91: Consolidate operator envtest suite bootstrap (#5602) (@ChrisJBurns)
* 8d5875ba66c763b6b24520a9329c10aefd1dca56: Dedupe operator rules to single canonical homes (#5613) (@ChrisJBurns)
* 9b01730ce4a75c37c0bddab8ac167a8727331cb6: Document level-triggered operator reconciliation rules (#5609) (@ChrisJBurns)
* 07a427f3730e6b94a8bcbf2296fb9f63b0b0e10d: Fix codespell failure: unparseable -> unparsable (#5612) (@ChrisJBurns)
* 74f7f450d37caa00e0ea5af766a191ee7b17995a: Fix incorrect elicitation template paths in comment (#5610) (@danbarr)
* cba435e7832a522b72e791bb5121f433c8d77e1d: Fix multi-upstream authorization chain flows (#5590) (@lorr1)
* 332dd8f53af6cb843d103a5af204559547bfbba1: Fix vMCP Deployment update loop with embedded auth server (#5617) (@danbarr)
* 174208f2c5b1f576a481365949c7037b8acec2e2: Index MCPOIDCConfig referencing-workload lookups (#5608) (@ChrisJBurns)
* 7eec8a972265c3facc715474c2d37e81fecc9b37: Index referencing-workload lookups across config controllers (#5599) (@ChrisJBurns)
* 4ea6afb9048ddec1d56875fa9e0da36d65c15966: Merge commit from fork (@jhrozek)
* 6bd618d5a35bc293df6b349b906c9c25f8bacca4: Migrate issue triage workflow to claude-code-action@v1 (#5620) (@danbarr)
* 493d030ed24b8c012db4c5717475a2386f5b72ce: Release v0.31.0 (#5628) (@toolhive-release-app[bot])
* 799b422239195d95407e872a884123dadbaeadc0: Remove dead legacy session-registration path (#5622) (@tgrunnagle)
* 12fb161bcaf8c54d6136f65b40338b082e23c54b: Remove dead session-factory aggregation and composite mirrors (#5625) (@tgrunnagle)
* 508ac6ed4b5b9c41cefa13e34ac9774707b7ce02: Update core workflow actions to df4cb1c (#5461) (@renovate[bot])
* 9c2cdaffd1f6684a1a2294e0d6ce6e7ee264e7cf: Update module github.com/stacklok/toolhive-core to v0.0.26 (#5604) (@renovate[bot]) |
| 0.30.1 | 24 de juny del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 5518be0377c716174eaee5caa9b719acc3b81f0d: Accept 401/403 in runner readiness probe when auth configured (#5554) (@ChrisJBurns)
* 254a72426b3968b516469d6a46c89dbaf9f05a37: Add MCPAuthzConfig ref-resolution foundation (#5559) (@ChrisJBurns)
* 95f3460ecf73c343c1cb68fcd07a2681db5d24bd: Add MCPServer and MCPToolConfig integration tests (#5593) (@ChrisJBurns)
* 7ffcd5089e14e4cb4085577d1b0934cff2098968: Add PlatformUserID and identity-in-context plumbing for token storage (#5575) (@lorr1)
* 7d0d996d961fcd48f49234e34bfa7b6c62e352fe: Add WithDialControl option to vMCP backend client (#5551) (@jhrozek)
* 4b1c0efcfc9f6631d065acb1ad73eda72c1acd0b: Add global Redis default config support to operator (#5595) (@reyortiz3)
* 37a188f8757213f9fa6946a5b3025dc987db823a: Add per-OIDC-provider SubjectClaim config (#5589) (@lorr1)
* 80d77d780e386f4e2cfa6ce4160a70e1493694a9: Add public Kubernetes-backed dynamic BackendRegistry constructor (#5542) (@tgrunnagle)
* 88bcadc7eba0fa091491abbb4c35f497770d8604: Add reconciler test helpers to cut fake-client boilerplate (#5584) (@ChrisJBurns)
* 9aa377e37cf026b692508adfb0dac19f028fff01: Add testutil.NewScheme helper and migrate operator test schemes (#5565) (@ChrisJBurns)
* e5bd75ac9a3198ff86c065650a615f28642623b0: Add v1beta1test builders for vMCP, remote proxy, embedding (#5576) (@ChrisJBurns)
* c717887383944589679f6e9ebcc18e17b5cbae1d: Address network isolation review follow-ups (#5592) (@ChrisJBurns)
* 55de829acaea0a4058e9f4453e8090a15189e0ec: Bump go-containerregistry to v0.21.7 and remove pin (#5562) (@reyortiz3)
* 354692239fa9d5ae69a46967d397fd0a5eee5ced: Bump toolhive-core to v0.0.25 and mongo-driver to v1.17.9 (#5596) (@reyortiz3)
* bcc90812af1a0bcf2162c768071a11d23260feee: Consolidate MCPOIDCConfig ReferencingWorkloads ownership (#5544) (@ChrisJBurns)
* d8f40cb1599b8bf66657f2dfff15bfbfc236e712: Default network isolation to on for local MCP servers (#5583) (@ChrisJBurns)
* 141f9a4cec791ddfde88433db2364ee628236f81: Emit Events from the three config controllers (#5514) (@ChrisJBurns)
* eb631d2a4308f20322342c6c5c90add4e8e1d86f: Fix contributing guide link and bullet (#5587) (@kriptoburak)
* 44705030d2cb46b4dc7e81105aaa3bb3a18ab210: Fix data race in TestMCPAuthzConfigReconciler_watchHandlers (#5558) (@ChrisJBurns)
* cbaa26b85d6e0baa4e24750a0c2243176fcfffac: Forward passthrough headers on the Serve path (#5561) (@tgrunnagle)
* e6e4acede7cd6fda6f6418f2c7fd2da51978d2b7: Free orphaned proxy port on stop and rm (#5394) (@gkatz2)
* 618f2af67c86f21983fa5d3564feccf1d67d299e: Isolate TestWorkloadFromContainerInfo state writes (#5549) (@ChrisJBurns)
* ef804d65d71be4d392172cb0c25889e7e2cf649f: Make Kubernetes security contexts satisfy restricted PSS (#5555) (@ChrisJBurns)
* 3126e0412b1f07e351081e91f5a57ed594f37602: Migrate EmbeddingServer test fixtures to v1beta1test (#5579) (@ChrisJBurns)
* 85279255f1ad399510579272e0a04b8581cf6853: Migrate MCPRemoteProxy test fixtures to v1beta1test (#5578) (@ChrisJBurns)
* 1a9c41e06c0bb4ae34d64e9e9c851e76c4568362: Migrate MCPServer test fixtures to v1beta1test builder (#5566) (@ChrisJBurns)
* 40f392be4bcb13dc429bd2a30241963ae8a79a6e: Migrate VirtualMCPServer test fixtures to v1beta1test (#5577) (@ChrisJBurns)
* 0aae7ad6da4a36bcfe90a726576ec2654bd0dd9d: Mint Homebrew tap token from a GitHub App (#5552) (@Nashon-Steffen)
* 2add5257befda877e0032b15f1e18e5152833821: Recover OAuth workloads from transient refresh failures (#5350) (@gkatz2)
* 966ca7c6ba1cf45ea156e2d08ed9ee5283bc0e01: Release v0.30.1 (#5605) (@toolhive-release-app[bot])
* 956d44b735cff1e360b5e97c0fb46b27fda2a305: Remove experimental embedded MCP control-plane server (#5591) (@ChrisJBurns)
* 4cc44504a2605b86289ec4773ce2e05b22d185f8: Replace retest action with inline gh api script (#5548) (@ChrisJBurns)
* ee29dffef80dc8a4da48dd00ba3f571b565bf3f7: Route server.New through core.New and Serve (#5556) (@tgrunnagle)
* 940589057144a930af48bbcacf42277813c39a7a: Sync LLM token refresh window with helper TTL (#5557) |
| 0.30.0 | 17 de juny del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 757a6b5d3e88dc76a65af00d6ea65159cc89e25e: Add MCPAuthzConfig CRD for backend-agnostic authorization (#4777) (@JAORMX)
* 7d1ebf51d7d98585c23724dc27f5dc4298d83c06: Add RunConfig seam for injected middleware configs (#5495) (@tgrunnagle)
* 0dd6069a049a15714089b075e517995e363b8dc8: Add integration test for MCPOIDCConfig → oidcConfigRef → runconfig path (#5536) (@Sanskarzz)
* 66c397b8c334d71a0a7f91c3a2b50f364089d7fc: Add passthroughHeaders to VirtualMCPServer for header forwarding (#5466) (@juancarlosm)
* 5e21ed5a0b0cf1e9be1b9756c1e4ee4edee3bea3: Add replicas and sessionStorage to MCPRemoteProxy for HA (#5237) (@aron-muon)
* 7fac6bc331fa0745b0a61754f6c0d72d606186f4: Add request timeouts to MCP proxy servers (#5501) (@ChrisJBurns)
* 9e964fa70931e53eb4f4b682b444a192b6759b02: Add retest workflow for GitHub Actions (#5510) (@ChrisJBurns)
* c6db2d95cce525895682bfb7038e5502607eaaf1: Add storage-version migration docs + upgrade-guide walkthrough (#5451) (@ChrisJBurns)
* 3ebb76bea4d158917d222fe07b910447bc659b95: Add vMCP core/server config derivation helpers (#5513) (@tgrunnagle)
* 3874a45a1f3605ee34b2131f41c22b3688f13adc: Allow MCPRemoteProxy to work without upstream or client auth (#4168) (@aron-muon)
* 2ccfae9e726cee64061cc1849f7eee70f2fbd00c: Carry RateLimitMiddleware through vMCP buildServeConfig (#5500) (@ChrisJBurns)
* 8da9029d1b9939eb277f10f3fdeecaaa42ff6a8d: Configure rate limits on VirtualMCPServer PR B 1 (#5276) (@Sanskarzz)
* ad127f7300fa75fe242003397b3c46310cc77384: Cover Serve-path authz and annotation-enrichment omission (#5482) (@tgrunnagle)
* 2ddb9c8b3187cabfcb4fbdf9e4e43364effeb489: Cover Serve-path lifecycle for AS runner, status, optimizer, health (#5506) (@tgrunnagle)
* eb503b55baf81dc0e32ce7ffe5fd2f13c406f862: Define OBOConfig CRD schema for Entra OBO flow (#5494) (@tgrunnagle)
* 572ecb4c1cf9c7e2fd876da6069f1057151617f4: Enforce request body size limits on proxies and vMCP (#5492) (@ChrisJBurns)
* 1817173c42b18079004ac7078c8e52fbc6e1d8f0: Label audit backend in Serve handlers to avoid re-aggregation (#5512) (@tgrunnagle)
* 44cff74b4323056c82c55980a294f682a8ed3b0c: Migrate sibling config controllers to MutateAndPatchStatus/Spec (#5509) (@ChrisJBurns)
* 64e3d1464cbf7286648a7bab494cee2d76b03b7b: Pre-pull time server image in proxy E2E job (#5534) (@jerm-dro)
* bc4beddb921523d1f314b82b5b9d4249ee0a605b: Release v0.30.0 (#5539) (@toolhive-release-app[bot])
* 6c80c694aa32fd89ed16945ea4f6a5ae0b083cee: Replace discovery-into-context with direct VMCP calls (#5491) (@tgrunnagle)
* 359e998513c3d8d0cda539c57a3689414f2e3a0a: Trigger release notes via workflow_run not release event (#5490) (@reyortiz3)
* 565a3e52998c9a96b2b17b5727f2a6fab1221e3a: Update anthropics/claude-code-action digest to d5726de (#5516) (@renovate[bot])
* c1e2e253934d16d95d2ebedce53e2b8f5bea99a7: Update aws-sdk-go-v2 monorepo to v1.32.25 (#5518) (@renovate[bot])
* 468524ec0f2f0a9751106a26d1e47799c60cad08: Update container and docker libraries to v0.21.6 (#5519) (@renovate[bot])
* c346ed763e410f3d217d7118a90bba76e8e6a9c2: Update golang.org/x/exp/jsonrpc2 digest to c48552f (#5517) (@renovate[bot])
* 5310d737b16e4c097aadcdfc661d28786dda21d5: Update module github.com/lestrrat-go/httprc/v3 to v3.0.6 (#5523) (@renovate[bot])
* 86befab7dbc134fe3b127fe344ea38f39c38acb8: Update module github.com/pressly/goose/v3 to v3.27.1 (#5524) (@renovate[bot])
* b672d82f41e6a919670ee1abe812f831ecb72448: Update retest workflow to include app-owner (#5515) (@ChrisJBurns)
* 4e337ea2be46cc4897791f56ea838f5096d5ead2: Use compound listMapKey on sibling config statuses (#5508) (@ChrisJBurns)
* 24dc011c76419844ba26c3f99b0ad011cd0f947a: feat(llm): add --skip-browser to llm setup/token/proxy start (#5533) (@jerm-dro) |
| 0.29.3 | 10 de juny del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 64e2e4da9b6446301f697783840356dd21864776: Automate release notes generation and Slack announce (#5487) (@reyortiz3)
* 629b9b48a667314dc979c51bad628dbc1356d3a9: Release v0.29.3 (#5489) (@toolhive-release-app[bot])
* 2efca30a75c7749754d18dd6e923734d9ecb38f4: Surface unauthenticated proxy default in logs and docs (#5488) (@ChrisJBurns)
* 0c62d1c53d8ebc31ce0e48e63efe17bbc6386f88: Update module github.com/stacklok/toolhive-catalog to v0.20260610.0 (#5485) (@renovate[bot]) |
| 0.29.2 | 10 de juny del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* d68708873ab7ed6eaeb1efffe7c7d180558f48fc: Add helm-unittest baseline for operator chart (#5473) (@ChrisJBurns)
* 9e5f1708c0214c79d3be4566abd671fc30591ae1: Add helm-unittest suite for operator-crds toggles (#5468) (@ChrisJBurns)
* 40f52f53f9855b004177d3c1d4cb9d98037375b8: Add operator chart helm-unittest suites for posture and naming (#5477) (@ChrisJBurns)
* 30c58a6856ec70c0ee7a068c23072b16b86d9878: Add scenario helm-unittest suites for operator chart (#5475) (@ChrisJBurns)
* c311dc0c8debb7f01166d609d41a6d6223ef8048: Add vMCP Serve skeleton and ServerConfig (#5467) (@tgrunnagle)
* 3392e917ea3d7027199dc6c05fe5acb78d4418f3: Address Redis Cluster mode review follow-ups for #5153 (#5210) (@reyortiz3)
* 611eb16c55e8675faccb269339b64e67eb270842: Deprecate MCPRegistry CRD with runtime warning (#5470) (@ChrisJBurns)
* 9968da82f282c698f74578f6d4296c0d6cc8a123: Domain-type the ElicitationRequester seam (#5456) (@tgrunnagle)
* 0d02ae4dff49da63c7ddd678ddc6adade3c85e9f: Fix operator ServiceAccount name consistency (#5476) (@ChrisJBurns)
* 87fa2ac8eae8dade8dd67c6153aaa6a345e2aad3: Implement stateless core VMCP constructor (#5457) (@tgrunnagle)
* 1101e0459cd33de40d0683e6061bac89412d2cbd: Move SDK hooks and two-phase session creation under Serve (#5471) (@tgrunnagle)
* 6b458aa277aef4e75cacc5dc6ad63dbacc814dde: Prevent path traversal in LocalStore.getFilePath (#5464) (@immanuwell)
* 5143fd8d8d532f3bd7d7e7dbfe14432d56bf1be8: Release v0.29.2 (#5484) (@toolhive-release-app[bot])
* 91907fd31e13d60c25fa916c956a244b625d1040: Remove yrobla from CODEOWNERS (#5486) (@ChrisJBurns)
* 3f33265124a610ad84f0169b4e945bc2945630c7: Renew public client TTL on successful token exchange (#5469) (@mani-muon)
* a42c0b68f6e727230d575a606389940e4dc97937: Send OTLP export headers delivered via EnvVars (#5474) (@reyortiz3)
* a1f800087e91d90067618f5fb86ca9daf3fca7e8: Update anthropics/claude-code-action digest to fbda2eb (#5460) (@renovate[bot])
* 48f672a16eddc2cf5f6255ef2bc6c39ea4ccefe1: Update github/codeql-action digest to 8aad20d (#5462) (@renovate[bot])
* 86913767f529ea591773ae09986f214e5ef90a3b: Update golang.org/x/exp/jsonrpc2 digest to 055de63 (#5463) (@renovate[bot])
* f7bae4179ff4b4756a8092bad5829374880ddcc5: Update module github.com/stacklok/toolhive-core to v0.0.23 (#5317) (@renovate[bot])
* 430b9cdc874c0c0f27e2cc3f18bfc74e92ed4c23: Update module github.com/stacklok/toolhive-core to v0.0.24 (#5480) (@reyortiz3)
* 4e3f647ebfe27db95875b53b9c8dd3c7f8c2f342: Wire Cedar admission seam into vMCP core (#5459) (@tgrunnagle)
* c813153052c62389a7b8ab140da529db690ae537: Wire RFC 9728 discovery into HTTP and stdio transports (#5479) (@jhrozek)
* 4a9af53f2080db36f1d276789cb64cd7d564a5fd: fix(api): add X-Content-Type-Options and Cross-Origin-Resource-Policy headers (#5458) (@amirejaz) |
| 0.29.1 | 4 de juny del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 6ebadafc65ebbd28b1a99e92820691fb38dc66af: Add lazy mode to thv llm setup (#5427) (@ChrisJBurns)
* 24a8af0a31d3d3b2e7d670aadfc06585f511ed69: Add missing active contributors to CODEOWNERS (#5423) (@amirejaz)
* 64bacc32740fa07b2c4be59172bb8d16f921cdc8: Bump CI actions off deprecated Node.js 20 (#5421) (@rdimitrov)
* 340f4fd7babaaf6e34de107e5a55a1129e3957e3: Bump testcontainers-go to v0.42.0 to drop docker/docker (#5449) (@rdimitrov)
* a785995f8ac7a56b2ae047644945411092ff53e9: Clarify lazy-mode deferred-login message (#5429) (@ChrisJBurns)
* 255686a55d7780b5102547781bfa20e6389b6de1: Define VMCP core interface and Config contract (#5450) (@tgrunnagle)
* 26912af453d2040787983dbc9ab93a9019ec0468: Merge commit from fork (@tonghuaroot)
* 05f11b535f96bf1caa11ecde878a2a1ab355ace2: Pin BackendID through the advertising filter (tests) (#5452) (@tgrunnagle)
* 83e9eaec177c85c791a337b8c99d2e43c06904a1: Release v0.29.1 (#5453) (@toolhive-release-app[bot])
* 4d3b392cab5177027a3a0225e528b89ba27b5e69: Thread VirtualMCPServer name into Cedar authz middleware (#5448) (@jhrozek) |
| 0.29.0 | 3 de juny del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 6f63ac098e8ba88c36a9757015e46ddbaf9cb24b: Add 'thv mcp call' for invoking MCP server tools (#5389) (@JAORMX)
* 018174936e0b7b093ba05ef01a93441d0bf755e7: Add Applier for upgrading workloads in place (#5410) (@JAORMX)
* 2043cf6cd061c737195017e1201cce2ded8857f7: Add CIMD storage decorator for embedded AS (#5343) (@amirejaz)
* 8932f938939b6de90b8061c916d49ac4bb96c74d: Add StorageVersionMigrator controller (opt-in, default off) (#5362) (@ChrisJBurns)
* 12fcd15769bd124b6cfe3a08660f43ff3b528d26: Add e2e coverage and lifecycle docs for upgrades (#5412) (@JAORMX)
* a49b4faccff6d4abc290fca7fb778a1be1102161: Add thv upgrade check and list --check-upgrades (#5409) (@JAORMX)
* fc64061c5c5de84029dbe3fabaa4af437f368b04: Add upgrade apply for the CLI and API (#5411) (@JAORMX)
* 16ce897e5eccd8336291868a9671b35df2fe6ec3: Add upgrade-check REST endpoints for workloads (#5408) (@JAORMX)
* db82aef9e268e91091bf8dc5782317585c0439e2: Add workload upgrade detection package (#5407) (@JAORMX)
* a7aaf31885e5b42b75527d0233752f1c2d76b588: Address post-approval review feedback on `VirtualMCPServer` authz (#5368) (@blkt)
* 4587fc8b90b24448a01a48166fed280bc63882cd: Admit obo in MCPExternalAuthConfig CRD enum (#5361) (@tgrunnagle)
* bedd6ba93184ffad820207adc9586e541f5175e2: Bind vMCP sessions to OIDC identity, not raw token bytes (#5378) (@jhrozek)
* 394b2e7560a12a0f590a87fc1ce675e7f50c3872: Clear all cached registry tokens on logout (#5382) (@rdimitrov)
* 08baf2da8433b9040ffd7f0bae6e20e7a4f9acfb: Consolidate authserver DCR types onto pkg/oauthproto (#5372) (@tgrunnagle)
* aec21582ca2bc90fe1d72f1385ad0c24672c8156: Delete .claude/skills/pr-review directory (#5392) (@ChrisJBurns)
* 5a8692dbdacb85eb58bf9e381318550e15c707bb: Deprecate Roo Code client integration (#5415) (@danbarr)
* 853e9e4344a57fe70a07e9ab0dd22899d6cde8f5: Expose CIMD config in MCPExternalAuthConfig CRD (#5384) (@amirejaz)
* bfde12daa7346aa117b7b454ab63075622e7a8a9: Fall back to request-token claims for opaque upstream tokens (#5147) (@cjohnhanson)
* 374d452851db2c4d0d469e4e72b6f05a9da9082e: Fixed VirtualMCPCompositeToolDefinition printer columns output (#5380) (@Sanskarzz)
* 164c25192e9df767b99283bc8c7f14653a808de7: Freeze MCPServer generation per pod via downward API (#5364) (@ChrisJBurns)
* 91827ac25af8b5ce0155cd8c0e52e6212bcfc30d: Ignore go1.26.4 stdlib vulns in govulncheck until toolchain bump (#5425) (@rdimitrov)
* 2d5915999fbc620abef6a62b6b79d78145450913: Isolate skills client discovery in default-client test (#5417) (@danbarr)
* 535e8084bd6efafb9170e4919ac4ff8ce340c73b: Migrate container client to moby/moby modules (#5420) (@rdimitrov)
* 0578af618f13460efd369f014a1c2b850cd959df: Opt 12 v1beta1 CRDs into storage-version migration + CI guard (#5391) (@ChrisJBurns)
* 50a6c8b67845d6a965b7d3776099b316e6d58038: Persist config backward-compat migrations to load path (#5416) (@danbarr)
* 4bb80f03f68fd1354bc47300fe7620df8277ee46: Refresh docs/arch/ to match current codebase (#5388) (@JAORMX)
* ab2d3a189153942c99802867d7d123761e63276c: Release v0.29.0 (#5424) (@toolhive-release-app[bot])
* 974aab5640f839477ecc5f1eb92d67015b7d66ae: Surface StorageVersionMigrator behind chart feature flag (opt-in) (#5418) (@ChrisJBurns)
* 83aaf9617ea243d04484bad69690225390c91927: Update anthropics/claude-code-action digest to 787c5a0 (#5374) (@renovate[bot])
* 59564710929aad571452a850dc23e2d2b0b14225: Update aws-sdk-go-v2 monorepo (#5406) (@renovate[bot])
* 2d537362921fd0174b06ab52f8f59719a64bceb3: Update github/codeql-action digest to 7211b7c (#5375) (@renovate[bot])
* 53022a2d971c489f82205b6b752ab14f246245d3: Update go.starlark.net digest to ec58d4b (#5376) (@renovate[bot])
* 35e66bb07aabc6b3e70b5e88472518cdaf2fc85d: Update golang.org/x/exp/jsonrpc2 digest to c761662 (#5404) (@renovate[bot])
* 8fce30e6fcffdfa3dbb625a7cc71c355f500dc84: Update goreleaser/goreleaser-action digest to 5daf1e9 (#5405) (@renovate[bot])
* b1f15316295561ac58bd8da851143fafb61798ad: Update module github.com/stacklok/toolhive-ca |
| 0.28.3 | 22 de maig del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* b9ec5920e30b5f40a9e0e93cc650033c5043ceb5: Enable Renovate vulnerability alerts to trigger immediately (#5367) (@amirejaz)
* e37e33670f3cb43dc305d2bb3ce56b94268cda50: Mirror MCPExternalAuthConfig Valid=False onto consumer CR conditions (#5354) (@tgrunnagle)
* 61202ff8f44cc41870d8aed21b2aeea10714d821: Release v0.28.3 (#5370) (@toolhive-release-app[bot])
* 9a28521c43c85711c66dcd70646da7339008bae7: Resolve authz `ConfigMap` for `VirtualMCPServer` (#5290) (@blkt)
* 686eb1b21308f148f380efbace150f295a8c332d: Restore ServerBuilder.WithMiddleware and WithRoute (#5369) (@reyortiz3)
* 391f4f26c1494ada439d32e538bf8161d06d8ba6: Upgrade golang.org/x/crypto to v0.52.0 (#5366) (@amirejaz) |
| 0.28.2 | 21 de maig del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 4c2e32c5b91e6007044d87b892df5a6221b0eb7d: Fix DCR failure for authorization servers with non-root issuer paths (#5357) (@amirejaz)
* bd73817eee79dc7b695be2fc5a5a57192e914bdc: Honor --allow-private-ip on thv registry login --registry (#5353) (@reyortiz3)
* 29cdee6b071862870c42923d4377af8aec77db67: Release v0.28.2 (#5363) (@toolhive-release-app[bot])
* 5540b3d160e3f802f94b80e4ea865b06c2c11181: Remove unreachable functions identified by deadcode analysis (#5355) (@ChrisJBurns)
* 483e91d255b1ac4f379cf89b31975533f9d44f20: Wire OBO dispatch arms and reconciler branch (#5345) (@tgrunnagle) |
| 0.28.1 | 20 de maig del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 9a5d0c26e2134889ab1b29cb7b9de40b36028659: Add CIMD document fetch/validate and extend SSRF protections (#5320) (@amirejaz)
* 79c08bd10f788d357a6b5e9e094d57b8c533f0b8: Add default OBO handler hooks and vMCP/proxy converter stubs (#5338) (@tgrunnagle)
* a3fb4ee34b8fa67105ce1f3606014cf351c809a4: Bump github.com/go-git/go-git/v5 from 5.19.0 to 5.19.1 (#5330) (@dependabot[bot])
* 8d22ac5e30e0528b583a9bb5f42c5e30ff8961fd: Factor thv-operator main into app.Run; add proxyrunner Run helper (#5332) (@tgrunnagle)
* 2894982180949e03f9504d176605433e705a84b1: Inject spawn seam in RunWorkloadDetached to stop orphan test processes (#5346) (@tgrunnagle)
* e5670eaea1970b32e05eed6d79f13893c62d7046: Preserve fresh per-request identity in vMCP backend transports (#5335) (@tgrunnagle)
* 91cb56fdc144ab93c5272188e2f99537bac2139d: Release v0.28.1 (#5352) (@toolhive-release-app[bot])
* e46f8c11947cd413e2038367c4aef5b693bb1e59: Update dependency kyverno/chainsaw to v0.2.15 (#5297) (@renovate[bot])
* 36ca38cc79cd5ccfb3b5da13b6e7c58ee0d6e35b: Update kyverno/action-install-chainsaw action to v0.2.15 (#5298) (@renovate[bot])
* f6d48051a5f014d74e955c0120133ee6af4b2b04: Update module github.com/pelletier/go-toml/v2 to v2.3.1 (#5311) (@renovate[bot])
* d3d9a02aa6b08a69e93682d8a90bd8f803356f5e: Use `events.k8s.io` in registry-api Role (#5340) (@rdimitrov)
* a13e5ea6ffc2f3681f67a2fd937da41d9e7865b1: Use shared toolhive-core redis client for session storage (#5324) (@reyortiz3)
* 6d81df825d68b7e0b1bfc7753adc813cc43b724c: fix(operator): inject THV_SESSION_REDIS_PASSWORD for MCPServer (#5286) (@dallinstevens)
* 2426291ac3a784e76b2441c167f06d6076d9f6e7: fix: validate k8s export volume format (#5319) (@immanuwell) |
| 0.28.0 | 19 de maig del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 51db3c6aa12390cf36c3a8bbf9c6c2d09753d860: Add --session-ttl flag and fix three session timeout bugs (#5117) (@JAORMX)
* 42048580d19f7f19bee8db6ed9cff8dc270b470f: Add API endpoint to refresh the registry cache (#5268) (@rdimitrov)
* 836c570ed49d7f2efb49489af3f2defa01489b70: Add GitHub Copilot CLI as a supported MCP client (#5287) (@danbarr)
* 110b9a73d90d1e90575578442fcc3e3b64965719: Add RFC 7523 JWT Bearer grant package (#5262) (@jhrozek)
* 89f99c0ff007e82877ecbfbf067422edd65c70bc: Add TOOLHIVE_SKIP_UPDATE_CHECK env var to disable update checks (#5264) (@lujunsan)
* 8c84c0594e8b2fd85342f8a52bfd0e9942c1f2a1: Add identityFromToken to MCPExternalAuthConfig CRD (#5269) (@jhrozek)
* 86f973416ccb114b37abebae87d53047a902cf38: Bump toolhive-core on release day via Renovate (#5315) (@reyortiz3)
* e3585e9c4936630f8ef98c025da54caf8fb8fef9: Bump toolhive-core to v0.0.20 (#5316) (@reyortiz3)
* 0a741f7487341b69f57ff80f66561ccb43e328ec: Bump toolhive-core to v0.0.21 and use shared redis client (#5318) (@reyortiz3)
* 88667f71f6132d55cf1845e1ccacd1a524af5595: Configure rate limits on VirtualMCPServer PR A (#5079) (@Sanskarzz)
* 285e5d061ce2e3c86c1e2e8e6f3ed30dc551fe2d: Deep-copy shared fixtures in mapMCPServerToWebhookConfig subtests (#5310) (@jhrozek)
* d1d1ee54cd99a63f17cdd31721f4ee3cc8721996: Deflake transientRefresher singleflight test (#5312) (@jhrozek)
* 0d8b133c245e01c93982d01efffe717d0f10cb2e: Drop empty PULLS column from registry list and search output (#5314) (@danbarr)
* 3dfed719213ebead040d88819bb252a359de9dc4: Drop legacy registry schema from release artifacts (#5273) (@rdimitrov)
* e0d270b32659e29eb819af1dfa895ac4c139d1dd: Drop per-component CRD and controller gating from operator install (#5281) (@ChrisJBurns)
* 3fa65b09f00a33d1c95d13fca42013bea1a2b74e: Extract DCR resolver into pkg/auth/dcr (#5198) (@tgrunnagle)
* 4893b657196cdff51da42582c7e71702f62f629e: Fix audit events logged as INFO+2 instead of AUDIT (#5256) (@kimjune01)
* 17451d14594c0a8a466f82cd5f1142b03efd521d: Fix operator RBAC for event recording (#5243) (@pl4nty)
* 7697242861dbe8e7191922caa88ca0d5c0938c0d: Fix wrapper name in api-compat workflow comments (#5282) (@ChrisJBurns)
* f180fa95152fd654e1e8173a6b7f6af0135b85c9: Migrate CLI OAuth flow to pkg/auth/dcr resolver (#5250) (@tgrunnagle)
* 1f00bdb73a9e69c7d43e1e8a79a02290b3ad8b28: Move HeaderForward helpers to pkg/vmcp/headerforward (#5302) (@lorr1)
* 24fe7760d87f000be72380566a06b1fe95aaf5ee: Pin helm-crd-wrapper to v0.0.1 (#5283) (@ChrisJBurns)
* 439977d8b8dfd74562ae402dab378b60b98836be: References printcolumn shows raw JSON instead of useful summary (#5267) (@Sanskarzz)
* 2ce3ef76ac17d53fa45564b847025d9518a45c34: Release v0.28.0 (#5322) (@toolhive-release-app[bot])
* 594ae1ef4e18af41238b516480809ba82be59697: Reset RunWorkload retry counter after stable run (#5172) (@gkatz2)
* 84f606acc4f305b2b3d35b8ba1617fe228b53162: Retry OAuth token refresh on infrastructure 4xx (#5170) (@gkatz2)
* 8a269b6330148a130bbd665428446a739e42ce32: Split api-workloads E2E suite into parallel entries (#5275) (@jhrozek)
* 605fa34e7224b45109082ee0fe95459f95030e5c: Update anthropics/claude-code-action digest to 51ea8ea (#5294) (@renovate[bot])
* 7cffc52b30874c233080e93b8ce6b29d5ecd0277: Update github/codeql-action digest to 9e0d7b8 (#5295) (@renovate[bot])
* 5a9d2b0c313a3524c569995b1c14324ea1d5a382: Update golang.org/x/exp/jsonrpc2 digest to 74f9aab (#5296) (@renovate[bot])
* 92185fada4ec46ad3a3681ec7010a1ae88b5d37f: Update module github.com/cedar-policy/cedar-go to v1.6.1 (#5307) (@renovate[bot])
* 78097d7032cd36f9952bdcdb4987b469d2ae124a: Update module github.com/charmbracelet/x/ansi to v0.11.7 (#5308) (@renovate[bot])
* ca9ac2f184e89efc242e2f45b7df50b1ae616cdd: Update module github.com/google/cel-go to v0.28.1 (#5309) (@renovate[bot])
* 9d9604a32a2aca0c789cb673da9906c5e7d31672: Update module github.com/modelcontextprotocol/registry to v1.7.7 [SECURITY] (#5230) (@renovate[bot])
* 65e65ec82f38e4175b08ee6f1167db922bb3a431: Upd |
| 0.27.2 | 12 de maig del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 952c9ef966f687a120d263908a7689bacf38bd09: Allow operators to inject baseline scopes into DCR registrations (#5233) (@jhrozek)
* 3240eeba03997a5f20414d8f126be248a186ab9e: Apply OTEL config to workloads created via API (#5254) (@reyortiz3)
* d62dd0ec897890fac100473ac5977252dfc1e6b6: Bump github.com/go-git/go-git/v5 from 5.18.0 to 5.19.0 (#5249) (@dependabot[bot])
* db9eaa63c591213d237be2b5ea3e89e305a02b51: Bump github.com/in-toto/in-toto-golang from 0.9.0 to 0.11.0 (#5234) (@dependabot[bot])
* 50c583f88b566b5c5b75183efc7fcc0e898263e3: Collapse registry provider error ladder into a helper (#5261) (@rdimitrov)
* 41b2f00414848afaed5b0a47b6f3cf2bd4df0b4a: Delegate tokenexchange HTTP plumbing to pkg/oauthproto (#5226) (@jhrozek)
* 030594a20d6f6d16754d11656e84700e9b03be92: Fall back across Docker sockets on connect failure (#5246) (@samuv)
* d75c36ed543c7972976c880081dc72a10808c13e: Forward MCPServerEntry headerForward to vMCP outbound requests (#5239) (@ChrisJBurns)
* ab90ddc3c4a25c6c113ef6a791f77b7ea3fa6e76: Move tokenexchange under pkg/oauthproto (#5251) (@jhrozek)
* 52dece54890b6301d2fc87d2eb7288bd84a3f6a7: Namespace operator.* Helm helpers to prevent umbrella chart collisions (#5245) (@wucm667)
* 1a322bea3bd1b4ef786326a12d0df6d3053af797: Recognize mcp-go authorization-required sentinels as auth (#5225) (@lorr1)
* 97b0cc3f304657d4011322e4069cd2ffd8ebd67e: Release v0.27.2 (#5263) (@toolhive-release-app[bot])
* c68fdb28f0f8e121c1af2ea5afbabc2f4066bb3e: Tolerate spec-violating list methods on backend init (#5232) (@tgrunnagle)
* ed8b00ab372ea1b153b056339f9b7671c51daed0: Update anthropics/claude-code-action digest to 476e359 (#5235) (@renovate[bot])
* 77402dd3e225cd568db61e7f83524a3a1f04b04f: Update github/codeql-action digest to 68bde55 (#5236) (@renovate[bot])
* b1977ecde54c3a37590d8baa23fcc9591e92cbaf: Update goreleaser/goreleaser-action digest to 1a80836 (#5054) (@renovate[bot])
* dcd1c7485b288ffbaf8d85f74a900f38b8262100: Update module github.com/stacklok/toolhive-catalog to v0.20260511.0 (#5227) (@renovate[bot])
* 42f765cf8835e943567cf2bbfe39ca0eccd9e4b8: Use corev1.PullPolicy instead of string for EmbeddingServer ImagePullPolicy (#5240) (@Sanskarzz)
* 6ec592d5b0fbc4549c3daeb83a07280345d4d81c: fix(registry): surface legacy registry format as a structured API error (#5260) (@peppescg) |
| 0.27.1 | 11 de maig del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 6733a546fdb845ce601b40c73277439e26d2f5e1: Add CRD-runtime drift detection test framework (#5209) (@ChrisJBurns)
* 03def4040c505e1563d00e14a775c18c3841e68c: Add Redis backend for DCRCredentialStore (#5195) (@tgrunnagle)
* 4aa2801ce4abfd0873df8c5bfc31980ae8b227ff: Add Windows named-pipe support to the API listener (#5201) (@samuv)
* 2b50a8dee895808d9a4dc1eedc5e9b2b1ac66d3f: Add omitempty to MCPGroupStatus JSON fields (#5181) (@sharanrajt)
* 6b39256a655f6f39d53cee03d598c85fe601245e: Add persistent DCRCredentialStore types and memory backend (#5186) (@tgrunnagle)
* 765de5fcb90aed0268fceb4b6aab572b5cd2777d: Cap webhook middleware request body at 1 MB (#5192) (@JAORMX)
* c90d01e9d8344a72a72a419a0b91cfbfb4c7c046: Expose explicit primaryUpstreamProvider for Cedar authz on VirtualMCPServer (#5199) (@tgrunnagle)
* 746fe6dd39ff64adbb0a8f46cbead2aaf3e6d669: Guard RedisStorageConfig CEL rules with has() checks (#5228) (@reyortiz3)
* 34bb5fa5b0bc8b95ba3afbd1b8a1326597bc2785: MCPGroup Ready column misleadingly shows MCPServersChecked condition (#5241) (@Sanskarzz)
* a4d66b1e36e82d8c0587de52c5db4d582f37f6a4: Move pipe and socket URL handling to net/url (#5215) (@samuv)
* e94366044b3a8b1237169ffbc4d6cb0f99bcbea7: Pin npipe round-trip and pipe lifecycle invariants (#5216) (@samuv)
* 6f851631dad3b22dc021da95abb8e23a1420ce7f: Redact webhook response body from returned errors (#5191) (@JAORMX)
* 3345cea75b49d6c423ce60628cd49b9dbdca1eab: Release v0.27.1 (#5244) (@toolhive-release-app[bot])
* ef5e8f7fec5323e4ec8388f5e573854e9c51e7e9: Restrict Windows named-pipe DACL to creating user (#5214) (@samuv)
* 7385e26652a863d785a4acdc1a72195d6b0208f7: Skip WARN for non-POST Streamable HTTP requests (#5221) (@danbarr)
* 86d9ffd8431678fef243bd7195fcf27b976815b4: Update anthropics/claude-code-action digest to 9db782c (#5164) (@renovate[bot])
* d5337ec2d2a80af6fded414475fbeffff953072c: Update module github.com/stacklok/toolhive-catalog to v0.20260507.0 (#5206) (@renovate[bot])
* 8d9eb28eb9947cd3e524fd3db0b96fd4551cf4d5: Use shared pkg/oauthproto helpers in tokenexchange (#5212) (@jhrozek)
* 9211a36392fbb8be4f922e8e7ef7ea615902d5f3: Wire persistent DCRCredentialStore into EmbeddedAuthServer (#5196) (@tgrunnagle) |
| 0.27.0 | 7 de maig del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 655de227d074cecea6d0607873817768e3390f9d: Add --anthropic-path-prefix flag and auto-probe for Envoy AI Gateway (#5174) (@yrobla)
* 2743b285d3cf1af6a5e205dc41c56d027e728d1e: Add --client flag to thv llm setup and teardown (#5144) (@yrobla)
* 20ced208ec3356e65d54b4a4cde8aabf5b0347e1: Add Redis Cluster mode support to auth server storage (#5153) (@reyortiz3)
* b532156301da2a0d200f622fb24ad17a622bebe3: Add authserver DCR credential store and resolver (#5042) (@tgrunnagle)
* 9f8256f88b0caadd52082ab6bda33d7d36075566: Add follow-up CIMD E2E and unit tests (#5130) (@amirejaz)
* 6a6b2b2fed07e5b4184c0ed4c99eab1a42c92684: Add identity extractor for OAuth2 token responses (#5200) (@jhrozek)
* dc745881d1c2e2da1c4d78515f410782d2969aec: Allow standalone Redis in auth server storage (#4994) (@reyortiz3)
* 7d16db5037c47d2682723e48b87ac0d9971f4628: Automate Gemini CLI .env injection for LLM gateway proxy setup (#5175) (@yrobla)
* 31e0307405f5cc54a81ea4be586b6aa36ae5fd51: Carry forward upstream refresh token on re-authorization (#5132) (@jhrozek)
* 9057f7a7c7ac2596f7084518c63876fb6ded5b5c: Correct Gemini CLI LLM gateway config to proxy mode (#5142) (@yrobla)
* c146093c0d2d0c17e562c4b8a9f2dedb17a5b2da: Expose DCR config in operator CRD for OAuth2 upstreams (#5069) (@tgrunnagle)
* 8c90184f1ab7b9fe869d6e11b05604066f523387: Fix flaky VirtualMCPServer composite tool watch integration test (#5163) (@reyortiz3)
* e928ab654d36c49d94561b385371243a7ce472f8: Fix golangci-lint failures from Go 1.26 linter upgrade (#5161) (@reyortiz3)
* 59e86a5593af7cfe58a24dde5f75964003cff68c: Install local skill builds by name when tag differs (#5182) (@samuv)
* 8079916d11e40fd2054ba9c46c95cfe323b74f9b: Phase 5: Dynamic Webhook Middleware Kubernetes Controller (#4564) (@Sanskarzz)
* 9cc163a1d2df7fa354eda2882c321ea6fcca31e0: Populate LLMSetupNote for Gemini CLI to warn on --tls-skip-verify no-op (#5188) (@yrobla)
* 46c08c5320a6be1c77d6bd6efb4db904d1efb6ca: Preserve runconfig-checksum on pod template overrides (#5149) (@jhrozek)
* 1f138eedb515a9d9786fa5ec3a2471a7f67e7d78: Publish thv llm commands and regenerate CLI reference docs (#5189) (@yrobla)
* 182a025002ab4a18ad1a5c52029ef1ae3837bb1c: Release v0.27.0 (#5207) (@toolhive-release-app[bot])
* 37fcb1a84cc3b6610e0c2bf07ab9325ddf918e62: Return *oauth2.RetrieveError from tokenexchange (#5082) (@jhrozek)
* 11fa6fb3122a9a7794503a3787cf009098fe01e3: Set User-Agent on OAuth token refresh requests (#5168) (@gkatz2)
* 22f4769d9670327b7f455fe9f8bf4b739d94ea8f: Strengthen test assertions in llm_gateway_test.go using jsonPointerGet (#5187) (@yrobla)
* ac8fe8e01c45c70e9418a7dab3b976febd702687: Support CIMD as preferred OAuth client registration for thv run (#5085) (@amirejaz)
* 3a24ac1fc4f90ba3d75ce10a503628d09884749f: Update aws-sdk-go-v2 monorepo (#5166) (@renovate[bot])
* c1db1ebd1e1707a10394df298cb496b1de65f198: Update github/codeql-action digest to e46ed2c (#5165) (@renovate[bot])
* 729e56a110656bf819150577433d6ae8ecce87ab: Update module github.com/stacklok/toolhive-catalog to v0.20260504.0 (#5118) (@renovate[bot])
* 9572f6adfc3cc774b532533fa60df4513df0976c: Wire authserver DCR resolver and add structured logs (#5044) (@tgrunnagle)
* bf3ebe77a5fe6829ab565f3915d86579eb095604: fix(#5063): deterministically order env vars in DeployWorkload (#5064) (@nalditopr)
* ec284b0ee0166fa5fa2ad17ef3dbed1ea6952ec4: fix(api,cli): stop auto-deriving RFC 8707 resource indicator from URL (#5204) (@peppescg) |
| 0.26.1 | 30 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* b094f754c959d2784dcf5209f358195e6c40552e: Add --tls-skip-verify flag to thv llm setup, config set, and proxy start (#5136) (@yrobla)
* d3922ceafe35df1f19a6971c12ad2ad5f41a227d: Add authserver DCR discovery and config surface (#5041) (@tgrunnagle)
* 227045c76948d988a990c74bbdc977bcfe2b0c08: Auto-detect Docker Desktop socket on Linux (#5122) (@samuv)
* f6118bc64987519541d2671839f3c6647fb83abc: Consolidate ToolApplyConfig and LLMApplyConfig into pkg/llmgateway (#5138) (@yrobla)
* 9ca1cfa25db3e6c24fb1ebf62a7ec7cbc1419593: Include nested files when resolving git skills (#5139) (@samuv)
* f1cdcfdc7d24148dfcc8320d6fbf499ef3364666: Make Cedar group entity type name configurable (#5121) (@jhrozek)
* 4014710e199498cc9dff47d32eb8732a5162e6b5: Release v0.26.1 (#5140) (@toolhive-release-app[bot])
* 12ac3c528c59488b373d92d1c5780f5957e1641e: fix(authserver): send scope explicitly on upstream token refresh (#5096) (@dallinstevens)
* 60636a01f086ea7939501ac504d6d9079ee045ea: test(e2e): add all-client LLM gateway e2e matrix + fix secret provider bugs (#5116) (@yrobla) |
| 0.26.0 | 29 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* fc76559d97a37bb86eb75e35662fe519e5b33a1d: Add awsSts auth type support to vMCP (#5019) (@tgrunnagle)
* e396150da149db37c39842af6d65141e3655c141: Add explicit imagePullSecrets field to MCPRegistry (#5106) (@JAORMX)
* 731112d898c7f6247b6d46b159cd6aee25ecd9ad: Add explicit imagePullSecrets field to VirtualMCPServer (#5107) (@JAORMX)
* 704d0ae1cfa5c42dc14157120fac36eb208408aa: Add interactive TUI dashboard for managing MCP servers (#4680) (@peppescg)
* 4b3fe6262fe37fce9d589033e05dfa059d7a0c32: Add missing encoding/json import to virtualmcpserver_deployment.go (#5114) (@jhrozek)
* 1bbca89cdd743173bae10abbc35231473ea9a1d7: Add operator-level defaultImagePullSecrets across all controllers (#5105) (@JAORMX)
* 1e4f71cd28474e6d5932b3d1c903790f93ad49f1: Align REGISTRY.md with configYAML-only MCPRegistry spec (#5088) (@rdimitrov)
* b59514f70f7318a8e893f25629dd87252af87bf0: Allow OAuth2 upstreams to omit userInfo config (#5094) (@tgrunnagle)
* 4c23ade766f17fc7a257fc84e380715910ec9561: Detect imagePullSecrets drift on proxy Deployments (#5113) (@jhrozek)
* 061d7fb475df51192541b1f95be769e1cab50983: Drop legacy ToolHive registry format references from docs (#5087) (@rdimitrov)
* 9c667431c30767ed9ff678b6e493d80327cd3f7b: Extract shared OAuthTokenSource into pkg/auth/tokensource (#5090) (@yrobla)
* a98c9918eb5432340bc82b51164552db21b407eb: Fix non-expiring upstream token handling and storage TTL bugs (#5092) (@jhrozek)
* ce4ee1ff5a7fda589b9fc43a439159e8b9250770: Introduce LLMClientApp type to remove xcode from MCP API swagger enum (#5081) (@yrobla)
* b27d310f61ab1c6fa0095c8e0bcc3424dc647cbb: Move llm setup/teardown orchestration to pkg/llm (#5112) (@yrobla)
* 64490099506e30b992bad8ce8d02513adf9404b7: Preserve user fields in EmbeddingServer podTemplateSpec merge (#5104) (@JAORMX)
* ffefa6125c876a9dc906643b9d133bdc44275a79: Release v0.26.0 (#5131) (@toolhive-release-app[bot])
* 60c99c39142a5b05071e84b0d75a7ffb8cb0238f: Strengthen tool detection with binary presence check (#5083) (@yrobla)
* 3af38471e2942f182409c13e69e36c09d852b1d7: Update module github.com/moby/moby/client to v0.4.1 (#5059) (@renovate[bot])
* 5d44c83ba2541b11a5fc5ea80678b1e3fc55ca0a: Update module github.com/shirou/gopsutil/v4 to v4.26.3 (#5061) (@renovate[bot])
* 7193531d0dae6afc3e234d49df1c5d40bf1d5cf1: Update module github.com/stacklok/toolhive-catalog to v0.20260428.0 (#5080) (@renovate[bot])
* 5c54e54dc54d35a5a2cda0d9531ca90fbb553752: Wire MCPRemoteProxy resourceOverrides.proxyDeployment.imagePullSecrets (#5103) (@JAORMX)
* 4cfa9624c1b01b6a931b624bcbfabf1e5eee0a8a: ci(release): mint GitHub App installation token instead of RELEASE_TOKEN PAT (#5093) (@Nashon-Steffen)
* 239ea90a9d3edfe7ea858bc55895b42f1292f80e: fix(llm): use correct binary name for VS Code Insiders detection (#5109) (@yrobla)
* 09d8047b0725076f3043146b74a7837b9a5afd45: fix(test): use require instead of assert in TestBuildServerConfig to prevent nil panic (#5098) (@wucm667)
* ae1b32ffc3d8bdced5f08eb9da4ef527f1d71541: thv llm: complete setup/teardown orchestration (#5068) (@yrobla) |
| 0.25.0 | 28 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 7c9f6b98798ba7ba4a4c9d6a41d03e171163e1f2: Add `thv registry convert` command (#5071) (@rdimitrov)
* d8d58ca5e8a26bf156eef58772ca2ac3631dedc2: Add localhost reverse proxy for LLM gateway (#5035) (@yrobla)
* b470ddb82aa57fef5c4579d9ff79ee4f7c0c4915: Add pkg/oauth grant-helper primitives (#5045) (@jhrozek)
* 39a37855fcbdd600644d4ee280c8bf7b88ab784f: Add thv llm command group with config types and management commands (#5032) (@yrobla)
* 60ccd8f0ccbb536597f8de718f22224d5d2006a4: Add tool adapter registry and per-tool LLM gateway implementations (#5065) (@yrobla)
* 340ac12329ebee87349debeec7d26454246e4d1a: Apply request version to tag-less skill OCI install ref (#5078) (@samuv)
* cb0389220ef466d026b23d8a1470c3c4f129401b: Classify packager errors as 400 in skill build handler (#5076) (@samuv)
* 2916aa1ff9a88e25251dd9b6c8be9110e5e99554: Drop legacy registry format support (#5067) (@rdimitrov)
* b11bcf205dddec44b995fb0d079f968cecd67dd6: Expose hook for embedder-driven MCP elicitation (#4934) (@JAORMX)
* ee6a89279f866a155d6001d8ebcaf5028e3ec4cd: Improvements for the vmcp e2e test infrastructure (#5026) (@yrobla)
* 1ea3e8bee8ccca510b94cba8e6618e33b476a979: Release v0.25.0 (#5084) (@stacklokbot)
* d82a03bf621211d8fe245dfe44e0347fc1bf24a6: Rename pkg/oauth to pkg/oauthproto and move DCR primitives (#5036) (@tgrunnagle)
* ad94b4fc2d2ad3d72bf6ff5c9ba8e345265a2829: Strip Content-Length when wrapping tool filter response (#5077) (@danbarr)
* 46a1b1f8502c7f0be0fd0924e84f21a5fc255d3a: Treat 401/403 from auth-configured backends as healthy (#4935) (@JAORMX)
* 624c6d083effbc15d82df2982a958372b2cd099e: Update anthropics/claude-code-action digest to 567fe95 (#5053) (@renovate[bot])
* c3d4b7b8064ef4fe463ab7c003fdffdcd65ca6a7: Update aws-sdk-go-v2 monorepo (#5057) (@renovate[bot])
* 643746912ad36d953c0122073c09889f5570ac22: Update dockerfile template base images (#5058) (@renovate[bot])
* 5e5aa86776389a5e9ba784c4b48e87df28868b4b: Update module golang.ngrok.com/ngrok/v2 to v2.1.4 (#5062) (@renovate[bot])
* 68f4c2f1dd9e00c3ba731ade29c50cd9abb54523: llm: extract shared OIDC config, move business logic to pkg/llm, add E2E tests (#5049) (@yrobla)
* 68d29fbc0bac0fedd1a3f7fef9676dae83ed9238: pkg/llm: fix withPreemptiveRefresh composition and stale _AT on rotation (#5052) (@yrobla)
* 854e0ab78378941dd9ef82c84285d1ffd4b7fd1b: pkg/llm: implement OIDC token source and thv llm token command (#5033) (@yrobla) |
| 0.24.1 | 23 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 129ee05fa2650be1fd03f6e3caaf094189fc6ff2: Add JWT/OIDC and Redis session storage vMCP CLI e2e tests (#4998) (@yrobla)
* bc5b9a35479f7c9e658f264a5eb2fc66f6967b1e: Add shared OAuth constants and expose ExchangeConfig fields (#5003) (@jhrozek)
* cffe934447f68220b61994ef0c3b3758d3d021a5: Bump releaseo_version input to v0.0.4 (#5007) (@ChrisJBurns)
* 72ef8359bb97062e671e88ef4424cf2922b1c06e: Classify OCI pull errors and fall back to git for skills content API (#5014) (@samuv)
* 037a0e833f1d8d7a121010ccb299c403bd3d4e6b: Document scalability limits and constraints (#5025) (@yrobla)
* a75ea2c49dc601ec11825d8bfebfeae720d53b41: Fix Cedar upstream-claim evaluation on VirtualMCPServer (#5002) (@jhrozek)
* f6137d5908886e993c67495176419b9b5cee2b6b: Fix MCPRegistry probe port and bump registry image to v1.3.0 (#5020) (@rdimitrov)
* 3d0712c768d0dba1adf53447e0a4ce93dc5055e1: Gate proxyrunner StatefulSet apply by MCPServer generation (#5024) (@JAORMX)
* 93e1478a5c2227ba04ca5580155f329751b8b605: Honor --debug flag in vmcp (#5008) (@jhrozek)
* bbe8b853a08964824da6e61a77f27383b5847fca: Introduce MutateAndPatchSpec and adopt across spec-patch sites (#5004) (@jhrozek)
* f94b99beac8d623e527ff08f747ad8a4946585d3: Release v0.24.1 (#5034) (@stacklokbot)
* b5d1cf3bb1fe1f97729f233d2121e6dbdb18277d: Update module github.com/stacklok/toolhive-catalog to v0.20260423.0 (#5021) (@renovate[bot]) |
| 0.24.0 | 22 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* a543b35e7e98840478fb1d177883aed5b16fd245: Add no-op companion for API Compatibility required check (#4995) (@ChrisJBurns)
* 3b2b4a1fdd682844c5830becdb57739443ee1f70: Compare CRDs against the last release tag, not the rendered chart (#4987) (@ChrisJBurns)
* 1fc17eafc178e209619c0172afbfc646584194f4: Enable thv vmcp commands and add local vMCP architecture docs (#5001) (@yrobla)
* f9b540d20fba667e3144f0ab877fc669da2176d8: Enforce v1beta1 API stability (#4991) (@ChrisJBurns)
* 2d809bc971326cb66deb1050b51d2f6cea3868a4: Introduce MutateAndPatchStatus helper for status writes (#4942) (@jhrozek)
* c3a640b3538d327bf132cda91f46d532acc1a465: Mark local skill builds with an OCI descriptor annotation (#5000) (@samuv)
* 74a11845b01f869e0e0092b9aff98ae5d60b63ae: Patch MCPServer spec instead of Update (#4914) (@jhrozek)
* c7172729714ec3b27e19ba9c6c3a1e701e598827: Re-run api-compat workflow on label changes (#4993) (@ChrisJBurns)
* 5cfc4c009f1434b0f317341382d3fa4e7780faab: Release v0.24.0 (#5006) (@stacklokbot)
* fa85decd8a78aff5cdb77b3a9fec12dedf5a3ee4: Update module github.com/stacklok/toolhive-catalog to v0.20260422.0 (#4999) (@renovate[bot])
* 4e5301d639fe4203214dc2d6184d426ba2f8d18f: test(e2e): add vmcp optimizer tier e2e tests (#4963) (@yrobla) |
| 0.23.1 | 21 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 69fb2b7beca713d462ff38578f6c950859048d2b: Add advisory CRD schema compatibility CI check (#4980) (@ChrisJBurns)
* 63ee62aacfac84c90a005da3e6708a3b86ed499b: Propagate auth errors through stale cache fallback (#4981) (@reyortiz3)
* 7fb840aab57ac54f370db6f47867eefd3e9f3fe3: Release v0.23.1 (#4985) (@stacklokbot)
* 7ee0772a6bd6fe4180af941ade1b50adc7b8ad8a: Unify docs-website release pipeline: new assets + retire dispatch chain (#4982) (@rdimitrov) |
| 0.23.0 | 21 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 117be0406a99c0e9d31574b4b40a761822b9a37f: Default redirectUri on upstream providers as documented in CRD (#4905) (@tgrunnagle)
* 3dbbf5ae696c0f61796a5128811996037099f5cb: Graduate CRDs from v1alpha1 to v1beta1 (#4849) (@ChrisJBurns)
* 81e23e278e0b9c9b20105412785964be3ca3bdb9: Release v0.23.0 (#4973) (@stacklokbot)
* f3c9f241b46e34727e75be60e82de166770b231c: Set MCP parent on resource entities for server-scoped policies (#4965) (@jhrozek) |
| 0.22.0 | 21 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 109815bf98fc0035dfdb966d270a63ff2dbb2e02: Account for embedded auth env in deployment drift checks (#4878) (@JAORMX)
* c17cb40c7b0a3ce9db386e014579e4fe618f3519: Add --system flag to secret list and delete commands (#4910) (@amirejaz)
* 50044f3d3c7f60a315f51a547c3968580f19c78b: Add AdditionalAuthorizationParams to upstream OAuth configs (#4862) (@jhrozek)
* eb7ddef53d337c0e4f5fbfa1df48b71b105feb85: Add EmbeddingServiceManager for TEI container lifecycle (#4912) (@yrobla)
* 108f6fa9c81b7cd82c42a15d150e8321f5230421: Add e2e tests for thv vmcp CLI (#4941) (@yrobla)
* cfd835cd0e89f562ae969c2a4fd41d375f3a8e02: Add name attribute alias on Resource entities (#4907) (@jhrozek)
* ee988f35b6ff04bf2fb08f11b235b7ec6072d70b: Add pkg/vmcp/cli/init.go for vMCP config scaffolding (#4903) (@yrobla)
* ee823d89c430bb6babb4071dadc494a73414bac9: Add policy_stopped workload status and enforce policy gate on restart (#4857) (@reyortiz3)
* 829c4bd07d69dbf1f0b57b862d5b8cb0d6c4fa1e: Add registry-aware workload creation (#4872) (@rdimitrov)
* e6c453a861e853763c32ffb07d5748e7ecb9f64a: Add thv vmcp init subcommand (#4939) (@yrobla)
* e4bfbfe3fba091f0fbd504a8e8475cf7987f7768: Add thv vmcp serve and thv vmcp validate subcommands (#4900) (@yrobla)
* cb37b8ba0d5f95934e1e1e5b843ab3549cdff094: Add unit and integration tests for Cedar group-based authorization (#4964) (@jhrozek)
* b8b76ccec4ddef04c480f50cd5b1ec6fa3d197ef: Add unit tests for pkg/vmcp/cli serve and validate logic (#4898) (@yrobla)
* 8223becaa603c3426d2410dfba95a0e6b8d0e1bc: Add zero-config quick mode for thv vmcp serve (#4913) (@yrobla)
* f5e0dbd221aeb1e7bb6593bf11b7d8b86d918a95: Bump github.com/go-git/go-git/v5 from 5.17.2 to 5.18.0 (#4921) (@dependabot[bot])
* 03f502501dc205a90c3cdd1785da2f890a86d7b9: Bump github.com/moby/spdystream from 0.5.0 to 0.5.1 (#4906) (@dependabot[bot])
* c2b41861fedbee0c701584300decf2d7baf6c9c4: Bump github.com/sigstore/timestamp-authority/v2 from 2.0.3 to 2.0.6 (#4793) (@dependabot[bot])
* 74335226cae32b50cd1b17fae8fdc90eda54e1b4: Detect JSON-RPC application errors in proxy audit middleware (#4709) (@gmogmzGithub)
* 14fe9b69caeea39accc18ae154aa929e450c02ce: Document 502 Bad Gateway failure for installSkill in OpenAPI spec (#4960) (@samuv)
* 8504427fab44e7f1e3afa6161d656c911767d816: Document category-based redis ACLs (#4946) (@tgrunnagle)
* c1292c406eaa653209d75bb8690a50b0cefe59cf: Extend group extraction with dual-claim and dot-notation support (#4911) (@jhrozek)
* 5342824025e06a54e156a5c34b1899cc2b78bcee: Extract vMCP serve/validate logic into pkg/vmcp/cli/ (#4891) (@yrobla)
* b2f6717888668b3e4ec00ac38ea4254149be63b4: Finish defaultTEIImage rename in embedding_manager_test.go (#4957) (@JAORMX)
* 0e5e576e2d599bdb5a97823cde874c5e224dae9d: Fix partialFailureMode validator to accept CRD enum values (#4865) (@jhrozek)
* c331aa4996cbc5f93d2dc6142c80c6b385e1a772: Fix skill install for qualified namespace/name references and missing parent directory (#4841) (@samuv)
* e516be42b5fdbc5b6169c8745865de5600ded3a5: Hide thv vmcp command from CLI help (#4967) (@JAORMX)
* ab2a8210744af07c5e888ce0ce6d81f5bd58c280: Only install skills for clients detected on the system (#4899) (@samuv)
* ee39caff9af461177af138c0edc90b9f09b8e2e8: Release v0.22.0 (#4968) (@stacklokbot)
* dfd794da4ecbaa0fdb02e48e7701f081dc0782ad: Remove empty parent directories on skill uninstall (#4895) (@samuv)
* 34e877d58744a04ad555af1bc09dcbd71568a2b3: Replace groups parameter with variadic parents on entity factory (#4901) (@jhrozek)
* ccf439d3b161281719fcd1062ba9396b823258c0: Return 502 Bad Gateway when OCI skill pull fails (#4956) (@samuv)
* 7a9d65909b1b942d7358bcd70312cb8b78cc1d04: Split skillsvc into per-concern files (#4947) (@samuv)
* f6cdfc29a679258a2294ae3e445da548d2dfb2f0: Thread image verification mode through workload service (#4966) (@rdimitrov)
* 213638793dc7b745b441d04e5f073afd007cd77e: Treat unauthenticated backends as routable in vMCP health (#4866) (@lorr1)
* 4ebcf3bb3716bc3d13246ee39d |
| 0.21.0 | 16 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 2fd2d3bf5f9f840af530d864589f68dc1095a0e7: Add GetContent API for on-the-fly SKILL.md retrieval from OCI and git sources (#4810) (@samuv)
* 9d5982de47d6fed7fbf2dc74727aab0fbb9a5381: Add RoleClaimName to Cedar ConfigOptions (#4847) (@jhrozek)
* afce182b62e72fe1eb780c1f682ceb0cb23cf263: Add color annotations to agent definitions (#4853) (@ChrisJBurns)
* 9176e93fe4bd07c46d877658c6a6a7b019367627: Add horizontal scaling tests for vmcp (#4724) (@yrobla)
* 42f7395688da3e8599ccdeba66d9a345361af5d4: Add integration test for default audience without resource parameter (#4818) (@jhrozek)
* a954dc44e1f77e35210fc9db62a2fbd020fb58c1: Add release-notes skill for generating release notes (#4852) (@ChrisJBurns)
* 300d65989380b4f2c7f07f58ef7fac2210e18046: Add resourceUrl field to MCPOIDCConfigReference (#4855) (@ChrisJBurns)
* c2a8154c656d74e62010d9e0d39fd9f3374f2bab: Add v0.1 server browse endpoints (#4871) (@rdimitrov)
* daea31b506870736b1447a7a7618c0bedb314e03: Address review findings from v0.1 skills OpenAPI PR (#4802) (@samuv)
* 940fc7be40fcd7cf2a79ccdccf2faacadc367b90: Allow local key provider to bypass OIDC discovery failure (#4774) (@jhrozek)
* 8c4f765d3082a7b218709ccd46bd3af3bfc27cc7: Bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.41.0 to 1.43.0 (#4687) (@dependabot[bot])
* 96c4d49b181e71e9d18e424f9e804700833e5a3b: Drop registry-based group support (#4873) (@rdimitrov)
* d5addcd7d330e94286da31617ad561bd9931dd97: Enforce go.mod patch version check in Taskfile and CI (#4864) (@reyortiz3)
* 12f25e5b7c6c60372c5b3093ae957e3726fe0a2a: Expand singleflight boundary in ValidatingCache.Get to cover full hit+check and miss+load path (#4798) (@yrobla)
* 47f428988713d55cd92a4856a00150c3292b563c: Fix port reuse test using hardcoded port number (#4812) (@blkt)
* 3c5ac7e1ff8703a5b9b6662e540560dcd24c5c28: Fix reconcile loop caused by non-deterministic env var ordering in di… (#4783) (@lujunsan)
* 6c8d7d45173f12140cad17cac0c7f27a46be5068: Introduce script engine package for vMCP code mode (#4748) (@jerm-dro)
* bcc9588c5bfae35bb863e290540395226a9e25ab: Persist restored session metadata to Redis in loadSession (#4842) (@yrobla)
* 26aab50dd95defc2ae652ac8ea502d6bc701be9a: Release v0.21.0 (#4902) (@stacklokbot)
* 5e1e1d55859be01191a58b54e1d29ad9e3ccc381: Remove Upsert from DataStorage interface — closes #4726 (#4797) (@yrobla)
* cafa9638a805e53c6913188a26adc6cca5b9e94e: Remove config.groupRef fallback and external_auth_config_ref enum (#4834) (@ChrisJBurns)
* 60108a1759585cb7daf21e9cf31423e76f4c22ab: Remove deprecated incomingAuth.oidcConfig from VirtualMCPServer (#4822) (@ChrisJBurns)
* d27e676780d8dca6adb19458ce1b4f5ce9805cd2: Remove deprecated inline oidcConfig from MCPServer and MCPRemoteProxy (#4820) (@ChrisJBurns)
* 14a1e6c4d0e27d4ed787842f569b568e2a263a3d: Remove deprecated inline telemetry field from CRDs (#4819) (@ChrisJBurns)
* caa31f523227cbe0bdbeb199b73b68b2c9171985: Remove orphaned OIDCConfigRef type and OIDCConfigurable interface (#4846) (@ChrisJBurns)
* 4298cfe53bd7cbf311149aeddc4a3d7018f49872: Remove stale OpenShift values overlay from Helm chart (#4817) (@ChrisJBurns)
* bb213f1652f384efab93f2d4d543e3369705a1b6: Return error from `UpdateConfig` callbacks (#4845) (@blkt)
* bfac2672612db4a3336cd7a7277c5a4c3cc0d18d: Simplify `UpdateConfig` error path and add test (#4858) (@blkt)
* 2ce25094fbaac78d43d6bd720bfc61ce0c8e9b16: Split OTLP endpoint path to fix Langfuse/LangSmith integration (#4815) (@ChrisJBurns)
* 22e4fd9f5abed810ca3c74e786eff4a598fd0a58: Store serverName on Cedar Authorizer (#4861) (@jhrozek)
* e92dba46b5f808fe4270932d4225ef292ecda22f: Update module github.com/stacklok/toolhive-catalog to v0.20260415.0 (#4839) (@renovate[bot])
* e54e6aee433ca0e59bf4cbc87eb050c49703ccb4: Update module github.com/stacklok/toolhive-catalog to v0.20260416.0 (#4876) (@renovate[bot])
* d9447746b7a914551a43cdcb1b4f4d8f60003454: Use scoped secrets provider for registry auth (#4893) (@eleftherias)
* 7339bbd970c35af5 |
| 0.20.0 | 14 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* b250b9065384d294261616631fbc7020b18301d6: Add --remote-auth-scope-param-name for non-standard OAuth scope parameters (#4712) (@gmogmzGithub)
* 36886940229c81f7b416516ab0316feba5c9cb10: Add Cline, Roo Code, Windsurf, Mistral Vibe, Trae, and Antigravity as skill-supporting clients (#4804) (@samuv)
* be40131daab27cf57cf948e3017c7d5d6079a5c5: Add ConfigMap content assertions to vMCP telemetry integration tests (#4807) (@ChrisJBurns)
* 71c8585c91f8bc88b07afa7524c5cbff4cc44808: Add Factory.ai as a supported MCP client (#4795) (@samuv)
* 15dad99e88d81c45978ec8b4c698a886c845453b: Add Goose, Gemini CLI, and Amp as skill-supporting clients (#4799) (@samuv)
* 6a79259893403ca93260b5dc217978abc7dd3bca: Add Kimi Code CLI as a supported MCP client (#4788) (@samuv)
* 2dedbae12a27b175a9e2ac7b685d9a0b6d8afad3: Add Kiro as a skill-supporting client (#4803) (@samuv)
* 943bafbd0851dd812b936125e0312e4bdf801068: Add OpenAPI annotations to v0.1 skills registry endpoints (#4800) (@samuv)
* fa955cdddb728523d28bafa3815e919c40eb10e5: Add TelemetryConfigRef support to VirtualMCPServer CRD (#4801) (@ChrisJBurns)
* 32c23f49c7b29ca1663fb3d4909692e811206dfe: Add VS Code and VS Code Insiders as skill-supporting clients (#4773) (@samuv)
* 1fa05eeef6dc128dbd72da18b6fdd9901426d2ce: Add `Audience` to authserver test client fixture (#4814) (@blkt)
* c1653297c42481e511f7d0f75f745d62ed63a0a4: Add more claude rules (#4782) (@yrobla)
* 0ef63686211f15041bd7b36d07698af8136de15a: Add regression guard for auth context propagation through Close() (#4781) (@yrobla)
* 28426ca20a4e73071869308c96f1e97302209c59: Bump go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp from 1.41.0 to 1.43.0 (#4684) (@dependabot[bot])
* 0c5213e3bc35d108dffeb636ec70ff74aac217f8: Change GroupRef from bare string to typed MCPGroupRef struct (#4809) (@ChrisJBurns)
* c49ec9e79d6e4be271b9364f20674670c5ef07a7: Clean up health check dead code and timeout (#4791) (@gkatz2)
* f6903bba102461de541828a0906ec516c5cf64c4: Fix skill install failure when multiple clients share the same directory (#4796) (@samuv)
* 25fe4754e1e6446843ec25bf7491f6675750c30a: Grant default `aud` when `resource` is absent (#4805) (@blkt)
* 0fb1b422812e2f14d4627af4a0089c78abcfb1b7: Isolate `TestParseGitReference` from ambient env (#4813) (@blkt)
* c63b10ee5e7ab8a75d626e62572f4b17f433a8ca: Propagate protectedResourceAllowPrivateIP through OIDC resolver and converter (#4784) (@ChrisJBurns)
* 7c3cdc7decd600b93fe8378759d3ffd4add46017: Release v0.20.0 (#4816) (@stacklokbot)
* 08e4b5282e45c0452bbce8dc01a22ab84a847e24: Remove redundant storage.Load from NotifyBackendExpired (#4779) (@yrobla)
* 052ecdd199a0bc151906e4cd9dc55af84263d21f: Support stateless streamable-HTTP remote servers (#4515) (@gkatz2)
* cd34d0e7924d66969982f26b8dc494d029bf127e: Update dependency helm/helm to v3.20.2 (#4756) (@renovate[bot])
* c9a2642060d5c4c2dbf9fed1334df5fba7df9166: Update module go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp to v1.43.0 [SECURITY] (#4683) (@renovate[bot])
* f9119cb03574263eb3357f0db1ca3fed1a2afa5c: Update registry API image to v1.1.1 (#4806) (@rdimitrov) |
| 0.19.0 | 13 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* e2927e42cdf00283f4361330e7a58fb2f49c29d3: Add Cursor as a skill-supporting client (#4762) (@samuv)
* 6cac96a92a5858f639882637951f0d8217614d44: Add LRU capacity to ValidatingCache, remove sentinel pattern, add storage Update (#4731) (@yrobla)
* 691f73ab542f86d37e38fdc0638c8e6a080f7fee: Add TelemetryConfigRef support to MCPRemoteProxy (#4719) (@ChrisJBurns)
* a1aad3021a23ea3c175c8008096cbb9300f05fd6: Add deflake skill for finding and fixing flaky tests (#4746) (@jerm-dro)
* 40aea5925071c7bdeffa3a6dfe658dd66c224c15: Add implementation plan section to PR template (#4737) (@jerm-dro)
* 03ec0ade425683254140308303435a0d8e9884b8: Add integration tests for authServerRef on MCPServer and MCPRemoteProxy (#4708) (@tgrunnagle)
* 098694d44a828deac7722e0e37631d7bed568494: Add skills system architecture documentation (#4758) (@JAORMX)
* 31767a2639839b67b7317c49ccc0bf057af5ad41: Add v0.1 skills API endpoints (#4753) (@rdimitrov)
* 20d69170c135cd333d1fab10f95d24859be952b0: Enforce non-registry-server policy gate for remote URL workloads (#4752) (@reyortiz3)
* aa68b5824cf2e2896cc64367fc1931e993bd7a97: Fix GetDefaultProvider bypassing registered config factory (#4740) (@reyortiz3)
* a4f47dc0216a622ddd88e4502b5f794180f7e913: Fix NewHandler using config.NewDefaultProvider instead of config.NewProvider (#4754) (@reyortiz3)
* 684c6c2e71ea04ec6f8e90e15b2ff288ef961295: Fix accuracy issues in skills architecture documentation (#4759) (@rdimitrov)
* 443d2faaa5546b1aa2a1ed85abf65172b728f390: Fix flaky TestForEachStep_ErrorAbort (#4739) (@jerm-dro)
* f66592ab89dd5f05d01c3245e43345eb61049660: Fix runtime_config API semantics and validation (#4435) (@slyt3)
* c9a5402c42b3556c34e5be29fa1e1963fb2e4056: Fix stale config in registry routes and WorkloadService (#4751) (@reyortiz3)
* 9d82ff54452d9dcc785fcba7d89fcfdfce2063f0: Release v0.19.0 (#4785) (@stacklokbot)
* 64378ce272a4cb2b0e8b3f96dc9eeeaec02d3381: Remove enforceServers and image validation from MCPRegistry (#4776) (@ChrisJBurns)
* 992f2e4318230ead9c17ed67cbb9f692b950dd1d: Rename remoteURL and externalURL JSON tags to standard camelCase (#4775) (@ChrisJBurns)
* 729d11fdd554b5789f4b417d6f656f1216f2fb01: Return 503 for expired proxy tokens (#4722) (@gkatz2)
* 10aecb320d6bbb103b6b7d975f590a86a2a8814d: Support multi-client and all-clients skill installation (#4732) (@samuv)
* 00558da2eb898eae911d24dc5e4b5ae5f7e51286: Update anthropics/claude-code-action digest to b47fd72 (#4749) (@renovate[bot])
* 23960900701fb3603bb74f1b1667d19c59a404f2: Update golang.org/x/exp/jsonrpc2 digest to 746e56f (#4750) (@renovate[bot])
* a3f18c6e1c0d5e955f8341ab1defe96e4a2a22e5: Update module github.com/google/go-containerregistry to v0.21.5 (#4757) (@renovate[bot])
* 570615e8694c7a2963982b8e9be040f5a6091f8e: Update module github.com/stacklok/toolhive-catalog to v0.20260413.0 (#4666) (@renovate[bot])
* fae9f0daabb0612e90ee0412f7f3145bf669857c: Use cfg.NewProvider() in run flags to respect enterprise provider factory (#4755) (@reyortiz3)
* b79c6bfa9bda8457f39f2db86cbb9c3154af3d3a: Wait for running state before deleting in lifecycle E2E test (#4745) (@jerm-dro)
* 1d494c43b3a07bfe990700b6de90503a8f77b12d: Webhook Middleware Phase 4: CLI configuration support (#4410) (@Sanskarzz)
* f993590f94ba212cb62d9ff6557f0cec2aa80e03: fix(operator): rename BackendAuthType enum value to camelCase (#4563) (@tmchow)
* 275c56bd67f45dd1a502aac559fc77ab880c9479: honor webhook http 422 as unconditional deny (#4703) (@Sanskarzz) |
| 0.18.0 | 10 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 1a6287bb75bcc8991aa2526da9a10e81a35c243e: Add LRU capacity to ValidatingCache, remove sentinel pattern, add storage Update (#4669) (@yrobla)
* 65a78f49d74bff3b41e23c07e1c0782a02df3eac: Add per-user rate limit types and limiter support (#4692) (@jerm-dro)
* 9c974a3e006f2012d2558945365b9e1d3faefd9a: Fix health-check close failing auth in vMCP BackendClient (#4613) (@yrobla)
* 25b5c783b6a58997909bd3ea07005d9c691d89e6: Follow HTTP redirects in transparent proxy (#4454) (@gkatz2)
* 63a2f62604fd88e9b9582bebe544b2b949c3de1d: Make transparent proxy health check parameters configurable (#4108) (@gkatz2)
* 0021b0bc44ec38cef7f86184458b9b9067ec8c79: Move CheckCreateServer policy check before image download (#4734) (@aponcedeleonch)
* 1be5e35f91112bca780884cbc7d5f861b029a78d: Release v0.18.0 (#4735) (@stacklokbot)
* ecd7872c59dd9fbc23679a6926ae6d5c831501ae: Remove deprecated legacy typed fields from MCPRegistry CRD (#4705) (@ChrisJBurns)
* ef057c47713af663c59473e239d45edcd4e1b750: Replace flaky proxy-restart test with cross-proxy routing (#4723) (@jerm-dro)
* 51dab12379709857975128820d677c52d10cd4bc: Return registry type on error for accurate user-facing messages (#4733) (@aponcedeleonch)
* acc1f66303f8087d5823165f61ae15c9cc1b0605: Revert "Add LRU capacity to ValidatingCache, remove sentinel pattern, add storage Update" (#4730) (@yrobla)
* d851c69f132d8acbf8f301c70c00cfa9afa81ad9: Route MCP sessions to the originating backend pod using httptrace (#4673) (@yrobla)
* 3d7b91641d2792a4e3e39d204458408c4466140e: Wire per-user identity into rate limit middleware (#4718) (@jerm-dro)
* a7f347fd5decc8bed92301bacbf5fd4322f33285: refactor: rename McpPort to MCPPort for Go naming conventions (#4589) (@mvanhorn) |
| 0.17.0 | 9 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 97051d8c4a8bd8b715c9bfba0133759ef5742ffa: Add MCPServerEntry backend discovery to VirtualMCPServer (#4698) (@JAORMX)
* 563ab06577c519d1414c3aa8d567ed7dc2512def: Add MCPServerEntry documentation and examples (#4715) (@ChrisJBurns)
* b5427274fccae92e3e38e0da8ea300d44b12c315: Add MCPServerEntry validation controller and MCPGroup integration (#4664) (@JAORMX)
* 9797bae180e6e4fafb09c067f56e7e6628801cff: Add RegistryServerName to RunConfig for registry entry tracking (#4696) (@JAORMX)
* 1f658a2423dbc1964833e16436f79e437ecb4d14: Add RestoreHijackPrevention and RestoreSession interface stub (#4405) (@yrobla)
* 55d82f5f15da2c93cd0b1ad2ebfd526919adfcff: Add SSRF protection to RemoteURL validation (#4697) (@JAORMX)
* 1b8478fcc5d6698cd72a0ac05cc49cfcaa294d35: Add authServerRef CRD types, controller logic, and unit tests (#4644) (@tgrunnagle)
* d3479a97f21b3c181dce9b9bdfb14e3f6ad5677e: Add coding conventions derived from recent PR review feedback (#4636) (@yrobla)
* d8ddb8996ef53abd44f7d4808816f79e0c89f903: Add custom CA certificate support for OTLP endpoints (#4676) (@ChrisJBurns)
* ed7e41b1cca943042e2c6985a9e7144c0e85bbe7: Add decoupled configYAML path to MCPRegistry CRD (#4693) (@ChrisJBurns)
* 3238246a4c30056f4a33252c4a5bb7c929a0ea8d: Add explicit Taskfile usage guidance to CLAUDE.md (#4700) (@JAORMX)
* 033e051ac4328ceeca8c924e9c57cb9e68ecab83: Add supports_skills to GET /api/v1beta/discovery/clients response (#4699) (@samuv)
* 67bfd98a9201cae25468bfda3222e75dc210843f: Add vMCP MCPServerEntry dynamic mode reconciler (#4710) (@ChrisJBurns)
* a4e4c1ce01a9833324fd67ce8deebd0aa855da0f: Add vMCP MCPServerEntry static backend support (#4707) (@ChrisJBurns)
* a4434695d00a148829991fcbbc08867db2602b4e: Align MCPRegistry CRD with registry server v2 config format (#4653) (@rdimitrov)
* fdd9e30ef551cbde23024210b02c0c494d9956f5: Bump go.opentelemetry.io/otel/sdk from 1.42.0 to 1.43.0 (#4688) (@dependabot[bot])
* 96bee391cfbedc6fb18535520cd72baf382307bd: Bump registry API image to v1.0.1 (#4706) (@rdimitrov)
* ccad93aeeb7389c56ad6e2a1058fec72cedb5484: Coerce types for non-advertised backend tools in composite workflows (#4671) (@yrobla)
* d68ea47f72e7d1ffefb9ce9330cf281a44ed2dd3: Consolidate MCPRegistry status to match MCPServer pattern (#4643) (@ChrisJBurns)
* 51695ea5e57ec78dbeca26103f4cf3db990ceb36: Exclude terminating pods from MCPServer ReadyReplicas count (#4609) (@olamide226)
* 520a1b2a2491d0ecfb1d8863ccb7c9ef960d9039: Extract shared E2E helpers into testutil package (#4654) (@jerm-dro)
* ce31e57ba4f3c0a7b1b00526dd40a24bb01b02e3: Issues/4681 - Recognize ErrAbortHandler in recovery middleware (#4682) (@mauriciocoder)
* c2276296a9982b143fe90663433b6cdea46a21fb: Log when authorization policies filter list responses (#4690) (@jerm-dro)
* d308ba02b8cb8eba6a9e408d2cd91cfae1d5f8f5: Move MCPServer deletion check before validation and external API calls (#4650) (@qorexdev)
* a388093942e735b7897a075866b02a6704817b5b: Registry policy gates with type-safe configs (#4711) (@aponcedeleonch)
* 967257ecc29cf00c8f6c2b8fb1fa5b07554b4202: Release v0.17.0 (#4716) (@stacklokbot)
* 3c5da315a9aa0f23f08007437dc71048a1355b41: Remove RFC draft accidentally committed to repo root (#4691) (@jerm-dro)
* e9f618c1dec9de69858118594541d1d0b2008fed: Retry OAuth token refresh on server errors (#4513) (@gkatz2)
* 045b34cb7d3607610e9a752c79c30a1ce7092e77: Standardize workload CRD healthy phase on Ready (#4689) (@ChrisJBurns)
* 1e6d778b4ad23c2040978f590945e25e3de09b36: Stop pinning Go to patch versions, use stable in CI (#4713) (@rdimitrov)
* 37e5bdee7a5031ee84ac331008b3ae44587fcaa2: Strip proxy headers from SigV4 signing clone (#4670) (@jhrozek)
* 495b86eba817282fe2ef7f61b403b0c156395b65: Update module go.opentelemetry.io/otel/sdk to v1.43.0 [SECURITY] (#4686) (@renovate[bot])
* 1bc77944bda51f69ba77b066140876c534908df7: Webhook Middleware Phase 3: Mutating webhook middleware with JSONPatch (#4372) (@Sanskarzz)
* e32dd5c5a5929bb8beb0c267d32e9c435d214dee: Wire rate |
| 0.16.0 | 8 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 213b0dd00af7d8b9f8df5ca005271ac5b4f00b7c: Add +listType annotations to all CRD slice fields (#4586) (@ChrisJBurns)
* 1db9dd08a7fc15aa28035bc921bf795e12b2bddf: Add ApplyServerExtensions hook to serve command (#4579) (@amirejaz)
* d59acf51570b9dfa9495705cffad98c8ba4bd539: Add E2E test for MCPServer cross-replica session routing with Redis (#4525) (@jerm-dro)
* 8b8412b59decc85cd34304b57e5cf32a0aa2cccb: Add MCPServerEntry CRD types and MCPGroup status fields (#4662) (@JAORMX)
* 4529b8eec9b587043f9729cf6b5192a92cc5dd51: Add PolicyGate extension point to pkg/runner (#4614) (@reyortiz3)
* 56b91381ebbb9cb7ad600674ef3c0c32abdf2362: Add RegistrySourceURL to RunConfig for registry provenance tracking (#4677) (@aponcedeleonch)
* 8c70343b38a038721323ffeed18c2761675557ef: Add implement-story skill for user story execution (#4576) (@jerm-dro)
* adee17277f86e37b6e16ebb210a2d456452fa342: Add missing ObservedGeneration to condition structs in 3 controllers (#4598) (@ChrisJBurns)
* 0734aaeb321e3c3daeab9b661a3095ed4b0fbd94: Add missing SPDX-FileCopyrightText headers to EmbeddingServer files (#4596) (@ChrisJBurns)
* 1ddaaeff91a4e194ae76f67fd14e5bafc64618e1: Add missing shortNames to MCPRemoteProxy, EmbeddingServer, and MCPRegistry CRDs (#4594) (@ChrisJBurns)
* 4bb35bea209725ba5aa8af47604f4858e7952ec1: Add package API surface rule and skill guidance (#4578) (@jerm-dro)
* 51fda65863bb6f2b61c5397d8fb4473e4c12bd3a: Add rate limiting CRD types and token-bucket package (#4577) (@jerm-dro)
* 1ada27f1f0af1b99980d9a0a868bc107ad98ce3d: Add thv skill builds command to list and remove locally-built OCI skill artifacts (#4674) (@samuv)
* 22a420395bdf019fcc617f0aefc812eb8fc4b600: Add thv skill builds command to list locally-built OCI artifacts (#4499) (@samuv)
* b9f81669f81f216bcd4c052e1657a461e7b43660: Add validation for SamplingRate field in CRDs (#4593) (@ChrisJBurns)
* 976439db82556e4f48d09c2b3b6d4254d77579a7: Align OpenShift values file image tags with main values.yaml (#4608) (@ChrisJBurns)
* 51218a7249326abed9a29041964b0610e72bc185: Auto-populate SubjectProviderName for token_exchange strategies when embedded auth server is active (#4529) (@tgrunnagle)
* 27e21d0b923881309d1fb5e6cd9eae745fac3ee8: Bump Go to 1.26.2 to fix stdlib vulnerabilities (#4665) (@JAORMX)
* a4b4ac82e05c712a6d9a7311b09ce053a24e8ef6: Bump go-jose/v3 to v3.0.5 and go-jose/v4 to v4.1.4 (#4569) (@amirejaz)
* deeb438c8ffa3c1c298ac9322a03f174d86a9341: Emit workload startup message as structured JSON log (#4567) (@danbarr)
* fcc244fc9639588c9f2f8eeaa5efe696b2c23452: Extract backendCheck type for per-backend goroutine lifecycle (#4532) (@ChrisJBurns)
* 6c065f5ce884253821d318297ede94d9de0e26c3: Fix API group mismatch in operator webhook manifest (#4600) (@ChrisJBurns)
* 8135ce49680b817323125fb87e481011c8d4a7cf: Fix CI extraVolumes test using wrong value keys (#4607) (@ChrisJBurns)
* 41458fe0d1148682ea1a06833f890f629b4a4d7e: Fix ServiceAccount annotation indentation in operator Helm chart (#4603) (@ChrisJBurns)
* bd4a04f6c30db93c7a36ae687437b543e62f63f9: Fix flaky VirtualMCPServer scaling e2e test (#4524) (@ChrisJBurns)
* f8b6051ab16d32d945394a5afd28a188c8ef7ca5: Fix gomemlimit typo and reduce value below container memory limit (#4610) (@ChrisJBurns)
* 65f81267c2cc166c8370ff354f7398995f79d800: Fix operator.env default type from map to list (#4611) (@ChrisJBurns)
* d7e37b88d8fd135cee886d678693c6e9b4be4520: Fix stale MCPOIDCConfig printer column JSONPaths (#4530) (@ChrisJBurns)
* 8b36d999c88de0e4bae2238885c992a6a34e0803: Migrate session manager to DataStorage with cross-pod restore (#4479) (@yrobla)
* 69ea2de7e07685e83e0812bf237cace0d6159a9f: Persist config ref condition on recovery from transient errors (#4533) (@ChrisJBurns)
* 257c467a92d6d5f9f38d8789a0cf34a50181f10c: Release v0.16.0 (#4679) (@stacklokbot)
* bd022324f57face9c57fb3bd0c3b98a430b8deed: Remove in-memory cache from EncryptedManager (#4645) (@amirejaz)
* 9f38bbe9896d55fca04b6dc06073af991979c637: Replace condition type |
| 0.15.0 | 3 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 1bcf16bd2b84a24f8697d408bcf7c3a7216fe696: Add DataStorage interface and implementations (#4458) (@yrobla)
* 28370f62f0d23607285eeea284c01432fb802fb4: Add MCPOIDCConfig CRD types and MCPServer reference field (#4461) (@ChrisJBurns)
* 2b042d66da72fd087c7c838116dcdd0edab2a378: Add MCPOIDCConfig controller for lifecycle management (#4462) (@ChrisJBurns)
* 98e46e00866a635dadee5a97888386a9b3013ebd: Add MCPTelemetryConfig CRD API types (#4478) (@ChrisJBurns)
* 69d136b711d01b9d4d7e9068a1d961af4c858a03: Add MCPTelemetryConfig controller for lifecycle management (#4480) (@ChrisJBurns)
* f81841fbaec548e27d3d0b002f3ae7865e395964: Add OTEL distributed tracing and optional Sentry integration to the API server (#4365) (@samuv)
* b0a69dd51baec408ca444d338c872f620f6662b2: Add ObservedGeneration to MCPServer, MCPGroup, and MCPRegistry status (#4473) (@ChrisJBurns)
* 20dac0f535b38e490e12909d5178f9acc33627c9: Add categories=toolhive to all CRD resource markers (#4470) (@ChrisJBurns)
* 68dfff9cf78f602a8f64cc330d3bac495760f104: Add crash-safe migration for legacy system secret keys (#4346) (@amirejaz)
* 1c276b43c2b272196666c4c72dba112631dd8167: Add factory helpers for user and scoped secret providers (#4242) (@amirejaz)
* a948281993ef85496006d3252b4d33606a49fb1d: Add full `.task/` directory to gitignore (#4500) (@JAORMX)
* adabad1b08c1ae177ee33b4e6733116db9ddc713: Add migration window fallback to ScopedProvider (#4386) (@amirejaz)
* f43e29b3f698ee0c66929e977e35f6d5251a0f44: Add printer columns to all CRDs (#4489) (@ChrisJBurns)
* f1bd180307fe29444009dc66f068e7f9ce73788b: Add status conditions to MCPToolConfig CRD (#4474) (@ChrisJBurns)
* 41ce39d6e9e31e2e894729b163d3ded74ebda673: Add top-level Ready condition to MCPServer (#4477) (@ChrisJBurns)
* c63b9eba45e8efd8dbce8847ea0b29018bfbf769: Enforce Cedar policies on optimizer find_tool and call_tool (#4385) (@aponcedeleonch)
* 5c258a11167104215211da071375666eb726c58f: Enforce Cedar policies on upstream IDP token claims (#4448) (@tgrunnagle)
* b0f138bf2de57ae3974ad547390a3c3ed5ecb7ca: Extract resolveOIDCConfig helper in VirtualMCPServer converter (#4505) (@ChrisJBurns)
* 2e8e487f34db1d0356ac94f099090f85a8c9d509: Extract shared WorkloadReference helpers into controllerutil (#4520) (@ChrisJBurns)
* d0cbb97551ff7ec87ce6439fc9aa2051114187ae: Fix crdref-gen task to work from the repo root (#4475) (@ChrisJBurns)
* 2f98143d3cc8c126debee0e89adea332a575dc75: Handle stale ReferencingWorkloads in telemetry watch handler (#4508) (@ChrisJBurns)
* ce3ade5cb21c6be1f805fb51fef231ac6870b40a: Ignore Docker daemon-side vulns in govulncheck (#4521) (@ChrisJBurns)
* 11cd2669340fcaf1a8916a66db4c565d6f545616: Migrate Renovate config (#4442) (@renovate[bot])
* 47c3651a428394272fa7bbdd6e115424944d37d5: Migrate session manager to DataStorage and add RestoreSession (#4464) (@yrobla)
* c3fadd11ab545902ea95d1470af0e92c231029ca: Normalize proxyMode to always reflect effective HTTP protocol (#4468) (@ChrisJBurns)
* cab4d6345d89b72b30eafcea6caa01596e1528d0: Release v0.15.0 (#4527) (@stacklokbot)
* 029ecbd1e2d46b4d4fc87164dc6089264930c858: Remove deprecated fields from MCPServer and MCPRemoteProxy CRDs (#4467) (@ChrisJBurns)
* 8b7c40e429e688cd5b0c883509f7e9fae0becfd6: Rename DataStorage.Store/StoreIfAbsent to Upsert/Create (#4476) (@yrobla)
* 26f6e1e1d7aa7f0bcc5f2ca388c910ab95711768: Rename MCPOIDCConfig condition type from Valid to Ready per RFC-0023 (#4490) (@ChrisJBurns)
* ea7e3ad31c5cf3bd7fa4d84a8882a69a0a5c539d: Replace ReferencingServers with ReferencingWorkloads on MCPExternalAuthConfig (#4507) (@ChrisJBurns)
* 5627dcb5fb522d261bd7bb2e4ae6038b91a20278: Replace ReferencingServers with ReferencingWorkloads on MCPToolConfig (#4506) (@ChrisJBurns)
* 610075f67aa532cfa186d76f0ae09c03df930171: Replace ReferencingServers with structured ReferencingWorkloads on MCPOIDCConfig (#4492) (@ChrisJBurns)
* 6adbe2b20d6eded92b01de60e2e0d4a1ece292b4: Resolve JWKS keys in-process for embedded auth server (MCP server) (#4502) (@tgrunn |
| 0.14.1 | 30 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* d8ca36352db23dcdcfcd5a915e2c17aa08e09d50: Add CRD type and converter for upstream_inject strategy (#4391) (@jhrozek)
* c904adecfc18764d3ffb5f7220e10c5bf68990e6: Add scoped and user secret providers with system key isolation (#4229) (@amirejaz)
* d3dcbdd7c748161a8029db75ae97b8bc6801261a: Preserve scopes in token refresh request (#4428) (@gkatz2)
* 4022c7476745606ae1786f43cec8f251e3de6a4c: Release v0.14.1 (#4446) (@stacklokbot)
* eb0d4053cbd303eb91610aa34e369818b34eda5e: Respect global config for OTel tracing and metrics enabled (#4326) (@gkatz2)
* c4658885ba15b35044797fc9e1813f99ba001253: Return JSON-RPC errors for expired sessions (#4426) (@gkatz2)
* 2c27346291e64610eade302897c52a50639cf5cd: Treat PID 0 as dead in supervisor liveness check (#4431) (@gkatz2) |
| 0.14.0 | 30 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 4a0da4388695851279f768716eb7cc3c91d33477: Default to :latest tag for OCI skill install references (#4430) (@JAORMX)
* e3c605fb53383b45e123b5123286d8b7ce1f0718: Implement upstream_inject strategy and SubjectProviderName (#4390) (@jhrozek)
* feef6ed5b427bd7d1de98dcac539e384e045fd57: Improve code-review-assist skill for clearer reviews (#4424) (@jerm-dro)
* b93cfe126cebc3a62b91bcd9748c2974dd7e314e: Persist per-backend session IDs to transport metadata on session creation (#4403) (@yrobla)
* ef7e815e1fae51949b2cce3d1e349d19232c03a3: Pin anthropics/claude-code-base-action action to e8132bc (#4411) (@renovate[bot])
* a9063950b1512a01c36a85b9a3eb2a2235302155: Release v0.14.0 (#4445) (@stacklokbot)
* 982421079def3775ca9a21e88db28deefd4a3401: Unhide skill CLI commands and update toolhive-cli-user skill (#4443) (@JAORMX)
* 1831a240b5b988fcb38b57793fb176083e5d5def: Update anthropics/claude-code-action digest to 88c168b (#4412) (@renovate[bot])
* 19eeb6b6bffaf19e102826dd40c9cf2212ab21fc: Update aws-sdk-go-v2 monorepo (#4416) (@renovate[bot])
* cc4919ec620d1f0edc32db5c8a96dd7654217e46: Update codecov/codecov-action digest to 75cd116 (#4414) (@renovate[bot])
* 50d580a4dcf9a8ed147571e881c8665137571ff1: Update github/codeql-action digest to c10b806 (#4415) (@renovate[bot])
* 2fd35230c9d0c96addce95e5e1bf78951dd1d45c: Update kubernetes dependencies (#4417) (@renovate[bot])
* 96c658cb1c6983a86e6b54265ce35706ab83bc30: Update module github.com/pelletier/go-toml/v2 to v2.3.0 (#4422) (@renovate[bot])
* 7868d49f08fd99b0f0d8e827a7b04e0038acad68: Update module github.com/stacklok/toolhive-catalog to v0.20260330.0 (#4423) (@renovate[bot])
* 36af102314d2f8c01ea80039476b664194b019e1: Update module github.com/stacklok/toolhive-core to v0.0.13 (#4439) (@renovate[bot])
* fbde7be2b91cb81bc59678f87561d03c340dc095: Update module github.com/zalando/go-keyring to v0.2.8 (#4418) (@renovate[bot])
* 227c4e9ec9db744a595bded364f54c111abeff50: Update module golang.ngrok.com/ngrok/v2 to v2.1.2 (#4419) (@renovate[bot])
* 2a084e817ef588bf88fafcec6b0d527ad3d9f118: Update sigstore/cosign-installer action to v4.1.1 (#4420) (@renovate[bot])
* bbbe8f3fe6b52211527b04298907ff084150bc21: Update stacklok/releaseo action to v0.0.4 (#4421) (@renovate[bot])
* 7cff3cdff95730085a8a6aefb06bedbf78b88af2: Wire embedded auth server into VirtualMCPServer converter and deployment (#4383) (@jhrozek)
* 4557382428f07215affd9b23dcd23d28b95bfa03: fix(mcp): disable interactive OAuth in embedded MCP server handler (#4444) (@peppescg) |
| 0.13.1 | 27 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 9ee7873af7e22369a446ee56dc87913dea6708e7: Add edited trigger to PR size labeler workflow (#4398) (@danbarr)
* a77111745cd04dd4a67fc60552a273768979f020: Add tests for horizontal scaling operator behaviors (#4388) (@yrobla)
* 887b39cdcf165992f46872b0e7462062e8981ad2: Block Docker gateway addresses in egress proxy by default (#4395) (@tgrunnagle)
* e52f3e91595a4537048cf0c0dfdf1a1149d0d04b: Fix macOS symlink test failures and upgrade phonenumbers dependency (#4399) (@reyortiz3)
* 3f776f07e3a15d0c0c3f6d4db7d3162c2486619c: Guard against invalid PIDs in process operations (#4401) (@gkatz2)
* 3561c5d75e31fefc7e370bc6f00cf97d4563165f: Inject Redis session storage config into vMCP ConfigMap (#4387) (@yrobla)
* 70845b531e0c1c6899e87f51f51eeae789a91a67: Release v0.13.1 (#4409) (@stacklokbot)
* 2a89245ff85626924015f8d6eb79d4b9f14e29ce: Return JSON 404 for OAuth discovery when auth is off (#4366) (@JAORMX)
* e62f8337c1c47836b5e825d749b2bbfdacbfdea1: Support RFC 8414 path-based issuer discovery URLs (#4406) (@jhrozek)
* bc24877e2c617770853dff2ac5eaedbbe077014a: Update diagrams and links in README (#4397) (@danbarr)
* d57d73bc8d678a82d014990138aee5944a5ea528: feat: add authorizationEndpointBaseUrl override to embedded auth server (#4396) (@jerm-dro)
* e1ade3c5b8af39d976a8aa3a9816c54de0c94883: fix: make experimental MCP server initialization non-fatal to thv serve (#4393) (@peppescg) |
| 0.13.0 | 26 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* a4dc39fb17375acaae66b66effb859a165dffab6: Add AuthServerConfig validation condition to VirtualMCPServer reconciler (#4350) (@jhrozek)
* 4838bb4c54275890b247bbb84ba27e05d1cae009: Add AuthServerConfigRef CRD field, config model, and JwksAllowPrivateIP (#4286) (@jhrozek)
* 9c8f5ec6ee8807642a46416855fff20d54bdf06d: Add CRD type changes for horizontal scaling (#4363) (@yrobla)
* f64d8074d584d4b24e55521de3a72cb1509010f9: Add RegisterHandlers and wire embedded AS routes on vMCP mux (#4348) (@jhrozek)
* ccb98c32e25b833594e4e475353fb765a54d2394: Add RegisterProviderFactory extension point to pkg/config (#4340) (@aponcedeleonch)
* 978185282f752a1db48bafcc8ee2df5b592f93e0: Add forEach step type for VMCP composite tool workflows (#4375) (@JAORMX)
* 8f1e6969d33a7f043e5cae685709c8e105e69baa: Add multi-violation CEL integration tests for OIDCConfigRef and AuthzConfigRef (#4309) (@ChrisJBurns)
* b29f60fa9dacdbb41fbc30d113c15cbf81d55942: Add session planning and comment guardrails to code-review-assist skill (#4356) (@jerm-dro)
* 8e2d8770c01227aef4ad13bf4b9556efaea151af: Add upstream_inject strategy type and auth server validation (#4349) (@jhrozek)
* 9f7d1a879353d9e1d14fa31935baa5f715e9ca8e: Couple registry server URL and registry auth (#4361) (@eleftherias)
* 074326e123402cb848b3d8c1a2fca0dd2e52b060: Enable multi-upstream for MCPServer, MCPRemoteProxy, and proxy runner (#4322) (@jhrozek)
* 7c6677323fd67dd9b9a39d373ec7e106c86ff708: Enrich Identity with upstream tokens and simplify upstreamswap (#4355) (@jhrozek)
* 60d91c405291f1b6d5b2861d31c06f5e35151cfd: Expose content array alongside structuredContent in workflow templates (#4384) (@JAORMX)
* bf94a0608b8c2c3a5a01317efc3e3573ca0a3fc4: Fall through to well-known discovery when resource metadata auth fails (#4371) (@reyortiz3)
* 2a677191efcb8d94f164cd7823a377d080086ea4: Fix concurrent SetSecret calls silently clobbering each other (#4345) (@JAORMX)
* f3621078f2e3a0afdc87bf4b5dcf2b4e771f39f1: Fix flaky TestWorkflowEngine_ParallelExecution on CI (#4333) (@JAORMX)
* ad3b7a54e5f64fd0b5a77c42ae79f5d572c791a9: Fix resource relay to preserve text/blob distinction (#4335) (@JAORMX)
* 46d3c9fe6da4d7122e68cc4852f5e0e2fc5f06a3: Guard PID reset against replacement process (#4325) (@gkatz2)
* ce4123ea863154a6c8ae28d4ea1e1a72ed389e89: Handle shutdown timeout in thv HTTP server (#4328) (@JAORMX)
* cec6b10f21ad027463736a494398a91a12058534: Improve E2E test debuggability in CI (#4332) (@JAORMX)
* 14d1120c5a099ff4c9b753bb541ec5ede8345277: Increase session management E2E test timeout to 3 minutes (#4344) (@JAORMX)
* d288822ce88c4b975f708e71b6899b3460af4321: Increase timeout and add debug logging in lifecycle E2E test (#4331) (@JAORMX)
* f7ab64a57e7838744e08d0d0ba996fb7ce4a6970: Inject BackendReplicas and Redis session config into MCPServer RunConfig (#4368) (@yrobla)
* d208cfc4df6a0720a73f76bb91e8884a6301ef5e: Inject run config store into WorkloadFromContainerInfo (#4342) (@JAORMX)
* a9f92a019fd21d6cc6996c5e7b898bb27d9900dc: Merge runtime config override with defaults (#4304) (@lorr1)
* 46b63d538f116123c5a21ee3235fdcd254bd580f: Move TTL refresh into LocalStorage.Load, remove Session.Touch() (#4337) (@yrobla)
* 3a3287b156b0682049855df8a3305cb60f35d92d: Preserve content-level annotations through vMCP relay (#4336) (@JAORMX)
* df1a5cd0ca837c57947b18e31efd8c6e192b1f51: Preserve prompt message structure through vMCP relay (#4334) (@JAORMX)
* 8fc2c71f428379da23da1c671e7029a25eed309d: Release v0.13.0 (#4389) (@stacklokbot)
* 858ec688bc46e4f53275d4ec921b1a4fbb0cdffa: Remove SessionCacheSize from ScalingConfig (#4347) (@yrobla)
* 87529a176fcb522684d03fdec736e4f484a3b8c5: Support publishing additional container ports in thv run (#3892) (@Sanskarzz)
* 64c2a58adaed671e25231a3704bfd3ad81485346: Update anchore/sbom-action action to v0.24.0 (#4377) (@renovate[bot])
* 1e9747b3bb7f8688247c6447757aa3526db0d2f1: Update anchore/scan-action action to v7.4.0 (#4378) (@renovate[bot])
* 4693a888ca7101f37e0c4adf3b15814587 |
| 0.12.5 | 24 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* a685e8963d528a8f01487e044bcbd8760fa81bb8: Add BackendReplicas and SessionCacheSize to RunConfig (#4239) (@yrobla)
* 0108b1131e130815db0778776e4b9da4c424ff61: Add CEL validation to OIDCConfigRef and AuthzConfigRef union types (#4299) (@ChrisJBurns)
* 660babb957992cae68fdf273b754b95d3e194697: Add Swagger annotations for registry auth endpoints (#4243) (@ChrisJBurns)
* dee0cf8281d9b12b3c40e298206bb2872bd9390a: Add code review assist skill and expand vMCP anti-patterns (#4302) (@jerm-dro)
* 949ae4280ddedd03da519fef881bd3022e65c8be: Add foundational webhook package (Phase 1 of dynamic webhook middleware) (#3840) (@Sanskarzz)
* e297091d6a99960d5841cf59a03dc0e0a704a4ed: Bump github.com/buger/jsonparser from 1.1.1 to 1.1.2 (#4311) (@dependabot[bot])
* 261aeb2ed1b9eb8df2b456acefae5b30cc24a2b1: Enterprise quick link (#4303) (@aaortiz)
* 95041a694860a906d83348dd7db6eea1376e6792: Fix MCPRegistry operator to update deployments on spec changes (#4237) (@rdimitrov)
* 04ae19770399b30d8f8ada6a9548ecbad7babecf: Fix inspector URL using wrong transport for proxied stdio servers (#4300) (@danbarr)
* 4bb1016b31bcc66ce85dd2876a5f7b511041822e: Fix missing resource parameter on cached token restore (#4292) (@rodrigo1208)
* 80657dbd20b0448248cd8a1483d6508ea66f1aaa: Fix release workflow: cosign-installer upgrade and re-run support (#4244) (@amirejaz)
* 5769a5d2f95ee094b2fa928ae45e945ccabc0cdd: Gracefully handle SIGTERM in thv HTTP server (#4327) (@JAORMX)
* e73512271fdaed2f74e646403f8335fd9e993c77: Implement multi-upstream sequential authorization chain (#4283) (@jhrozek)
* 35d2fc02b3cf2f0d853e352ff0f53f4af9c2fb0d: Improve code-review-assist skill from review sessions (#4321) (@jerm-dro)
* f52b6d075134c11db7688d0ce909f466fa815256: Key authserver's upstream token storage on (sessionID, providerName) (#4198) (@jhrozek)
* e561e9cf4ee18848dde7f57bded79b13b77826e2: Map mcp-go sentinel errors and poll registry version for timely status reports (#4317) (@yrobla)
* fadfd8a9b04e9800a8a3e0ebaca6821ee179a3d1: Prevent permanent backend unhealthy marking after startup race (#4290) (@yrobla)
* 1b1886304ee13981a92d3f712eb296c5dd6cbd5c: Release v0.12.5 (#4330) (@stacklokbot)
* 287e791fb0862f5575f786714788d986fcbc3cc9: Remove orphaned registry API Helm templates (#4246) (@ChrisJBurns)
* b57cd151308728f118b3b06326278cd3b013d473: Replace webhook.Principal with auth.Identity (#4316) (@JAORMX)
* 0e61527179f8af5632c86caacbce39df5a1b3429: Resolve plain skill names from registry during install (#4200) (@JAORMX)
* acbab2a0b615b53e1c0dac1ae13d0d715c0a67dd: Retry transient network errors in background token monitor (#4281) (@reyortiz3)
* ff9e9eac31174ab990e4cafc85d767355912dd23: Support overriding tool annotations in aggregation config (#4285) (@jerm-dro)
* d701dff94d21780dac365eaf97ed9a2a5b1d62b5: Update actions/cache digest to 6682284 (#4305) (@renovate[bot])
* 5b74c818e0dc3b69f30050915721c3906503e9cd: Update anthropics/claude-code-action digest to ff9acae (#4306) (@renovate[bot])
* c95dd3596be2011862724af839b2d5799b7132ce: Update codecov/codecov-action digest to 1af5884 (#4307) (@renovate[bot])
* 3c6bc63c780cc46427c41c8eca1aab65c8ab3f9b: Update github/codeql-action digest to 3869755 (#4308) (@renovate[bot])
* a131bb7f08d3e834e77c86cafae7bb1948d1a617: Update module github.com/stacklok/toolhive-catalog to v0.20260319.0 (#4230) (@renovate[bot])
* e0b0ef94b6d64b5c51314e06b6f33cf3d6408f5f: Update module github.com/stacklok/toolhive-catalog to v0.20260323.0 (#4289) (@renovate[bot])
* efb15e9105998a3e68eededb7a2a5097f699bce9: Wire BackendReplicas through to StatefulSet replica count (#4291) (@yrobla)
* 41c74746e39d01ee87572d0e37114ac1fad7da60: Wire non-interactive registry auth for serve mode (#4111) (@ChrisJBurns)
* cd139df3d4e8a422d2d07cc35ee8745c03a25d34: chore: migrate from Trivy to Grype for vulnerability scanning (#4288) (@JAORMX)
* d96dbac5197e7d75b74ca21e632d47588aaea1b1: feat(proxyrunner): wire SIGTERM-aware graceful shutdown (RC-14) (#4241) (@yrobla)
* 6dd3ea |
| 0.12.4 | 19 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 81f9d84a2f07bc277eca92e0ae03f423ab54c71f: Preserve tool annotations and output schema in GetAdaptedTools (#4238) (@JAORMX)
* 3ae086f7ff7266e7f91667b3bbd5949ee2dffa1c: Release v0.12.4 (#4240) (@stacklokbot) |
| 0.12.2 | 17 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 79a2e6c3703e3a87772414b037c3ce6b2b10abb0: Add Skills API client for registry extension (#4173) (@JAORMX)
* 118b92f659d99dbc3e60786fd14fee74a7135e5c: Add integration tests for upstream token refresh (#4133) (@jhrozek)
* b4acadfc8bac5b5b87751c999ab22279e99de4da: Add notifications/elicitation/complete to MCP parser (#4157) (@JAORMX)
* ca7f12707fb058d9bb33af2d19deac5b032d3ea6: Add permissionMode to code-writing agents (#4174) (@JAORMX)
* a811e590028b8f67cbef84d293daf5279054541b: Add registry login & logout CLI commands (#4121) (@ChrisJBurns)
* ba38a122e494ce4988bc9dc95a9b3b7aa222aa7d: Add swagger dependency parsing for external types (#4125) (@rdimitrov)
* 3e0da7a76022570b8310d06f0d7e5f00c4f2de70: Bump toolhive-core to v0.0.12 and fix fragile test assertions (#4166) (@rdimitrov)
* a684b55ecf4cfe50ebea89f8e757ceb99e3c92b6: Consolidate and streamline Claude Code configuration (#4189) (@aponcedeleonch)
* c18d2fd5063bb014e4ab386399d6d4734dd4ecad: Ignore GO-2026-4514 in govulncheck to unblock CI (#4181) (@JAORMX)
* f96a38309df503083e743d470cbc13334637a05b: MCPRemoteProxy: Add remaining configuration validations (#4037) (@ChrisJBurns)
* 7c6f7dec020068cf9567f8039742d3f72539034d: Pin dependencies (#4148) (@renovate[bot])
* a0f250478e92bc88e26c468b87b34d77abff68ce: Preserve query params in remote MCP server URLs (#4154) (@theJC)
* c0a1bc21420275bb4ba6e9f0ce3ef3bde076c1ce: Release v0.12.2 (#4193) (@stacklokbot)
* 0366a24ba5fbba4bd05b328d32f0bdc4217a1700: Remove NewManagerWithRegistry in favor of NewManager (#4132) (@ChrisJBurns)
* e719f4712222656cdf1c434204fa4d42ed88978b: Remove session v1 and SessionManagementV2 feature flag (#4128) (@yrobla)
* a7d1c986e35d74e486cb233583158a1a6fb11d98: Set AuthStyle to InParams for public PKCE OAuth clients (#4150) (@gkatz2)
* 92bb1400f187a2e9b0b93ba2a99f73b11b20fc28: Update actions/setup-go digest to 4b73464 (#4155) (@renovate[bot])
* c7a0e5b12147ea1e06ba670891c4f475ad283b79: Update anchore/sbom-action action to v0.23.1 (#4185) (@renovate[bot])
* f3fa65e4effe187254221906b43abc55013ef3fc: Update anthropics/claude-code-action digest to cd77b50 (#4156) (@renovate[bot])
* b65f94f734bfe016e5f535a91ed9ae91fda75747: Update aws-sdk-go-v2 monorepo (#4178) (@renovate[bot])
* 324878c901be3c348ae9fe5b1c13c543c7ca0512: Update dependency golang to v1.26.1 (#4179) (@renovate[bot])
* 46cd733c845e08565804c616bc57bcd097a72113: Update dependency helm/helm to v3.20.1 (#4180) (@renovate[bot])
* d3c682648cc9e2be111d7799c7889e4b5e50a7dc: Update ghcr.io/modelcontextprotocol/inspector Docker tag to v0.21.1 (#3663) (@renovate[bot])
* 19046e51af44913736b90dcffe0606871839ecd6: Update ghcr.io/stacklok/thv-registry-api Docker tag to v0.6.3 (#3811) (@renovate[bot])
* ba1fc0eca8a4f6cb9ac62bafae209e786ede87c9: Update ghcr.io/stacklok/thv-registry-api Docker tag to v0.6.4 (#4182) (@renovate[bot])
* f4f4e82ce56cec2be0983ae4bac200800bdc697e: Update github/codeql-action digest to b1bff81 (#4177) (@renovate[bot])
* bc31b79b5fc8904b1e60e13ac981a4730f1750dd: Update golang.org/x/exp/jsonrpc2 digest to 7ab1446 (#4158) (@renovate[bot])
* c8289f1abb9a8b3d95276ba2daef55af5415da79: Update module github.com/alicebob/miniredis/v2 to v2.37.0 (#4186) (@renovate[bot])
* 72f014d7015cce9f5098d9e8b1dba47ddc9ac4e3: Update module github.com/go-git/go-git/v5 to v5.17.0 (#4160) (@renovate[bot])
* 10456e3ff44c624a68c32cde123a6dde63eb82eb: Update module github.com/olekukonko/tablewriter to v1.1.4 (#4159) (@renovate[bot])
* c81e994536d6e45fe9e83c56d4e61c1b6c60e4bd: Update module github.com/shirou/gopsutil/v4 to v4.26.2 (#4187) (@renovate[bot])
* b2cbbe1d9e402e4148554cec4574b6e62a66ef23: Update module github.com/stacklok/toolhive-catalog to v0.20260313.0 (#4130) (@renovate[bot])
* 2a638732dc9794ebfd41631bcd13b050dedc1c5c: Update module github.com/stacklok/toolhive-catalog to v0.20260317.0 (#4176) (@renovate[bot])
* c23f26197c60108e7ed4673dc273c28ee48d8797: Update module golang.org/x/crypto to v0.49.0 (#4161) (@renovate[bot])
* 3cb1852b639928412dc3a0a7 |
| 0.12.1 | 13 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 31efa940e7abf768c506f150363012dd9d273175: Inject tool annotations into context during list filtering (#4129) (@JAORMX)
* 263d3791e3f6773590dc0fa2bdefcb6ee65dc65d: Release v0.12.1 (#4131) (@stacklokbot) |
| 0.12.0 | 13 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* c66093f4e807dfdba63da7d654b658cf03729adf: Add TLS support for Redis connections (#4068) (@aron-muon)
* fb49c151bbd08309f3fffaa03e66cc821baaaa67: Enable session management v2 by default (#4091) (@yrobla)
* 5c689111630d1e699dd95069134a7eb066449d8f: Make the token refresh code reusable for vMCP and testable (#4117) (@jhrozek)
* 0657df9f6ead3e4ff727c7679bbca82c378d6e51: Release v0.12.0 (#4127) (@stacklokbot)
* c8a322ec00c502ce2c125fa6259200adc056e072: Remove discovery cache to fix flaky vMCP tests (#4110) (@ChrisJBurns)
* 74fcfe6e035122ab767d5e70c5282b8f4f93c539: Update module github.com/stacklok/toolhive-catalog to v0.20260306.0 (#3943) (@renovate[bot])
* 6578f216fbffe86f3ea584130246dcf3e613b690: fix(vmcp): apply outgoing auth credentials during health checks (#4101) (#4118) (@yrobla) |
| 0.11.3 | 12 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* cf8b6fa8e797bdc7381d64ba925ab1478670bf10: Add ClusterIP service with SessionAffinity for MCP server backend (#3992) (@JAORMX)
* 9254410c331353f04346d1d037e9a7ba4ead28f7: Add OAuth/OIDC authentication for remote MCP server registries (#3908) (@ChrisJBurns)
* 942893e941069a364ade73a2deb55ea85af22a5d: Add annotation cache for tools/list to tools/call flow (#4114) (@JAORMX)
* 8e92eba466bd1b68c46388f052473415f0f3b891: Add distributable skills directory and CI pipeline (#4070) (@JAORMX)
* 37ce6a670d0388e89fe02dcb4c5bc8f5f86daf77: Add gitresolver package for git:// skill references (#4051) (@JAORMX)
* 86fcca23c0837a5f1e8a4314c9eaf420268e74a3: Add multi-backend optimizer acceptance test (#4049) (@aponcedeleonch)
* a2824e0788107ef3c8884a0a273f991d91ef9669: Add optimizer composite tool E2E test with fake embedding server (#4059) (@jerm-dro)
* fcb1241f33e2842027d92425b7cc17c4d0733a7a: Add optimizer+circuit breaker acceptance test for vMCP (#4052) (@aponcedeleonch)
* 406cb8587bb8286797c4910671822e33d0fe5d2c: Add remaining Claude Code subagent definitions (#4060) (@ChrisJBurns)
* 7f1d943338fa218e81a36adb1db5ef37f8e4bd38: Add tool annotation context for Cedar/HTTP authz (#4102) (@JAORMX)
* d91bff2f1bab4bb51f173c53e418a55cbde269b5: Address review feedback for MCP backend session affinity (#4116) (@JAORMX)
* e783bf54f607ae04da2c83391d44838a003cdad6: Automate HMAC secret management (#4008) (@yrobla)
* c80c63d7b8075ceb6d13c9a6f063e02ad78a16f3: Bump Kubernetes e2e test tool versions and add Renovate managers (#4105) (@JAORMX)
* 0afd5557b89e8b67b83864141bbdb7c97638015e: Clean up client filtering after PR #3889 (#4095) (@JAORMX)
* de0eb9ccfeefa3bfaeb9e5ae8c5899355c0a2604: Elevate session management V2 tests to e2e (#4069) (@yrobla)
* f0777f9b9a2a12549fabe51a06e4946df0893661: Fix CI build failures on main (#4071) (@JAORMX)
* 0ad68d6c684a52e5157a1463145839b2e6cd831d: Fix Content-Length mismatch in authz response filter with remote proxies (#4092) (@jhrozek)
* 69cf7fe029f7f3c88d55410166dffc05a3c15083: Fix SSE endpoint rewrite E2E tests using nonexistent flags (#4080) (@ChrisJBurns)
* 4bc341cf93d346c783c945ce0da74d42d75672cd: Fix SSE/JSON race condition in session capability injection (#4075) (@aponcedeleonch)
* 7a30b4b6b854321f8048f260a5315fc4b4ca72e0: Fix Session Leak in Transparent Proxy (#4079) (@ChrisJBurns)
* d7f5dae0e4dad172f333f2aace35bf6a3478417c: Fix deterministic E2E proxy SSE endpoint rewrite tests (#4093) (@JAORMX)
* de6e434b0a3726e8e201ed0f60ff6913a07d14bc: Fix flaky E2E lifecycle tests: tool discovery race (#4107) (@JAORMX)
* c94afc2757bf9872a7a567ad80b3b33f01c4aec7: Fix flaky TestMemoryStorage_CleanupLoop timing test (#4098) (@JAORMX)
* 0b8068656162f47daccd0ed4045cf940d74fb1f1: Fix flaky api-workloads E2E test timeout (#4106) (@JAORMX)
* 0642921f8af45534cd3e7cb794ab682d2edf0e85: Fix validateOCITag to accept full OCI references (#4088) (@JAORMX)
* 1bf2f3ac49561fd0f726fdd518754526d1476df8: Handle mid-session backend crashes gracefully (#4053) (@yrobla)
* 42f13566a1618b49be094590242b5572e61fc93f: Hide already registered clients in `thv client setup` (#3889) (@carlos-gn)
* 5b6d22ce35c46b8ad572e1dc51a46dcf00855ed9: Make proxy response timeout configurable (#4063) (@gkatz2)
* 5b4b72491e667f123719eb91383b1d5d92ce1e86: Preserve tool annotations and output schema through vmcp (#4090) (@JAORMX)
* 7fce517c26ec22a66c1cf2858bced65bab619bfe: Re-panic http.ErrAbortHandler in recovery middleware (#4065) (@gkatz2)
* c598edac87c2e39af50d591ba81cd5d73969c4cc: Rebalance E2E test CI matrix from 4 to 8 buckets (#4074) (@JAORMX)
* e832affec9f679314bcd1677b70abfd8ebfec25b: Release v0.11.3 (#4119) (@stacklokbot)
* fc85ac24439a06dc436f213a6f86e35466b35995: Remove @eleftherias from codeowners (#4089) (@eleftherias)
* c474326ff96f3d04be4cbb21da6fa4c161ebc0dd: Remove unused per-session channels from StreamableSession (#4076) (@ChrisJBurns)
* c25562f750c1480211f75bbdecd29c500a3f44f2: Return RFC 6750 compliant JSON error responses from auth middleware |
| 0.11.2 | 9 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* b33a55c36662acddd72c68e0347e58f26262f078: Auto-chunk TEI embedding requests to respect server batch size limit (#4029) (@aponcedeleonch)
* 0791876179c7fa19a5ceb6a223ec7f67e229abbf: Bump Go to 1.26.0 (#4040) (@rdimitrov)
* e342c64b9dd43bf83a5c72602d883c8b9817ed46: Clean up stale release branch before Create Release PR retry (#4035) (@amirejaz)
* ff81ee4fdfa3ea7719962ec30517e2ca83532bee: Enrich optimizer tool descriptions for better LLM usage (#4031) (@aponcedeleonch)
* 013b54750251cb28a2f5e83521136a4cbe44ae7e: Fix resource leak in session storage cleanup (#4014) (@yrobla)
* c3aeb02080a066c08a98b44df14550497b1faf25: Harden CI workflows against prompt injection and supply chain attacks (#4034) (@JAORMX)
* ace1b2d4eb991f42a0c247999aed4eb9a2e113ca: Move shared git package from operator to pkg/git (#4045) (@JAORMX)
* f7cc7278da150a4898037c82f3aa9b2adb06b12c: Release v0.11.2 (#4058) (@stacklokbot)
* 85c5f3ebdafb894b7efee17ae2220d6c6b37246d: Rename optimizer examples for clarity (#4038) (@aponcedeleonch)
* 3f49c45b6213faeefd03123f7270940f87a66d84: Support proxy_port from registry for remote servers (#4039) (@rdimitrov)
* bc9b53407bc52797af74b9261902d3f676e6f24d: fix: oauth issues and add tokenResponseMapping for non-standard providers (#4009) (@aron-muon) |
| 0.11.1 | 6 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 07bcbcc1d0a86540d99c313de9cd6aee8cd7a941: Add E2E tests for Skills API endpoints (#3997) (@JAORMX)
* 3aefbc8bcb0e65ab0463348cecf954038ac26221: Add PR template and Claude Code rule for PR creation (#4032) (@JAORMX)
* 398eeec9c8fde80d064d51bb3f5cbc86402e6376: Add actionable logging when secrets file decryption fails (#3999) (@ChrisJBurns)
* b8e0ba3f4f4cf6bdcd8f8617a7040a6adb937412: Add atomic writes and file locking for secrets file (#3998) (@aponcedeleonch)
* 874832d047f530f5debbf00f6e815534a87f53ca: Add group support to skills API (#4000) (@reyortiz3)
* 9dd1156c2604d3322cf27b70b6a4f9a82b92848e: Document namespace consistency requirement for CRD chart (#4022) (@ChrisJBurns)
* 442d13c07e68407d3f665c58151ef13e512527d1: Fix MCP server tests and remove macos-latest from unit test matrix (#4002) (@reyortiz3)
* 5e246db081bc9ce3a08f8f031f1e9bbb50f8e5da: Fix ReferencingServers not set on config CR status (#4003) (@ChrisJBurns)
* f0f55c15f44c5c6e5f850ab7927262e533c8c389: Fix infinite reconciliation caused by PodTemplateSpec JSON comparison (#4012) (@aponcedeleonch)
* e42f226bdf8b6c56150f73d448710009edfa30dc: Free port holder before spawning remote workload restart (#4011) (@amirejaz)
* 27e8d57209138486d506a2573e605198393b3d9c: Implement HMAC-SHA256 token binding for session security (#3964) (@yrobla)
* c5fdadcdebb8dd42fb5bdebae4f9fc93ecfc7722: Increase file lock timeout to fix flaky CI test (#4004) (@reyortiz3)
* c90c41c5124561d7e03abc38f74fa1642e4cc638: Initialize controller-runtime logger in operator (#3982) (@jhrozek)
* 3caafa9bd6ee77549342746b8fefe75b5d232949: Integrate skills with groups system (#3980) (@reyortiz3)
* 5bff34d4546c902619ae710f34d2ab4bcb0eac7e: MCPRemoteProxy: Surface validation errors via Events and Status Conditions (#4024) (@ChrisJBurns)
* 00784783f1c991b8492b278a720fe358a110279c: Optimizer nits: reduce event noise, improve docs, add advanced example (#4013) (@aponcedeleonch)
* 9089ac7560d94ab7b4f6ed8a9d3c52d35f9b5d25: Release v0.11.1 (#4033) (@stacklokbot)
* c755713362fba9b49db13b872195ce69d1eb6946: Remove invalid 'apply' RBAC verb from operator roles (#4001) (@ChrisJBurns)
* edafa620154d840b5e9c3d4c577897710087155b: Replace ToolMatch with mcp.Tool in optimizer pipeline (#4016) (@aponcedeleonch)
* e7580737c1f0eb642bd7d9f4de16031b463aa9ff: Replace external mcp-spec dependency in remote e2e tests with local mock (#4027) (@JAORMX)
* 7471a8428abb2791348fca834128e6b43c0f754a: Resolve locally-built artifacts during skill install (#4018) (@JAORMX)
* affba9110c4ccb200cebb0b77c1e34bfed43b64f: Use slog instead of zap in operator (#4007) (@aponcedeleonch)
* e469d4818c264020f6d0fc3a0c476dca0bbe338a: fix(deps): bump toolhive-core to v0.0.10 (#4025) (@JAORMX)
* e2a1d9eceb0e725f55770210445d4b335148fcb2: pin Trivy version to avoid broken v0.69.1 install in CI (#4020) (@amirejaz) |
| 0.11.0 | 4 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* d57b70bb6b27f91815da87c1b20b6e5078e99f1f: Add Redis Sentinel storage documentation for auth server (#3824) (@tgrunnagle)
* a6ccdf1d1f942f6472dbc1959d0f98f1220590a3: Add SessionManager behind sessionManagementV2 flag (Phase 2) (#3906) (@yrobla)
* c46ae47785062ef87e8a3f592352e4c020623ce1: Add Skills HTTP client implementing SkillService interface (#3977) (@JAORMX)
* d0102a256c924f79a5eceb02988cbb8fd8df28fe: Add debug logging to optimizer (#3976) (@aponcedeleonch)
* b3f98b54738daeaff5ab90ff76604462f65d64b9: Add telemetry instrumentation for optimizer (#3978) (@aponcedeleonch)
* 7d89e07fb9c79d320879159219b82e45dbae1731: Add unit tests for MCPRegistryReconciler (#3968) (@reyortiz3)
* b7cf0f787932ddfaac70cf9123994673c9db10dd: Enable sticky sessions on operator-created Services (#3986) (@JAORMX)
* 7ce49e8f691e082d1655c49a53c12f9120a550a1: Fix flaky MCPRemoteProxy integration test (#3993) (@JAORMX)
* ce6d9234cbf8e643a61b0bd70c803fb106e8eb77: Fix flaky TestRunConfigBuilder_WithRegistryProxyPort in CI (#3973) (@JAORMX)
* a38033f8aee5cf0f5d1eceb7efaa05c8cf066be1: Fix flaky TestServer_HealthMonitoring_Enabled and related tests (#3990) (@JAORMX)
* d527eb268460da9348b3b2570682f8839f0d5e22: Fix nil pointer panic in resolveTransportType for protocol scheme images (#3944) (@JAORMX)
* f43e80fdb5b35470797914275bb52c637f42a94a: Fix proxy shutdown follow-ups from #3970 (#3972) (@JAORMX)
* 4f6066d35c8314849c36af0663f0018cd661ab98: Fix remote workload restart port bind error when unauthenticated (#3975) (@amirejaz)
* 06663f04c1137243f7d2c7674bdf3e26783b69de: Handle embedded ResourceContents in vmcp bridge (#3953) (@JAORMX)
* f93bad746c3a5b4adfed812f31160dce63e0324a: Implement skill install and uninstall CLI commands (#3988) (@JAORMX)
* 8203caac3d5662537fcfe8bb99adf147bddc7e29: Implement skill list and info CLI commands with shared helpers (#3987) (@JAORMX)
* b17aa3108de24ba26251063eff4e09b5df189ada: Implement skills REST handlers with `project_root` (#3911) (@JAORMX)
* a447aea44a39ffeaef5110006dd77aa0efe23933: Make SessionAffinity configurable via CRD field (#3994) (@JAORMX)
* b57eb12019d92f68f6693680c6569b73b69d0a70: Prepare optimizer for production by refactoring and renaming (#3909) (@aponcedeleonch)
* 642555463d83263f035c5f87b5f8ce37746cc812: Refactor session timeouts and add V2 feature warnings (#3974) (@yrobla)
* 9240b9d35c09dc86a3c4a2c948537ff8a71b77f9: Release proxy mutex before draining connections in Stop() (#3970) (@gkatz2)
* 0b436e6c1efc90822c21de6c0e3c9e8509b0a80e: Release v0.11.0 (#3996) (@stacklokbot)
* 06ef2d8a4031e3f0b71c5af85de65811304178dc: Remove Score field from optimizer tool responses (#3971) (@aponcedeleonch)
* 23acf3ba3bde20ccaac7603c689870182e3b8956: Respect INSECURE_DISABLE_URL_VALIDATION in upstream auth HTTP client (#3981) (@jhrozek)
* b6906453193bd22c8e2ff84f070f9a80e618011d: Return 401 with WWW-Authenticate for expired upstream tokens (#3984) (@jhrozek)
* 5836071b17ec9ff59371e017d3eafcd3f1a8d99d: Suppress update message if is trigger by desktop (#3885) (@samuv)
* 483eecd9d04c708a3fc893f8e7479e0fe3c15396: Surface reconciliation errors in MCPServer status (#3983) (@jhrozek)
* 7acf39c826553607e009615fd4628630f2c46b60: Update golang.org/x/exp/jsonrpc2 digest to 3dfff04 (#3890) (@renovate[bot]) |
| 0.10.2 | 2 de març del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* aa00f103e7512a80d15b9083094518acc276f20a: Fix GoReleaser CLI docs tarball upload path (#3966) (@ChrisJBurns)
* 1f31de66b0c61babc0171c608afa66e7cfded53d: Release v0.10.2 (#3967) (@stacklokbot) |
| 0.9.4 | 16 de febrer del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* f1772c6ebbf6b162681fbaa64a74bda9955532e7: Add AWS STS auth type to MCPExternalAuthConfig CRD (#3816) (@jhrozek)
* 2f5d58a7ef5afc4ea5e18c7684eeae334134cc44: Add AWS STS token exchange for OIDC-to-AWS credential conversion (#3659) (@jhrozek)
* 4556e303572cdddb918d1a5735d41af18b1bbace: Add OTEL telemetry documentation and migration guide (#3784) (@ChrisJBurns)
* 9305d9e18dc3566a9ff52b5dadd8aeb7a228ad7b: Add Operator CRD Types for Auth Server Redis Storage (#3793) (@tgrunnagle)
* c8f2254630425ecc2645c91282f2d8efd14fe6df: Add Redis Storage Backend for Auth Server (#3639) (@tgrunnagle)
* 0273b4ffacd82a16a373b4ce62ea19456c78ac37: Add Redis Storage Integration Tests with Testcontainers (#3785) (@tgrunnagle)
* 02496a204589e75e59e7f50f40c16abef89830cc: Add SQLite FTS5-backed ToolStore for optimizer search (#3786) (@aponcedeleonch)
* f77d75f397f88f54baff87a889551310ccc194b4: Add SQLite SkillStore implementation and factory wiring (#3801) (@JAORMX)
* 3ec4fcb5e4bbf084a76d62b3a695f1c6916ea973: Add SQLite foundation with connection, PRAGMAs, and goose migrations (#3771) (@JAORMX)
* 319666906739339185d19d4592ba3ffae906a2ca: Add SigV4 signing middleware for AWS STS token exchange (#3730) (@jhrozek)
* 3420ec511ac7383e227843db7d0789902e3d30aa: Add String() method to telemetry Config to redact OTLP credentials (#3782) (@ChrisJBurns)
* d07ac209987db1f3c01be09422b3053a5394a46e: Add ToolStore interface and refactor DummyOptimizer to use it (#3749) (@aponcedeleonch)
* cf2c338d6eeab0f92a8d130614dd60e0586e04fc: Add UseLegacyAttributes flag to telemetry config (#3729) (@ChrisJBurns)
* 076127745e05a5cae34bedb07eb6a9dbeba528f7: Add W3C Trace Context propagation via MCP _meta (#3682) (@ChrisJBurns)
* 5e2fa08fa6ea2fd73b2d4a1a7571d7211c17fe5e: Add `mcp.protocol.version`, client operation duration, span target naming, and client span kind (#3757) (@ChrisJBurns)
* 9f2849973bf60d6169e3658a1ffe48aabc36e5fd: Add `mcp.server.operation.duration` metric per OTEL MCP semantic conventions (#3752) (@ChrisJBurns)
* 6f75e1a316715470ce5ea184c72f15740207d185: Add basic SkillService implementation and API handlers (#3804) (@JAORMX)
* 2454caba932bc6a03c666fa6dfdaf344e3e2a305: Add client skill metadata for skill path resolution (#3712) (@JAORMX)
* 9206aa486240250a0b468a5410b107972a8c3383: Add default resource limits to VirtualMCPServer vmcp container (#3689) (@jerm-dro)
* c9ed08eee493003bbe756164f9240948969b23ac: Add explicit histogram bucket boundaries to duration metrics (#3787) (@ChrisJBurns)
* 493e16bdbb406724563661535428124e4e56cd38: Add external resource integration tests for MCPRemoteProxy (#3685) (@ChrisJBurns)
* 9405bac41096c7206818a9112f10c2a3e8529304: Add network/client span attributes and fix span status per OTEL semconv (#3750) (@ChrisJBurns)
* d06891df647ddbcb7623c57ccd8fb1e56738d15d: Add offline_access to default scopes and fix PRM scope discovery (#3794) (@jhrozek)
* 053650af0939436b323c07d20b1c461a1dc5d269: Add rfc8707 resource parameter refresh token (#3713) (@rodrigo1208)
* a6ffa1a96c1adef63712ed85a53d2ae39709f53b: Add scope parameter to WWW-Authenticate header per RFC 6750 (#3795) (@jhrozek)
* d380531238ea08a71cc0d463fc18c8fda635eb7b: Add shared skill types (#3833) (@blkt)
* f3c7ec2d9a0ae967609cbce15ad97461a55696b0: Add storage interfaces, errors, noop store, and factory (#3768) (@JAORMX)
* 090696484f78fb345b394fee47160999a652c042: Add test quality guidelines to CLAUDE.md (#3807) (@aponcedeleonch)
* 4a19119dbde90cc4916836e74217eecd434fdbe8: Add token metrics to DummyOptimizer find_tool responses (#3821) (@aponcedeleonch)
* 7c695644f40a847702554a57d8c0cc2c51522962: Address miscellanious post-merge review feedback for AWS STS role mapper (#3708) (@jhrozek)
* e5cf4f63c58254a900644b83875d2bcd08947730: Align skills REST API contract with RESTful conventions (#3818) (@JAORMX)
* 15eaa3c92a1031c50ec24dedfdc572caec44a23e: Align vMCP client telemetry with OTEL MCP semantic conventions (#3775) (@ChrisJBurns)
* a2eb40e95c7f65c88c32c8e208aac35df8508775: |
| 0.9.3 | 9 de febrer del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* ad851387e32df1d6aa06dcceedc1976eadaa3b60: Accept ECDSA signing keys in JWKS token validation (#3674) (@tgrunnagle)
* bc5082f175a972b16f6dacb21fa8e64d640959ff: Add HTTP-based PDP authorizer (#3315) (@ghaskins)
* cc306eaa4ffa7a19af5c73a12e275a6df8fab7f3: Add SKILL.md parser and skill directory validator (#3702) (@JAORMX)
* 65c7aaa2d24d47ec4852ccb30df60ed210b2516e: Add SigV4 request signing for AWS API authentication (#3658) (@jhrozek)
* 865272ea445a9d3620887245570bd2f282c9b20d: Add structured status conditions for ToolConfigRef and ExternalAuthConfigRef validation (#3634) (@ChrisJBurns)
* d0bed0acdf56dbaa4424a0683118c370e650b84a: Bump e2e test lifecycle timeout as a stopgap (#3675) (@jhrozek)
* c815f8e45496aafab7f8a424971c58bf98811031: Enable parallel runners for golangci-lint (#3701) (@JAORMX)
* 4683b298068e30837edf17eadb797053511de680: Exclude unhealthy backends from vMCP capability aggregation (#3642) (@yrobla)
* aa930b8b67ad9102684d2e51810bf3e7fbfb9d4e: Fix Helm chart OCI publish path to match original registry location (#3635) (@ChrisJBurns)
* cb013211e23d6abf40e5f7b371192b1fa1ba3d35: Fix ServiceAccount secret accumulation on OpenShift (#3627) (@ChrisJBurns)
* 4fe5eaedda09226a5e13f7e0ac41364d8b3c44d6: Fix data race in TokenValidator.ensureOIDCDiscovered (#3693) (@rdimitrov)
* 7166e418200b7fd9dba71d63fe3c884e379354e1: Fix imagePullSecrets propagation to ProxyRunner (#3557) (@Sanskarzz)
* 6b861c268c90f252abec3f14f9ef89541fec218c: Make base images for protocol builds configurable. (#3662) (@dmjb)
* 1fa1933d69dc189175f444527e25cab225bd5ea0: Refactor MCPRemoteProxy integration tests with shared helpers (#3679) (@ChrisJBurns)
* 3074fba189cafa48666f455f70700123d18500c4: Release v0.9.3 (#3711) (@stacklokbot)
* e79c4286687eafb926fa9db22cdb33db5d2d8e61: Remove redundant expectedCount field from discovery tests (#3705) (@yrobla)
* 1e626bbbc0d0fa838ba7a94037526cc3945a2b13: Remove unused MCPServerConfig struct (#3704) (@JAORMX)
* 8c08e272e84311d7ccbd2cdb683fc994846c57f5: Rename MCPClient type to ClientApp (#3700) (@JAORMX)
* 1ce065598db805fb05928f2d7b5314de183c6fa7: Rename mcpClientConfig to clientAppConfig (#3707) (@JAORMX)
* 3f8bbc248b4867b9fb5c8e83e22826daa10a6677: Simplify authserver's upstream provider interface (#3638) (@jhrozek)
* 602c2a638913e008761e7f6282975ee1b7838aa6: Update anthropics/claude-code-action digest to 6c61301 (#3696) (@renovate[bot])
* 7f0d7202f24567dac6d03911b665437feaeb90db: Update module github.com/go-git/go-git/v5 to v5.16.5 (#3710) (@renovate[bot])
* 4314d49439d9d580d0ad7849d8c5ce8c0c1c6383: Update module github.com/lestrrat-go/httprc/v3 to v3.0.4 (#3694) (@renovate[bot])
* c459a928b92c27d0962a83b4f6ab492cbbe96329: Update module github.com/stacklok/toolhive-core to v0.0.3 (#3703) (@renovate[bot])
* db08b518492ef4f2d89c7d824b1845b96563774f: Update module golang.org/x/oauth2 to v0.35.0 (#3697) (@renovate[bot])
* 0abffbd4ed4297ced15f48a2c2183f739c19883c: Update module golang.org/x/sys to v0.41.0 (#3698) (@renovate[bot])
* 44c8aca3942366da07562851cbab6b56e8bf8924: Update registry from toolhive-registry release v2026.02.08 (#3695) (@github-actions[bot])
* d0e9a6b67fe416e935acbb00d3ca2d0c15731626: Update registry from toolhive-registry release v2026.02.09 (#3699) (@github-actions[bot])
* 89a189de34c1ed28125c2c47c636813ca5d52b32: Use ServerExtensions type in registry format converters (#3673) (@rdimitrov)
* ee0a4eb8c609b129330f03ecb14baac86fcdf562: fix(proxy): Rewrite Host header for backends with strict host validation (#3688) (@jerm-dro) |
| 0.9.2 | 6 de febrer del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* f6ac332f9a2bd612b77b6a3fad7bc7dab8974581: Add CEL-based AWS STS role mapper for claim-based IAM role selection (#3609) (@jhrozek)
* 2c8d21e52ecd64f3787a8f9fd7a7eb97f3a74c46: Add Clients field to InstalledSkill (#3667) (@JAORMX)
* 32a0040b9cd8926cdf6e6d1462c399331ea343ec: Add MistralVibe and Codex client configurations (#3594) (@aponcedeleonch)
* 788057bd7b4b043cc065e5bb9e35b9b574bc41ae: Add OIDC provider methods and ID token validation (#3580) (@jhrozek)
* 42794e07b1360de0a8eef025de31a109a4bffec8: Add TOML config file support with array-of-tables format (#3596) (@aponcedeleonch)
* 726ad4999794afc05bf0b068615b6e9a06a8a411: Add TOML nested tables format support (#3597) (@aponcedeleonch)
* fbde527b4dc07a9f31694e5a2455f6e78adf1e42: Add VS Code Server as a supported client (#3618) (@dmjb)
* 4c7cfc07d540df54e885e7ccc68a38031d0aa19f: Add bearer token support for remote auth proxy (#3386) (@jhrozek)
* 8e25a445fcc38fb326ea649a9807c975660dada5: Add circuit breaker pattern to vMCP health monitoring (#3528) (@yrobla)
* 5af3ef1da1f29913287416143e10d9842a595c25: Add hidden skill CLI command stubs (#3668) (@JAORMX)
* 5fd6adb06621a711acad610342f3e20986620505: Add lazy OIDC discovery with retry (#3579) (@jhrozek)
* ff835f9ebb7f7e97e694389f49c1075de1401f98: Add missing mocks for skills service (#3670) (@dmjb)
* fc5d3b02fcc1a571f700333b1d464fe62525876c: Add omitempty to UserinfoEndpoint JSON tag (#3601) (@jhrozek)
* 3ec934c67af9b08c48040203e706eb63c3ce1614: Add publisher-provided extensions types and nested Kubernetes metadata (#3671) (@rdimitrov)
* 4f6a0e05b9250cb26cee09f651db673b4cf1e510: Add shortNames to MCPServer CRD for consistency (#3605) (@Nashon-Steffen)
* b44cc29aec1266826c8d655a387d9f32b19437b9: Add skill REST API route stubs and ServerBuilder wiring (#3666) (@JAORMX)
* 32a563b30b939d63b54f67a8708ccf657d15151c: Add skill domain types, service interface, and HTTP client stub (#3660) (@JAORMX)
* 0424a1ef2e8ab151ef16999411edc7222eecf95f: Add token endpoint error handling integration tests (#3611) (@jhrozek)
* f16d0cc2850cbc6ede0c74d2dce12af1d278dcf7: Adopt env package from toolhive-core (#3572) (@JAORMX)
* a55b068e4d95df0f6db1cc0295fabd6164e7baec: Align authserver DCR client scopes with discovery scopes_supported (#3610) (@jhrozek)
* db9e72a0fb766391938278a5ccf1501dabff0a74: Bump Alpine base image in Go template to latest, pin (#3657) (@dmjb)
* 533821b71044feb5e496fcbd0d18ef1b36609227: Bump Go to 1.25.7 to fix crypto/tls vulnerability (GO-2026-4337) (#3632) (@ChrisJBurns)
* a360fa4b67696391dbc610d4c2cc57681c4bc427: Change workload manager to follow logging best practices (#3621) (@dmjb)
* aeb0771600c5b173c6bdaeb9c3a21793d7d5211a: Complete vMCP circuit breaker configuration and testing (#3615) (@yrobla)
* dec218cd1f482a820b65bf3910827d7ec270b5b7: Consolidate file locking and fix error handling in config_editor.go (#3617) (@aponcedeleonch)
* cd076fdd8953719b20a49537922180960b534c7a: Consolidate list of supported clients in one place (#3644) (@dmjb)
* c3549f6d196d3c898489d88db4c41dd26837fb84: Consolidate path traversal protection in one place (#3620) (@dmjb)
* 01e5319c1a2fedabd156b5472d7feb4c24e0f102: Ensure API E2E tests clean up after themselves (#3588) (@dmjb)
* 36f3ea8544911df12cdd5bfb8ccc45c344ccd32c: Extract atomic file write utility to shared fileutils package (#3613) (@aponcedeleonch)
* 9c87519aebc57826345d56951a67dd670ef9ee22: Fix audit middleware file handle leak on shutdown (#3074) (@jhrozek)
* 1b778f1d33a1520b8269ad947e340c50a595c18a: Fix flakey unit tests (#3665) (@dmjb)
* af0b07978d4872de75050c0ade6c6c6f68d33666: Fix proxy hang on kubectl attach EOF (#3584) (@rcdailey)
* 0e5603572392ca143f022612a293c4d72d6286a7: Implement bearer token controller logic and environment variable management (#3487) (@amirejaz)
* f41772bd34a0a52e163117933d23a701a14d9bcc: Integration Tests for Embedded Auth Server (#3556) (@tgrunnagle)
* d6c6d1e2c2b9561da6137860ad2153c9c4e8adca: Release v0.9.2 (#3672) (@stacklokbot)
* f5fd9b3f0c406d3d |
| 0.9.1 | 4 de febrer del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 60ecf3f2864a442744929174aa2bc6781ec795e1: Add CLI validation for Desktop app alignment (#3535) (@samuv)
* 964aabaa7e1c1f06b623d66b5a50e7f4a976285e: Add Google Gemini CLI client support with dynamic URL field mapping (#3552) (@aponcedeleonch)
* a73bf3d499b0223974bd670ecba73b9a0977b26b: Add OIDC provider upstream support to authserver (#3562) (@jhrozek)
* cb5d2b17239475eb8c3f65029a15b7ed435c4e6d: Add inspector auto-cleanup on interrupt (#3573) (@carlos-gn)
* 2118268237ae11c06f881dbe6440883dd3f32630: Add schema for the publisher provided toolhive extensions (#3581) (@rdimitrov)
* d45e969f759aa4eb064d45992a1abc3d22841844: Add toolhive-release skill for automated release workflow (#3549) (@JAORMX)
* 2e5ac005c954f2ccf035e557c0436c5b5ca22434: Adopt httperr from toolhive-core for HTTP error handling (#3551) (@JAORMX)
* f40c900bcb0eda84d9925bcb7431502e77c9b4df: Adopt validation package from toolhive-core (#3564) (@JAORMX)
* b3e850ac5cca365763612a79366a3d697dec603c: Bump releaseo to v0.0.3 and preserve original release actor through workflow chain (#3560) (@danbarr)
* a82c591b8a825906dc2e35dfdac3b43a9e57b395: Embedded Auth Server Runner Integration (#3540) (@tgrunnagle)
* 636d830ba4caa619500a3cb8ff4fd22e9006ed96: Fix CRD Docs (#3555) (@aponcedeleonch)
* e9417b69bc355f82d6caa7340bc5191599827aca: Fix status file corruption issues (#3590) (@dmjb)
* 2f7bffc2b320321df35f7b2f1024743b808557c8: Fix the releaseo binary release version (#3575) (@danbarr)
* 8b04e48c77eb677c86a86e1bb97ce537cd9004b7: Fix version discrepency (#3600) (@dmjb)
* f33de134a7b49887b52c2263443b3a98e9e13265: Fix zombie process when proxy stops due to health check failure (#3543) (@gkatz2)
* 16ecb82ee3ef5bd27ea32721f8a02917fe66289d: Integrate Embedded Auth Server with Runner (#3541) (@tgrunnagle)
* ac829796c6c63de842f6ffd6c90b38eff4a5f51f: Isolate PID file logic into statuses package (#3589) (@dmjb)
* 48d9ea05c308408bd97db740fea40c5b6790cf16: Release v0.9.1 (#3604) (@stacklokbot)
* f82e101df3490860b6311b09736eadc0cec92103: Remove the helm chart bump skill (#3602) (@dmjb)
* 9c75769eb215ec36da01d1baf24737717b381bbb: Update actions/checkout digest to de0fac2 (#3576) (@renovate[bot])
* 91ebc80866438a40449342871ad18f81525e42c4: Update anchore/sbom-action action to v0.22.2 (#3598) (@renovate[bot])
* fa56a01904415d63824180242ff6c6976c6e1013: Update anthropics/claude-code-action digest to 6867bb3 (#3578) (@renovate[bot])
* 32da9b7b7b6d32924be2c57026bd049c1fdb5af3: Update code reviewer agent (#3585) (@eleftherias)
* dde2585d5e56bc32f2b8580e417b54e96fecb896: Update logging for transport, telemetry and auth (#3565) (@eleftherias)
* f0ee9a7baa2f018f7432d977924ffb43d682ca7e: Update middleware documentation for completeness and accuracy (#3554) (@JAORMX)
* 695cb84ac2b4c05e6862a5adde214c41babf598f: Update module github.com/stacklok/toolhive-core to v0.0.2 (#3595) (@renovate[bot])
* 364e7595a9e55e89d84db57450b04f860326ba6c: Update proxy logging (#3561) (@eleftherias)
* 46759b56ecbb0bcac111d4015329f7797faf5826: Update the arch docs for the registry (#3550) (@rdimitrov)
* ee26abbb982d8c8d40525477e3655bab2d96184e: chore: fix SECURITY.md file extension casing (#3587) (@JAORMX)
* 91702a75c78ad6898b6a7b9cfa3501bcbb3650d5: uses prefix for app version (#3603) (@ChrisJBurns) |
| 0.9.0 | 2 de febrer del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* d3c579dbcd4e434a0b11533c30c998d44222468d: Add E2E tests for secrets management (#3485) (@dmjb)
* f9bcd741875ccc4101cd66648d4c9851ef577f29: Add Embedded Auth Server Configuration Support to Operator (#3520) (@tgrunnagle)
* a96e9ef911f7042fad8ed777abaebc66b71da90f: Add OAuth authorization server integration tests (#3531) (@jhrozek)
* d7ee45524785ada1fa9f19522c9b96e98fb17637: Add bulk group operations to workloads api tests (#3514) (@dmjb)
* e0ee33ea43680078f6d5e89c2293548481a43949: Add core OAuth authorization server interface and implementation (#3513) (@jhrozek)
* f9ecdf7ebedfc7b8f04ef0b1179f068cff6d7adf: Add embeddedAuthServer type to MCPExternalAuthConfig CRD (#3488) (@tgrunnagle)
* 0192c35012913b43052ddbc495711c19fe654c9c: Add generic PrefixHandlers to transport config (#3524) (@tgrunnagle)
* 07b37b7cec1051c5a2f411aaf636e25eb30e445f: Drop unused env file field in runconfig (#2215) (@dmjb)
* 5e5a25c4f7000bfa84f9bba1116e38eb9ac9d6ba: Fix OAuth token refresh context cancellation (#3539) (@gkatz2)
* 78b00b567b2885a9f7bea902f58b541ec269a1ff: Fix flakey unit tests (#3512) (@dmjb)
* 296e9ff510bcded23aa74fef20277f6ed784fb32: Fix proxyMode for direct transports to match transportType (#3532) (@amirejaz)
* a0ef1e9bcbc88a2ff1820c4b520d5c77946ff370: Implement ExcludeAll feature for VirtualMCPServer tool filtering (#3499) (@JAORMX)
* e0fbffa06e9962941a01f8641ce18f4556927471: Limit RBAC permissions for inline mode VirtualMCPServers (#3504) (@yrobla)
* 7d02b345d7a2a3f04cceaae7f02e5a2b157c191a: Persist DCR client credentials for OAuth session restoration (#3418) (@flfeurmou-indeed)
* fda49f5bf23ab1160e1e61841de04917a46de120: Release v0.9.0 (#3548) (@stacklokbot)
* a993202d66d15eed9ac912c733ea8d1ba20dade4: Update API logging (#3547) (@eleftherias)
* 6360b523bde5abbfc9ca184f0a27cd0768455f3d: Update anthropics/claude-code-action digest to 01e756b (#3525) (@renovate[bot])
* 93e6a5ac05822efaf38364dd8856031c604ab2b3: Update anthropics/claude-code-action digest to 70e16de (#3537) (@renovate[bot])
* 99c716c6455cc13f42dfb8406ad40fbd3d0c389b: Update logs and proxy CLI logging (#3546) (@eleftherias)
* a42ee30eb58d1eb4274455c62b80051c006b842b: Update module github.com/cedar-policy/cedar-go to v1.4.1 (#3536) (@renovate[bot])
* 1886e2b9f5718021af06bd695cbd32663507a13b: Update module github.com/onsi/ginkgo/v2 to v2.28.1 (#3527) (@renovate[bot])
* 114d9667ba1febce6ef9945ab1d2c57d8a5c8968: Update module github.com/onsi/gomega to v1.39.1 (#3526) (@renovate[bot])
* 9edcfbb812abf2e270f9c5c9435adfb4fca0681b: Update stacklok/releaseo action to v0.0.2 (#3521) (@renovate[bot])
* 30e049627ceb5f3be2aebcc9f1d293aa115fb779: fix: add custom YAML unmarshalers for registry metadata types (#3545) (@JAORMX)
* 8d30e0a0585c730ef799dae9758e8fc4f42cade6: triggers docs at the end of the release workflow (#3523) (@ChrisJBurns) |
| 0.8.3 | 29 de gener del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 72d205c3bba6607ebf5739041506729adbb5586d: Add unified Helm chart publishing to release workflow (#3511) (@ChrisJBurns)
* 02de90867e95b24205f7c4c5e933d387896620a0: Improves Helm Chart workflows on PR / main runs (#3508) (@ChrisJBurns)
* a95c82a8a86d2ac6f56d874bb0210f8aad7c3251: Release v0.8.3 (#3522) (@stacklokbot)
* 7481d81d90f9632dcf30027b7963b2d6f6e58070: Remove RedHat images (#3502) (@dmjb)
* 241e9bb5da33298b351c2b2d5619a9284fd7b898: Remove remaining references to UBI builds (#3510) (@dmjb)
* 6b333d468372ac5b92d6b45ecba42aab0a3795e9: Remove unused message field from registry api (#3507) (@eleftherias)
* a1e6905bc2dfd06e26bb079daf935aee514acf63: Replace string matching with JSON parsing in isRemoteWorkload - issue - 2941 (#2968) (@deepika1214)
* baad1d78144fcd4cdf98dec91c682729d26f9aa6: Update config and secrets CLI logging (#3509) (@eleftherias)
* 135fb84511327382dba9ab6f4f5ded4d2130c4c7: Update swagger docs for registry API (#3503) (@dmjb)
* e166fbe5f00a3ac5b0031a79f52358b372f86456: adds action that creates a release tag when release pr merged (#3506) (@ChrisJBurns)
* eaf53aff9ec109667c0a52c51ee3114a2b54cce8: adds release action for creating release prs (#3505) (@ChrisJBurns)
* 607bd9145297b4bb3a2c3be018563b0a888453e4: aligns versions of images to latest toolhive release (#3519) (@ChrisJBurns)
* 3daefd3dc0d0c69a6e7c7b7fd37e4273529dcb13: fix(vmcp) - template validation with functions (#3492) (@jerm-dro) |
| 0.8.2 | 27 de gener del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 2acfcfce093daeeeed66701d1d9372b23de4094f: Bump Helm chart to 0.5.28 for ToolHive v0.8.1 release (#3467) (@jerm-dro)
* b3e0ef8eacb813fe64c2e4729b976c236afa2ec5: Make healthchecks for remote workloads optional (#3462) (@dmjb) |
| 0.8.1 | 27 de gener del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* e6d3bdedcf960383b073921a29a68733417db4c9: Add CLI flags for header forward configuration (#3452) (@jhrozek)
* aa9df8c167a220310bd5bcf35a17c215c68aaf2f: Add POST /oauth/register handler for dynamic client registration (#3428) (@jhrozek)
* 6b77a81ef39ee100185d3cbdff2ab3ae3bebfd41: Dedupe redirect URL validation for authserver + allow app-specific redirect URLs (#3451) (@jhrozek)
* dd51402dce76810a72fe91f32f1a76e1e684777b: fix: improve stability of remote MCP server connections (#3417) (@flfeurmou-indeed) |
| 0.8.0 | 22 de gener del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 8571282796203b86db8438e98edf214136247380: Add MCPRemoteProxy controller integration tests (#3376) (@ChrisJBurns)
* 268a0436d433ffec6204bed73a848d6b7f9cf7b3: Add SPDX license headers to all Go files (#3366) (@JAORMX)
* bbaee66bf8453c19236560760cb0b4a54b26d7ae: Add UserStorage interface to authserver for multi-IDP support (#3358) (@jhrozek)
* 4110032e25cb0db5949a6e266712f06102466e03: Add logging guidelines (#3338) (@eleftherias)
* deb7fadadea767a05bca388fa1bfb51239eb1055: Add validation in create workloads endpoint (#3367) (@dmjb)
* c32e65dce1b256747849527485dec4a7b2a84791: Bump MCP Inspector source image and add to Renovate (#3364) (@danbarr)
* 3be5fb6330b93e4b2dcc1ca419e71de9914ba435: Document SPDX license header requirements (#3371) (@JAORMX)
* e0cdb919a50bad0d1157a55b0c06c2ca86dae16d: First phase of API e2e tests (#3348) (@dmjb)
* 546f5cb823dace1429333bd3b3a19f1a0bf19258: Fix SSE response processor rewrite logic (#3381) (@blkt)
* 7d2950218642b7cf902b190604ba47423ed728c4: Handle context cancellation in proxy logs (#3378) (@eleftherias)
* 666a90cf8668dfed269328a6ec47cb4c1bae79b0: Migrate proposals to toolhive-rfcs repository (#3395) (@JAORMX)
* 94059951f282b88255dd786eb6b2202ac2fbdaf3: Remove none secrets provider (#3369) (@JAORMX)
* b28fea625b609dcf9d324b560ec76969266cd5d7: Update actions/setup-python digest to a309ff8 (#3394) (@renovate[bot])
* 160dee7f8af229feb4bb093f901c22c17a2483d9: Update alpine Docker tag to v3.23.2 (#2895) (@renovate[bot])
* 878406e56d80dec9abe2426f1e8b0de9ccf64976: Update anchore/sbom-action action to v0.22.0 (#3387) (@renovate[bot])
* a9daf5f4acb7a13696b0a1e7e83c0dd4b217adb6: Update anthropics/claude-code-action digest to 2316a9a (#3390) (@renovate[bot])
* 09089fee2908923f021f4c72a744b9605a651523: Update peter-evans/create-pull-request digest to c0f553f (#3374) (@renovate[bot])
* 4b3989e7f8bff1e8ae5b4ad49985bcec8aba54b2: Update registry from toolhive-registry release v2026.01.21 (#3365) (@github-actions[bot])
* 9bd398514d996668897c14e8713c87b65c483009: Update registry from toolhive-registry release v2026.01.22 (#3392) (@github-actions[bot])
* 6a18d9d7d4bb31ba7e026788e8d373c2e67f8e26: fix(config): migrate another telemetry config (#3328) (@jerm-dro)
* 0e4480b194cce1c8a626b18b8728905fa321ff3f: fix: correct transport type reporting in workload list endpoint (#3313) (@Sanskarzz) |
| 0.7.2 | 19 de gener del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 8cd04cbf2de829a08f538d659df746d9b56937fa: Add OAuth2 authorization server configuration and JWKS utilities (#3306) (@jhrozek)
* 8c57ee506bd0d0947a84321a3874008bef1297e5: Add base OAuth 2.0 provider implementation for authserver (#3297) (@jhrozek)
* 224acb07ff9e979d46758b3e106259d371d54bf3: Add in-memory authserver storage implementation (#3298) (@jhrozek)
* aa45a29d3b8760e24cc72bdf1b059013393dc82b: Describe default flag values in CLI docs (#3320) (@eleftherias)
* bc23d68db240e4132ccf9c14820469059a42fbaf: Fix Goose client support (#3325) (@danbarr)
* 1f6ecc0bf645d55f9f32bf5f0341ce17b58fb6bc: Fix swagger generation for ImageMetadata embedded fields (#3311) (@lujunsan)
* e7731602d76b79b5c10ed2b0d7a21f929cc10d30: Modify API endpoints to only return last 1,000 lines of logs (#3319) (@dmjb)
* eb4ee69e8793a083c9601639e989e53145ff1328: Update MCP protocol expert agent with 2025-11-25 spec (#3308) (@JAORMX)
* 00fd9d7b966fb7bffb6c6a853641ae53bf7eea20: Update registry from toolhive-registry release v2026.01.16 (#3317) (@github-actions[bot])
* a5f957f93f3b949c6e078a72ff7acb88ef51b6d3: Update registry from toolhive-registry release v2026.01.17 (#3327) (@github-actions[bot])
* 0be040f98a898112723a0490fe448a69bf753b21: Update registry from toolhive-registry release v2026.01.18 (#3330) (@github-actions[bot]) |
| 0.7.1 | 15 de gener del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 73d4f262da88e290b9ce82683996cfdf838db432: Fix skill names to comply with Agent Skills specification (#3304) (@JAORMX) |
| 0.7.0 | 15 de gener del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 03fce2182ac0fc02a97d815ae2f6163b26d00bd0: Fix broken anchor links in CRD reference documentation (#3295) (@danbarr)
* 9e97cf5000dda46b5ef3c2d47775850a0f9948b7: Update module github.com/go-chi/chi/v5 to v5.2.4 (#3291) (@renovate[bot])
* 8267c81aeda44c1e0f4f3bf4f41833b95ebb6a04: Update registry from toolhive-registry release v2026.01.15 (#3299) (@github-actions[bot]) |
| 0.6.17 | 8 de gener del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 8e8af3b15e33e06e63b82fe7ddc89fa70806bd7c: Add X-Forwarded-Prefix support for SSE endpoint URL rewriting (#3210) (@dmjb) |
| 0.6.16 | 5 de gener del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 6d244f89387087e5894dfaaa2ed903b1464ee603: Convert secret.go subcommands from Run to RunE for proper error propagation (#3164) (@majiayu000)
* dda67b9158a11fb86a437cc8af9303d2de63dc45: Ensure Toolhive Errors are Wrapped According to Docs (#3171) (@majiayu000)
* c973cdc2a88dc7b2c0c3e33f65bb1eade39345e5: Fix Failing Test: Remove Large File (#3154) (@jerm-dro)
* 4b3fd00b7b749cc9470987e0f2ba946dbc5f1577: Integrate health monitoring into vMCP server (#3101) (@yrobla)
* 7d67ecf4fd5689cd43b5a1a265190000898bc7fe: K8s Client: Apply Pod Spec Annotations (#3152) (@jerm-dro)
* 277072330c92e04ee0afa417542accfddf8cbc73: Rename `thv restart` to `thv start` (add `restart` alias) (#3151) (@mohamedfawas)
* 755c9b840f66c9bd93c9fb69ac80bfa42fe71fcf: Standardize CLI output messages to use 'Workload' terminology (#3173) (@majiayu000)
* b546af3e90bc34acd9a5160fbf66938f0d80f911: Update anchore/sbom-action action to v0.21.0 (#3150) (@renovate[bot])
* ef8df77c19bdeac2029f811bf4626cf817c4cd64: Update helm/kind-action digest to f5f117a (#3137) (@renovate[bot])
* 4a6622eec4750edf8f3eabbed2bd919890bc2848: Update kubernetes packages to v0.35.0 (#3091) (@renovate[bot])
* 10f0a586de949703d2ef14147c1e5c0a9689fc42: Update module github.com/lestrrat-go/httprc/v3 to v3.0.3 (#3143) (@renovate[bot])
* 65db1a448f6ab7930ca011dbaee90765472718c3: Update registry from toolhive-registry release v2025.12.24 (#3156) (@github-actions[bot])
* 3b420d26e032afb875f2300256f17f8b5b3cfd79: Update registry from toolhive-registry release v2025.12.25 (#3158) (@github-actions[bot])
* f622fd1975deb31bffc1a27dcd5a13941912303a: Update registry from toolhive-registry release v2025.12.26 (#3160) (@github-actions[bot])
* 525701510aee6e44d7bbba1ad81d05425631c604: Update registry from toolhive-registry release v2025.12.27 (#3162) (@github-actions[bot])
* ca17f93cd21350cb91fd6c2df6173b6d22fc2179: Update registry from toolhive-registry release v2025.12.28 (#3170) (@github-actions[bot])
* 009a56a2d20ae8b619103dc1314e234f7da9e62c: Update registry from toolhive-registry release v2025.12.30 (#3172) (@github-actions[bot])
* e0502fe76f87edc223d753e7dd8e08124f578203: Update registry from toolhive-registry release v2025.12.31 (#3175) (@github-actions[bot])
* 2b542b8289ee5ad0cbd5814b90a5099dd4a58d49: Update registry from toolhive-registry release v2026.01.01 (#3176) (@github-actions[bot])
* 16cfe49b7dd2965e58f1d811b47e45361005c915: Update registry from toolhive-registry release v2026.01.02 (#3177) (@github-actions[bot])
* da766cf264d29fcdd8acf950310631d0ddf76291: feat: Add tool annotations for improved LLM tool understanding (#3167) (@triepod-ai) |
| 0.6.15 | 17 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* d390486ff968e9a2c0b79d5aca9112144e228b69: Update slackapi/slack-github-action action to v2.1.1 (#3087) (@renovate[bot])
* 4f3c027868b88115e92536c5aade68eb54c1265a: adds slack alert for failed toolhive releases (#3086) (@ChrisJBurns) |
| 0.6.13 | 15 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 1310d3d7ed6d869307099f84e581647e128cf82d: Attempt to Deflake vMCP Tests (#3024) (@jerm-dro)
* 9760559421d8c6515d814341390b550c31a03539: Fix client registration by not skipping workloads (#3035) (@eleftherias)
* 85feede9c51102b144fa93b415af05e2bb10d895: Fix workload restart API by using background context (#3034) (@eleftherias)
* f0bf44fcfb23346c138b43df1270a8f7830b19d1: Optimize VirtualMCP e2e test performance (#3012) (@yrobla)
* cc991e2b077e480122d15716144e9f7bb720c5fe: Refactors ConfigMap management in the Operator to use reusable configmaps package (#3021) (@ChrisJBurns)
* 6053cdc429e30a7fb0d9809f63e9af2117cee741: Remove `RetryOnConflict` Logic in Favour of Controller-Level Backoff (#3020) (@ChrisJBurns)
* 55f1029c33330b6720dfccf581f71313c879d19b: Temporarily skip flaky e2e tests (#3037) (@eleftherias)
* 6ef1a6254301f98c9f658fc15b6a85ec70df8590: Update GitHub Artifact Actions (major) (#3023) (@renovate[bot])
* dfc40a452859070b22ebdb0a95b9bd05d21a0717: Update actions/cache digest to 9255dc7 (#3019) (@renovate[bot])
* 29ec0d9a702f45ab4326d8905b73a32b808d0692: Update kindest/node Docker tag to v1.34.2 (#3025) (@renovate[bot])
* e9b11efb8b7ca2661b0066efeeab5d8c0ec74557: Update registry from toolhive-registry release v2025.12.13 (#3026) (@github-actions[bot])
* a7483739bac32c3521fb1d65be0173893cf27791: Update registry from toolhive-registry release v2025.12.14 (#3027) (@github-actions[bot])
* 1ea6c9921bb3787adba99d0287aab9b0c1f8df3a: add documentation for virtualmcp (#2931) (@yrobla) |
| 0.6.12 | 12 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 292a45db82dcecedd239027e9eb487f47b5c05a4: Add backend routing capture to vMCP audit logs (#2983) (@yrobla)
* 6b8203082010340edc129eb36bb8d04bb9f1333b: Enable MCPRemoteProxy discovery in MCPGroup and VirtualMCPServer (#2970) (@amirejaz)
* 6eddcb79825dcf587f0237ff20804903467b88a4: Update actions/cache action to v5 (#3007) (@renovate[bot])
* b17e395ad4e45817fdc298b0cce2aeb23caaa46d: Update registry from toolhive-registry release v2025.12.12 (#3010) (@github-actions[bot])
* 02f494df6788f6d1ee05fce2e192f04ea7148a1c: Vmcp rbac mcpremoteproxies (#3013) (@amirejaz) |
| 0.6.11 | 3 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 0306e9c38d9629d479c204a717a45167763f3bc5: Add --from-secret and --from-env flags to set-build-env (#2860) (@JAORMX)
* 66caa986e855e7b56f9a8267853c60d8d58f156b: Change pinging logic for remote workloads (#2872) (@dmjb)
* bba72f1fdf86062757a54dbeacc14982133474d0: Display custom metadata in registry info text output (#2871) (@JAORMX)
* 62f41220943f12f6bee47c79fea6863aa8d2e36a: Fix VirtualMCPServer OIDC configuration by implementing OIDCConfigurable interface (#2821) (@jhrozek)
* 71ec7105db6f8d8adab03acb51dfd7cd2a907711: Implement ExternalAuthConfig discovery for VirtualMCPServer backends (#2726) (@amirejaz)
* 15f0beb3c8544093aa5f1d4a1568a832cb31f595: List workloads once to ensure consistency (#2867) (@amirejaz)
* a5ff43f2fbb1b765d0faae41bef11f5c8a90af48: Refactor vMCP e2e tests to extract common helpers (#2839) (@jhrozek)
* f57d84a9ceb813f0e2a80ed3a5dbea668ecb5cb2: Split out podTemplateBuilder to be reusable and cover with integration tests (#2840) (@jhrozek)
* 6d7b0287bba0161a621c03ad2e9e6b8328633d51: Update actions/checkout digest to 8e8c483 (#2844) (@renovate[bot])
* 52274ca5bbfc5207ea1631b0db85e2431e1f4938: Update build-env proposal with secure credential handling (#2859) (@JAORMX)
* f187a4cf6cc7c1e3cf4d9b18e9103513dfcc22ba: Update golangci/golangci-lint-action action to v9.2.0 (#2861) (@renovate[bot])
* 49777bec1cb2d82abe38c204a9d5d81adab01eff: Update registry from toolhive-registry release v2025.12.03 (#2862) (@github-actions[bot])
* 50c5c0b8da884084e13e6cba48abc758abf0b544: Use gopkg.in/yaml.v3 not v2 (#2868) (@JAORMX)
* e8ebf515255833f6f9e627ec4d4650dc6a3f0277: Use ubuntu-slim runner for lightweight CI jobs (#2869) (@JAORMX)
* 40b09e0b013c45211cffb7718bc038bf80fb6a19: upgrade go to `1.25.5` to fix `GO-2025-4155` (#2846) (@ChrisJBurns) |
| 0.6.10 | 2 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* c89f49a027147926a896669fd94bad44c02395b0: Add support for Zed client (#2836) (@eleftherias)
* efe86fa64fbedab4333e5024725c444a1f27e28d: Add vMCP e2e tests for tool overrides and composite workflows (#2826) (@JAORMX)
* 3b1fc1e1cdf80183ed7622fb0c38286f13d49b7f: Proposal: Kubernetes source type for registry server (#2829) (@JAORMX)
* f0ce9c2bef97ad1c61ea4425e25c97f1994a080a: Update anthropics/claude-code-action digest to 6337623 (#2827) (@renovate[bot])
* 0dc40b71e3864b82c3894906b3f9c0f3b99e3de6: Update registry from toolhive-registry release v2025.12.02 (#2833) (@github-actions[bot])
* a23f35f1d91cc8f5d3d0424da9ff7ad061f3f9bc: Update registry.access.redhat.com/ubi10/ubi-minimal Docker tag to v10.1-1764604111 (#2828) (@renovate[bot])
* a2ad8ae9ba0888777e588c9facfed1ffef670d06: add RBAC resources for MCPRegistry API server (#2832) (@ChrisJBurns)
* a1dc38658be1288c6561ab8311981007413b6faa: adds kubernetes registry config for registry server (#2830) (@ChrisJBurns) |
| 0.6.9 | 28 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* ab7f5428457e58670b75dd87c80d726500e00914: adds ability to configure database details for registry server (#2800) (@ChrisJBurns) |
| 0.6.8 | 27 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 6baef4e8335853383f10bcbbd9c2bab5629b341a: Remove local incoming auth type from operator CRDs (#2759) (@jhrozek)
* 6e0e96ce8a36ae63670b92312ca84a3efc38d510: fix: fail when discover of auth creds fail (#2758) (@yrobla) |
| 0.6.7 | 25 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* b0a52c7d965d336ec83dabdc8049847145fd42be: Add proposal for custom package mirror support (#2732) (@JAORMX)
* 9b3d3357aebafd55b3bfd984f93415ce38d53f88: Add workflow metadata to output template context (#2731) (@tgrunnagle)
* 16684fd2ff5d387cf5f04800df1dd142c55ac38e: Consolidate PR size workflows into single labeler workflow (#2734) (@JAORMX)
* 35a0dc3ae95df60e41bd1c8bd59bb110790201a9: Move the UpstreamRegistry type from toolhive-registry (#2727) (@rdimitrov)
* e9cb3cf0a4ab79d4a00cc8ce28e4634a815e3587: Update GitHub Artifact Actions (major) (#2725) (@renovate[bot])
* cbdb7551e2f715dd7daef26af90709c5054af857: Update actions/checkout action to v6 (#2676) (@renovate[bot])
* a46eadb6749dc3b7c32b77674339c2404652e6af: Use UTC for workflow metadata timestamps (#2736) (@jhrozek) |
| 0.6.6 | 19 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* a25c457ca6ceee06cb01f9ea88eef5d004ed40db: Add Google Antigravity IDE client support (#2646) (@danbarr)
* ff6a1ab3e789afb0d0858d75480dcd1ba178c264: Add integration tests for vMCP server (#2624) (@jhrozek)
* 25b23f1426079f8c0a240485de73daaac6543173: Delete VMCP_FUTURE_ENHANCEMENTS.md (#2645) (@JAORMX)
* c4a0c65c4dabd0e70409c82d1f4097e8cd030fd6: Update anthropics/claude-code-action digest to 6902c22 (#2632) (@renovate[bot])
* b67e9a2a071f39a46fd6a7cdf0d0256c6fb3958d: Update registry from toolhive-registry release v2025.11.19 (#2653) (@github-actions[bot])
* 900a674c69fcae9bc248bfd34e96e167ea2df1ca: fix: ubi image build should support multi arch builds (#2655) (@TomerFi)
* d783c01660ff3df47b1a520ee6ebc833bc804fd9: improves chainsaw single-tenancy test times by running in parallel (#2654) (@ChrisJBurns)
* 5bd0e2921dfb975f60f34f18e1e6ab149e1a66dd: makes int tests less verbose in logs by default (#2642) (@ChrisJBurns)
* 6d56f1c8d78a4cf72293ae98773fdf56fba21a37: move virtualmcp tests to its own folder (#2656) (@yrobla)
* bb76dc33d25875920c7618335b916f3e0bafe5e0: moves authz-configmap-ref e2e test to integration test (#2647) (@ChrisJBurns)
* a5a29dc09eb427695f244412325e26b6f9d3338a: moves e2e ext auth test to int test (#2625) (@ChrisJBurns)
* d97785fe321de0d535fc81fa41ad0d74ba1afd9e: ports inline oidc config auth-configmap e2e test to int test (#2644) (@ChrisJBurns)
* 2585128224e3c1bd18d2fecbd9b3e02501aa7f0c: refactor: registry package types (#2615) (@peppescg)
* 315158cb3765cfb081815790d4e06273ace9ad32: removes the otel e2e test because we cover it in integration test (#2657) (@ChrisJBurns)
* 841f61c3fe7f0d92ccabf70f7c32facafaf3861b: renames int test suites to be more representitive (#2648) (@ChrisJBurns) |
| 0.6.5 | 13 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 6b5372a6ad6daa48d48122b33656d632df800ef4: Fix registry type transitions (#2578) (@rdimitrov)
* b2462d50e230dc3f6808c05b70eb4aedf7d6784d: Run operator tests only after other jobs pass (#2579) (@rdimitrov) |
| 0.6.4 | 13 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 647279647bb66c1984141f33bb0e32eeb8949208: Add MCP elicitation support for vMCP composite workflows (#2562) (@JAORMX)
* d14a334ae5f1bf9b65309ecc7a5cb2ef3b4b94c4: Fix the way we identify the URL registry type (#2576) (@rdimitrov)
* ef56adf74b86bd65971abf513954ff341f22d8c3: Inject env.Reader for testable token exchange auth (#2571) (@jhrozek)
* b19d1d61ca299d3159847859faa606a12d416268: removes MCPRegistry datasources from Operator (#2568) (@ChrisJBurns)
* b58742c8e53449d269273f0ff0509ab23fdca550: removes registry filtering from operator (#2566) (@ChrisJBurns) |
| 0.6.3 | 13 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* cead1c3de163dccd630a1ee0fe9a855f1d170f39: pins register server image for use in operator (#2565) (@ChrisJBurns) |
| 0.6.2 | 10 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 88127dfa5581a395ffdfee7a69bb39418e7e2c27: Update goreleaser for cosign v3 (#2532) (@eleftherias) |
| 0.5.2 | 3 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 7792dba7ebf014b4803ab333f6692f858d12418b: Add HTTP header validation to prevent injection (#2411) (@jhrozek)
* aa48db20f9549264172b2d1febde918ab5c14c07: Add `-hide all` to test-coverage Taskfile target (#2414) (@JAORMX)
* 6a71fdb9a41216aba14d16445f06572660b3389c: Consolidate bearer token extraction into utility (#2410) (@jhrozek)
* 9a9e93444805dc60e743f0b018e2587de1691bad: Decouple transport from runtime (#2430) (@blkt)
* 04796aca8b1d092e58ca381a05c37b7821750e03: Don't try to install mockgen if it's already available (#2434) (@JAORMX)
* f1705ca57b3ecb54970b555f87b570f0e9cb9708: Fix flaky tests (#2178) (@NastyaAR)
* 40b7277b025466d9d7427239618d661a8b17d33a: Fix flaky vMCP health endpoint tests (#2415) (@JAORMX)
* a941bfe8165c2c9812eb1552b25e0963556fd9c7: Fix group name validation (#2402) (@eleftherias)
* a10f194d503101302e389d218dfec7d0e71c677c: Fix race condition in operator git tests (#2408) (@JAORMX)
* 038cd246d8eb43316f9c3377678945dedbde74b7: Handle partial flushes for `application/json` (#2422) (@blkt)
* 3d98a090f69413f62851281ebde9daee91fb6700: Handle partial flushes in tool config middleware (#2404) (@blkt)
* db9a6f5c62e4986dfb351fbb820579295222596f: Implement core authentication infrastructure for vMCP (#2393) (@jhrozek)
* 9f46bff26250cde77a4c3306acbe1a1463d6280b: Update helm/kind-action action to v1.13.0 (#2436) (@renovate[bot])
* 06b6efdc83d90fb87970f0e3f4a321d5e4ff420d: Update module github.com/mark3labs/mcp-go to v0.43.0 (#2431) (@renovate[bot])
* d5f7b9354a0278630fc545ec99241dd3bb4461c0: Update module golang.org/x/net to v0.46.0 (#2427) (@renovate[bot])
* f353c12d113307432cb24b3063f4288fb64d37aa: Update registry from toolhive-registry release v2025.11.01 (#2425) (@github-actions[bot])
* 9c3ad92018253057696a92065b0171a36022c9a2: Update registry from toolhive-registry release v2025.11.02 (#2428) (@github-actions[bot])
* e20820e49b120b3b5a627e7ede0a38bfd6b1593a: Update registry from toolhive-registry release v2025.11.03 (#2432) (@github-actions[bot])
* 02a2c8db60980c0b71967f7c8fe905e9c376bf9e: Update registry.access.redhat.com/ubi10/ubi-minimal Docker tag to v10.0-1758699349 (#2426) (@renovate[bot])
* 110b286689c70d7342076a2a834bdb0c484edfd6: Update ubi golang builder to 1.25.z via epel10 copr repo. (#2418) (@RoddieKieley)
* 22a02cd097e937cebc0916fcc9d774c1a77da5f1: add missing gaps in k8s virtualmcpserver crd (#2409) (@yrobla)
* 5a7e6a9dee80de1b69046ad8db5be63bf74360a7: build: bump go to 1.25.3 (#2423) (@TomerFi)
* b6a5e46eb793a252b60c89984e78e4574c27ddfe: build: use golang base image for building binary for UBI (#2420) (@TomerFi)
* c729ac5d91fd6a0d28f75981b176d6fec0d08312: fix: switch operator micro ubi variant to minimal variant for missing certs (#2424) (@TomerFi)
* dbb36a33ba9dd0df39748c29777c61a6e63387ba: vMCP: Add comprehensive tests for cache and registry components (#2407) (@JAORMX)
* 4ef4a16f485c620ee2cd6da42883aa65eeb3a79e: vMCP: Implement CLI serve command and session management (#2406) (@JAORMX)
* 028cc6de474375b574c4f7c9efdae88445539580: vMCP: Kubernetes - VirtualMCPCompositeToolDefinition CRD (#2412) (@yrobla)
* 05b00e5a40f9fab2cdb63d614d32c764d03df94f: vMCP: Use proxy-mode instead of transport (#2413) (@JAORMX) |
| 0.5.1 | 30 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 2648cd4a221c279a1f9fac98083b070045781551: Add Dockerfile UBI images for the Operator and ProxyRunner (#2327) (@TomerFi)
* 5805898aefb4951086fe6bf0b8413b80efb1411e: Add Virtual MCP Server proposal (#2106) (@JAORMX)
* 295a70b658e841ecb31e962a38d979e7ce1cbe4a: Add Virtual MCP Server routing interfaces and domain model (#2333) (@JAORMX)
* 6c2a83e22adefa688aae5623629996352d672762: Add govulncheck (#2372) (@rdimitrov)
* c7f9274a584e61ea6ad0431c5ab8cd1dfeb03d10: Fix UBI aggregated tag (#2361) (@dmartinol)
* a3199a6beae9623606fcbbdb0a964a974270e19d: Fix server port when network mode is `host` (#2353) (@blkt)
* c864276d46e23f8a7007fb5e3f58e51e529e9365: Implement capability discovery and querying for Virtual MCP Server (#2354) (@JAORMX)
* 216a280333265b0b997664aff5df33b8ee7f03aa: Run `task lint-fix` (#2370) (@JAORMX)
* 129bdddec31d23f58e97dd32ba5ac65ffd96bc58: Update anthropics/claude-code-action digest to f4d737a (#2346) (@renovate[bot])
* b0cb7b2925b73c82d2fdd53cf1ce66045eaf8719: Update module github.com/onsi/ginkgo/v2 to v2.27.2 (#2342) (@renovate[bot])
* 4628dde577474a88b9acfafcf04150c06f2a1747: Update module golang.org/x/time to v0.14.0 (#2348) (@renovate[bot])
* 6aff71a0ef01b37c0905954241c341627a9b931c: Update registry from toolhive-registry release v2025.10.28 (#2345) (@github-actions[bot])
* 720b794a184468ddd9a881baa8fd69f007253580: Update registry from toolhive-registry release v2025.10.29 (#2358) (@github-actions[bot])
* 8f6517bcfd35dd63f154691951ee2cacb88b5435: Update registry from toolhive-registry release v2025.10.29 (#2368) (@github-actions[bot])
* 591f19b31b2606620e50b16d4d65604a2ae69062: add initial binary implementation for vmcp (#2340) (@yrobla)
* 2f0a815a56077e95ef032dd61ca958686d83d40a: adds nil check for runconfig options and logs error in case of parsing `SampleRate` float (#2367) (@ChrisJBurns)
* 2642816bc39050d915183669718e300e175cb92f: changes examples to use new port names (#2341) (@ChrisJBurns)
* 615eb396e79156c0a9b8c70397bb429af8ddccd7: clean more flags/args code from operator and removes redundant functions (#2343) (@ChrisJBurns)
* 28f8eafa6f1d66425562ee95bfae9e2dd3fbe368: feat: add validation command for vmcp (#2364) (@yrobla)
* 1f3b68974161d4c5d8c4e957868ba7aef7099e7e: moves `GetToolConfigForMCPServer` into separate package for easier testing and reducing code in controllers layer (#2344) (@ChrisJBurns)
* b879b4a030b741e19703a55f7f91dd39f1d23652: refactors telemetry runconfig into runconfig package (#2356) (@ChrisJBurns) |
| 0.5.0 | 27 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* d80d678dd93fa0832baf613eced368d163145de5: Run `task operator-manifests` (#2334) (@JAORMX)
* 977eabf017f58d11916635bb5d4b5c1aecd8f2cc: Update registry from toolhive-registry release v2025.10.26 (#2331) (@github-actions[bot])
* 398e5bf91a82bb4d1f49c49d73498030b2932214: Update registry from toolhive-registry release v2025.10.27 (#2332) (@github-actions[bot]) |
| 0.4.2 | 23 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* bb76806859ceec4931a0242e09b924826e606d85: Add MCPGroup CRD documentation to operator architecture (#2302) (@JAORMX)
* ade7e8fd3a94b12715e47ad2f66d01993f102fcc: Ignore operator tags when releasing thv CLI (#2304) (@eleftherias) |
| 0.4.1 | 23 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 831b3890f341f84996fb5c6c9d338e53b78bf590: Add Custom OpenTelemetry Resource Attributes Support (#2285) (@ChrisJBurns)
* 8249f10272336b75ea2de6a7666eabdf3f6b52e7: Clarify file name format for `docs/proposals` (#2298) (@blkt)
* 594845324da37d82440fc3e92728426d2468d5e0: Fix proposal name (#2299) (@blkt)
* 406d888ee2488a34d39848b29ef58eded237e46f: Update registry from toolhive-registry release v2025.10.23 (#2297) (@github-actions[bot]) |
| 0.4.0 | 22 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 36959ab5f0eb0e53ba371c886295d39a91e6e551: Fix chainsaw install for e2e tests task (#2277) (@tgrunnagle)
* bba3ffcf7f0a0e570846ea19934ac874b36ca715: Fix race condition in keyring provider causing concurrent restart failures (#2280) (@amirejaz)
* 4e36e189d2db1674045c060f2dc2d16ec7233e6f: Hide the internal MCP optimizer group (#2282) (@eleftherias) |
| 0.3.11 | 17 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 012d3b887606262dc38f08f2be8a566434dcd09c: reverts cosign installer to `3.10.1` from `4` due to breaking change (#2248) (@ChrisJBurns) |
| 0.3.9 | 16 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 4aea5a7677cf53bd5209f64130df72db2283b9d8: Add seccomp profile to operator container security context (#2209) (@JAORMX)
* 974564547fb0b37bbe94848a0d3a45338417d468: Update registry from toolhive-registry release v2025.10.16 (#2229) (@github-actions[bot]) |
| 0.3.8 | 13 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* bca5e7af63ae5af4b4b02534a548b940c59747cf: Add environment variable support for token exchange client secret (#2148) (@JAORMX)
* 32f5d260aabdef38f4222a71f2c2e89947a53376: Bump github/codeql-action from 3 to 4 (#2162) (@dependabot[bot])
* 2b1a9a8a553f4b09067d5196b8848e5faae297c3: Integrate token exchange middleware (#2143) (@jhrozek)
* 17787673728e67963bdeec26080ab048018983c3: Pin the version of sigs.k8s.io/controller-runtime/tools/setup-envtest… (#2170) (@jhrozek)
* d421ce697f0d1c97fe72aab46374931b60974bb1: Update alpine Docker tag to v3.22.2 (#2134) (@renovate[bot])
* 2a87be0c60d572e6fdaf0df31a455439a3feb37b: Update anthropics/claude-code-action digest to 777ffcb (#2154) (@renovate[bot])
* 8effd2915c0aa916795d12a118689f37e24e3841: Update golang.org/x/exp/jsonrpc2 digest to d2f985d (#2141) (@renovate[bot])
* d5b7f5b56cf0f97489cea0eb399220b55b047c6d: Update helm/kind-action digest to 7cd7463 (#2153) (@renovate[bot])
* 81e666691f7020cf19b3fd84a7ef4d4d0996a7fd: Update inspector to use upstream image (#2142) (@danbarr)
* 8625fbffdc108b1788ec6ef2439bf7f2bdb4772e: Update middleware documentation with missing middleware (#2161) (@JAORMX)
* fe64da07808774965c1c75f482386db592a8bd8a: Update module github.com/gofrs/flock to v0.13.0 (#2145) (@renovate[bot])
* 459e96c9b642fd723bbcdb923d2d667e8dcab441: Update module github.com/santhosh-tekuri/jsonschema/v5 to v6 (#2080) (@renovate[bot])
* acfc1e49d638e08316f0522e2acafaf826dd5529: Update module sigs.k8s.io/controller-runtime to v0.22.3 (#2156) (@renovate[bot])
* 5585c601f41c4d13cc35e72964383db7bea40e79: Update podman socket path for mac (#2164) (@eleftherias)
* a7f178add3ff6179946b008084a0195964306620: Update registry from toolhive-registry release v2025.10.11 (#2155) (@github-actions[bot])
* 4b3b3d18bb5954737af07fa2833dc407ec0a14df: Update registry from toolhive-registry release v2025.10.12 (#2157) (@github-actions[bot])
* 8bbf03a9bcba06c983c450d63c8e6a51b5a128ee: Update registry from toolhive-registry release v2025.10.13 (#2159) (@github-actions[bot])
* e9d82a59691170a36c20d404ea35f7cc07e8a6f5: Use dynamic port allocation in streamable proxy test (#2172) (@ChrisJBurns)
* da236ab4d4182de66507339aa388d1d31bd2d563: avoid telemetry failing interfering with mcp responses (#2147) (@yrobla)
* d492159a72eba0ff4693f7375844b763196a6a83: docs: add Runtime Authoring Guide (#1890) (@JAORMX)
* 48db1ad011a9077bfe51b137ee471754084d0ed5: feat: Add pluggable storage backend for session management (#1989) (@JAORMX)
* d8b3e99372fab6b48efcf0677fef275f59fe3ce0: removes thv-operator binary (accidental commit) (#2173) (@ChrisJBurns)
* c2af88da4a20ea86c6a11e05442d6843ff311002: upgrade golang to 1.25.2 (#2171) (@ChrisJBurns) |
| 0.3.7 | 6 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 19a9f7bdd052e6e76a262fa6a934b61c171a9bbc: Add sample Grafana dashboard for CLI tutorial (#2090) (@danbarr)
* f067a0b6af3b761ef949ed4b8b038996e9eb94fd: Handle scope field as string or array in DynamicClientRegistrationResponse (#2083) (@amirejaz)
* 9a6b50c525ab26b3cf28779cebc41ac2e875d5d3: Reduce example Grafana dashboard uid lengths (#2087) (@danbarr)
* 499316c618642808217c0d7cef22608b9ca8be4e: Update anthropics/claude-code-action digest to 90d189f (#2078) (@renovate[bot])
* b65fad476a962d220de10e9df4c867479131920f: Update golang.org/x/exp/jsonrpc2 digest to 27f1f14 (#2074) (@renovate[bot])
* 78d0384e715f1cbfb130eefca0223fbd54ae4204: Update module github.com/docker/docker to v28.5.0+incompatible (#2075) (@renovate[bot])
* abb22d80a5321342530583bbc82aeadef718e943: Update module github.com/go-git/go-git/v5 to v5.16.3 (#2094) (@renovate[bot])
* 4cfd83d7fbfcfce3eca5cb3e7199fe18d2604899: Update registry defaults when auth config is provided via CLI (#2081) (@amirejaz)
* bb270374e7fb881218dbc3264c36ada40358c2bf: Update registry from toolhive-registry release v2025.10.04 (#2091) (@github-actions[bot])
* b7b02edc56031d05a2eab1e61de5b288f86d3d64: Update registry from toolhive-registry release v2025.10.06 (#2093) (@github-actions[bot])
* 6a9563b9946eae40287440f5da771096c30bd1c3: Use new update service URL (#2085) (@dmjb) |
| 0.3.6 | 30 de setembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 7a8afd10be2df918aa71c5053d49902d4f14bc44: Add remote MCP authentication documentation (#1981) (@JAORMX)
* 5de3a338accbe4b9f00b1ec15689abef672ec954: Fix GoReleaser archive formats (#2038) (@danbarr)
* 84041ccec93c3b0b77c690c3dcdef02d7a536c96: Fix egress proxy ARM64 build by using Alpine edge repository (#1995) (@JAORMX)
* f89b10316fc7224843caa7774c2fa125c88bb2d0: Fix remote MCP server authentication with issuer mismatch (#1980) (@JAORMX)
* a49985e02a8b2819520edc4635d7d6a2c5a8c55e: Update registry from toolhive-registry release v2025.09.26 (#2011) (@github-actions[bot])
* 06e638c413954f9160188b8506a5891c436e69c6: Update registry from toolhive-registry release v2025.09.28 (#2020) (@github-actions[bot])
* d951d8b2d3c1af6dc5ea2e8e81d6079a5dc96efe: Update registry from toolhive-registry release v2025.09.29 (#2022) (@github-actions[bot])
* aa8813fd250758d89c1fb72b494a58fcd120785e: Update registry from toolhive-registry release v2025.09.30 (#2029) (@github-actions[bot])
* 90993f60325dc63f28310d4971f668140dd11e3e: change the default behaviour of proxyrunner (#1952) (@yrobla)
* 0e2e0e2d5ae4188dd99604ef45550ddeb057bda1: chore(deps): update docker/login-action action to v3.6.0 (#2025) (@renovate[bot])
* 6929a52b4460cd0951c30e8ca65490f7b38e91ca: corrects jaeger URLs for otel example (#2036) (@ChrisJBurns)
* 8abada0345ccc441c3acf6b0cf5855a63e9993b1: fix issues with propagating server and transport on telemetry (#1973) (@yrobla)
* 559b4384d9692c4e5f41d33ced20e09076d1082e: fix(deps): update module github.com/mark3labs/mcp-go to v0.41.0 (#2021) (@renovate[bot])
* 28e0a64a8250c9da14b22885f158c39bed557fff: fix(deps): update module github.com/sigstore/sigstore-go to v1.1.3 (#2019) (@renovate[bot]) |
| 0.3.5 | 18 de setembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 0f9dc501d58c5059d10b2c6183f08a784a985c98: fixes job name reference (#1966) (@ChrisJBurns) |
| 0.3.4 | 18 de setembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 1243c3abe255c40a6906f39921d92fb3968cf1e4: Add Roddie and Daniele as ToolHive Maintainers (#1965) (@rdimitrov)
* 9cd19bc17fb960c5517a1a0fa2b03cbbe989bb04: adds tests for packages missing them (`core`/`env`/`errors`/`transport/errors`/`versions`) (#1729) (@ChrisJBurns) |
| 0.3.3 | 18 de setembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 1ccbb459511d213841c97e5010c040d7e091022d: Add CI workflow for renovate configuration validation (#1946) (@JAORMX)
* 68db7a6524ed25df7fdeb233a280c50c42b13501: Add E2E tests for tool override functionality (#1935) (@JAORMX)
* 8371e04fd0b18c5cb1b6f747dc1e7495dc1724d1: Add MAINTAINERS file (#1936) (@JAORMX)
* 3a7394789d2b1fb8c85b3c5ae4a8cfb3527c29f9: Add Stackers team to maintainers list (#1942) (@rdimitrov)
* 66fc703fea402752d2c7446d00546b5d8a2be4e4: Add automatic patch updates for kindest/node versions (#1944) (@JAORMX)
* b92b9e791165beda9c894b2c32bf5b173810205f: Add file-based registry provider to thv-registry-api (#1909) (@jhrozek)
* 76939e09b3871624355a538fe76eb081a50ea639: Add proposal: Upstream MCP Registry (server.json) integration for ToolHive run flow (#1918) (@JAORMX)
* 8cb350025c9ee4a4da48eda48bf0cdff42524714: Add thv group run command with full container and remote server support (#1912) (@lujunsan)
* 4fb2fa4e3e84805a792c44bf6278f8b3f3536ea8: Allow informational commands to run without container runtime (#1933) (@rdimitrov)
* db175dfb3200cc21c9ef7f53684d207da41edb58: Display local proxy URL instead of remote in thv list for remote Servers (#1945) (@amirejaz)
* 59e8f04d546769169a428e9d1152f4351432d5e6: Enable token exchange for the example KC clients (#1930) (@jhrozek)
* 30b658ba079aa6c2ed70f3607bc65ccb7123af47: Fix renovate config to properly restrict kindest/node to patch updates only (#1950) (@JAORMX)
* 3196c5e82d63afa5ec7b770207317a037f0627d4: Fix renovate config to restrict kindest/node to patch updates only (#1954) (@JAORMX)
* fd7f89b569e2303cd05fb9bc7a77200011d6d33b: Force reload of config singleton on secret provider setup (#1960) (@dmjb)
* ded08b448454ebb730125aa156f92130ca018b0d: Optimize E2E workflow: build ToolHive binary only once (#1937) (@JAORMX)
* 3435c0e74a51de8adca99c09e6e1297fc5124b8d: Remove support for managing mcp with partial names (#1943) (@yrobla)
* bc63149f404e7e1ef20929c59b3481d99620e6e4: Tidy up CI names and identifiers (#1955) (@JAORMX)
* 7aaf6447b42fae887ebc18c6abe3aa79781a3c51: Update registry from toolhive-registry release v2025.09.18 (#1932) (@github-actions[bot])
* 88295ad9fd18cff8c9d4ca0d8bcdbeb1fa24b501: Update registry from toolhive-registry release v2025.09.18 (#1948) (@github-actions[bot])
* 3180667dc9ed08ac60657da99e1c0670a2f71f73: adds proposal for toolhive k8s deployment architecture (#1497) (@ChrisJBurns)
* eee68a1da870f133e2fdfe6c4f0280266ace8125: chore(deps): update actions/download-artifact action to v5 (#1940) (@renovate[bot])
* 4a763671bc0a6ea12bb1a767e2240f1a923e97dc: do not execute migration or proxy checks for auxiliary workloads (#1938) (@yrobla)
* 00b1e6a333ce56478550588ef9e91f5df2e16a3d: docs(operator): add E2E test instructions, clarify task usage, and automate Chainsaw install (#1929) (@olamide226)
* d525d2c4ce3e282bb8ee2f319a464b748d984fcf: fix(deps): update module github.com/charmbracelet/bubbletea to v1.3.10 (#1928) (@renovate[bot]) |
| 0.3.2 | 17 de setembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 683cb79979c7fb37b99c52cd91460cfe36a0014d: Update registry from toolhive-registry release v2025.09.17 (#1913) (@github-actions[bot])
* 24a2f3747da3546e2556cf623e6d48f1f9336c48: feat(operator): Add MCPServer restart annotation support (#1882) (@olamide226)
* f4da6f277d704f6100e5fe45468c5f150c5aed5b: remove secret provider dependency from workload apis (#1919) (@amirejaz)
* c4593a96b95c49b1b0873c8e1540953f4c8bd4fa: support env file dir in configmap use case (#1907) (@yrobla) |
| 0.3.1 | 16 de setembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 2300874b0efc290fdd12c34bd21d4a63c4244b83: Add proxy port to workload APIs (#1904) (@eleftherias)
* 8396023f9b1648e07f135871f88685395cd4e03a: Add the thv-registry-api binary (#1851) (@jhrozek)
* 161d0004ee8a49caf3d92c93a1e2afe8bb90af39: Fix OTel insecure and prometheus settings fallback to global config (#1900) (@danbarr)
* bd3474a0ed70697ec14761739bf8303527a68ccc: Include ToolsOverride in middleware population and allow empty tools filter (#1889) (@JAORMX)
* 395b6ba11bdd60b615a9630a66dcede2abcfbb48: Registry filter (#1905) (@dmartinol)
* d80b2eb8957fa7b83976c149b5bedab42a98eb55: chore(deps): update anchore/sbom-action action to v0.20.6 (#1902) (@renovate[bot])
* 26dc71897bf4f2229b0ed4be8102355a0ad4e6d4: fix default callback port for registry (#1903) (@amirejaz)
* d15faf0d88ca8389c3329041959449643ea30e2f: operator: Embed Authz config from ConfigMap into runconfig (#1893) (@JAORMX)
* cb7b37412687b9f9de52a210a51977c5287d269b: operator: fix data race by removing global ctx logger (#1910) (@JAORMX)
* 3a80e587912a1410d53b2a46c010910218c302ee: operator: use defaultAuthzKey for authz filename (#1908) (@JAORMX)
* ffdb3ff749cefe36d7ff6167a49f45d62922dd09: remove GOARCH env var from go template (#1906) (@yrobla)
* 599043b0919dca8921ce2951962a1da1ea009e86: use server url as issuer if not derived from realm or resource metadata (#1897) (@amirejaz) |
| 0.3.0 | 15 de setembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* cc1c030cfa0c526e098abd22a3d811e35eaacea2: Add adapter and unit tests for Docker query paths (#1865) (@JAORMX)
* d26eed1723f62e5d45b4388a39f78fad918994b3: Exit early if container runtime is not found (#1876) (@rdimitrov)
* c36b870deca82f06990c391bce5450ca84e69e6c: Fix ProxyMode flag missing in Kubernetes operator (#1879) (@Deepam02)
* f2b6bc397ffef47e066c9dd16c6ea4d9224162bd: Refactors Accessor Logic for `MCPServer` Fields Into Specific Package (#1877) (@ChrisJBurns)
* 1f746573ae8a3010d7a0741795103ed1f9ff2e87: Resolves Double ProxyRunner Pod Issue in Kubernetes (#1870) (@ChrisJBurns)
* 3778fa688971a8fe5ea90bb21213458b0324f672: Update Helm deployment name for CRDs in Taskfile (#1872) (@danbarr)
* 4c896a749d61f94d87be7e4cb51376757231113c: Update registry from toolhive-registry release v2025.09.12 (#1878) (@github-actions[bot])
* 45aefa3250bc1f32744fa407b6e896ad54b0b1da: chore(deps): update sigstore/cosign-installer action to v3.10.0 (#1875) (@renovate[bot]) |
| 0.2.17 | 9 de setembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* b517656d611abbeef728e70f722ffe37825c5d1c: Add `test-silent` action to Taskfile (#1792) (@dmjb)
* dc5b978fd8b7ee2128bd2feac28a04180c7c2079: Add audit configuration to MCPServer CRD (#1787) (@JAORMX)
* 02c003cd05723ef68e1942d46851276198cdde54: Add proposal for groups in registry (#1681) (@eleftherias)
* bb24c666454a20822e6bbcd0d89aee8528b3ad59: Change method for setting PID (#1769) (@dmjb)
* fde2fad65a2735181956fbeead85369e751afb39: Dont generate coverage during test-silent (#1793) (@dmjb)
* b5332a3f879bc867bd04521f8a62b149999926f3: Enforce structured JSON logging in Kubernetes environments (#1775) (@JAORMX)
* 1b984547d5bb7583964661ed72b831d6ed529e5b: Fix group case insensitive (#1711) (@rbiamru)
* 284a6dd8843432ed54b4135de520f13b644360d9: Fix update-docs-website workflow triggers (#1755) (@danbarr)
* 606c8c959e1cdefe9b1da41b742170b9acda9f4c: Improve test coverage and fix label validation bug (#1788) (@JAORMX)
* 706806bc5cb6556b61904d23677d73ab748b7fcf: Increase session TTL from 30 minutes to 2 hours (#1790) (@JAORMX)
* c704a071dc99eb3ed6c183b03607e6b1ebc6e270: OpenTelemetry Support for Tracing in ToolHive Operator (#1720) (@ChrisJBurns)
* 8c8b39ff03147597a1d6ab368a82b46c8fed8d3a: Registry crds (#1773) (@dmartinol)
* cf5e7eaa567856842fff7bdb26d53edf9b02aaa8: Replace tmpfs with bind mounts for .thvignore directory overlays to fix tmpcopyup (#1765) (@JAORMX)
* 05edfa16ddb0dfc397b9ba7388434c0a6f9c4b8c: Support colima (#1332) (@goshlanguage)
* 04a2e0b19560ec7cbf04d6251180b911e56bd106: Update registry from toolhive-registry release v2025.09.06 (#1756) (@github-actions[bot])
* 2ee4f6ae1b66071e111ea12b10fe0ca1803ded24: Update registry from toolhive-registry release v2025.09.07 (#1757) (@github-actions[bot])
* b7ea7b63a0f27e9fb83504fc5de603f7cdc984f9: Update registry from toolhive-registry release v2025.09.08 (#1762) (@github-actions[bot])
* f12309bc4ba8fc2c960c3b24892373c6d75dbf19: Update registry from toolhive-registry release v2025.09.09 (#1786) (@github-actions[bot])
* 068a8b6db54551f6bca3dfb7e9c9aff73b119096: adds contribution docs for helm charts (#1776) (@ChrisJBurns)
* 40aa2837363adf768cb875d11c0d4e12bc4c6da8: adds global configuration for remaining global otel flags (#1785) (@ChrisJBurns)
* e90cb8528d2cf54f05150f6244eb3a77cadb4b91: create configmap when spinning an mcp server via operator (#1735) (@yrobla)
* 2ac96546e3f92d382810b3d40a971ec956cb4764: enables metrics and tracing by default for local CLI (#1795) (@ChrisJBurns)
* a973f98d0472be8189f697fb8773fa11eef4b7e6: fix(deps): update module github.com/charmbracelet/bubbletea to v1.3.8 (#1784) (@renovate[bot])
* 31f2b602bfaae780feca8601bdf55bf4e1006a43: fix(deps): update module github.com/sigstore/sigstore-go to v1.1.2 (#1783) (@renovate[bot])
* c9011cf8b6adc405b94dc22e907a00d995ee6718: fix(deps): update module github.com/spf13/viper to v1.21.0 (#1778) (@renovate[bot])
* c1dfe18b2650ef84f98b93f45a6b959e92ae1393: fix(deps): update module golang.org/x/mod to v0.28.0 (#1763) (@renovate[bot])
* 70b8ed0d522940ef586955be10e4c840cc0cb424: fix(deps): update module golang.org/x/oauth2 to v0.31.0 (#1758) (@renovate[bot])
* 3e0027639a7a42b3e8110bc39ff0d5427086d8ac: fix(deps): update module golang.org/x/sync to v0.17.0 (#1759) (@renovate[bot])
* 0d64d786b2b05bad5fa073b301cf6855ca1dba64: fix(deps): update module golang.org/x/sys to v0.36.0 (#1760) (@renovate[bot])
* dd9ba60cf847faaa51a0efe5e36496a8585a4cfd: fix(deps): update module golang.org/x/term to v0.35.0 (#1764) (@renovate[bot]) |
| 0.2.16 | 4 de setembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* de5644f9d778fc744b7c75f5bd8a53273487f19b: Add config persistence for --from-config and improve flag validation (#1642) (@lujunsan)
* 640c3611aac72eaa8015833838453b60698a5ae2: Add e2e test for go:// protocol build with osv-mcp (Streamable HTTP) (#1701) (@JAORMX)
* dc79cf2df9d026d935ecb7b432694c25f42fb782: Add support for Goose client (#1718) (@eleftherias)
* 4e9e38f72f1de16451676874fdfee1510e4f145a: Ensure slashes in workload names are handled by file status manager (#1702) (@dmjb)
* 46a66f56882318a1b631caea06c279b911360779: Fix issue with `@latest` for npx workloads (#1694) (@dmjb)
* d3ba6e219626c9ac8aa2c915c1c2d6e5f8edc917: Fix mkp manifest example (#1705) (@danbarr)
* ae0fe4d4269e8aa1324a39736de6766a09783d82: Fix test isolation to prevent config file modifications (#1667) (@JAORMX)
* 685b247060b8010469f3ac1b5a25cc54b0226e2f: Ignore errors if remote workload status cant be checked (#1716) (@dmjb)
* 5856322dc3233fd1ec26e2fc1eef061dd7ddd05e: Remove .bak file that was accidentally checked in and merged (#1678) (@JAORMX)
* 25393241578b33e9cf11389684310f59d14427f7: Remove prefix from `thv secret get` (#1709) (@RyanCarlisle)
* d20b2bd866acea1c252540c9200d11823540ea43: Update registry from toolhive-registry release v2025.09.03 (#1689) (@github-actions[bot])
* fc2c7099c88ff0d145a05050b9f7aadb179c8479: Update registry from toolhive-registry release v2025.09.04 (#1710) (@github-actions[bot])
* 37439a986833fd23da75a423cc0bb3a9b4b1c745: adds gotestfmt for prettier test logs (#1688) (@ChrisJBurns)
* 97116b6340b693be7f16af98c98bc9f80934a7bc: adds test coverage reports for PRs fixes test coverage bug in logger tests (#1684) (@ChrisJBurns)
* a1f8038a84f124df1b6cc09efc4d59ace4b08007: chore(deps): update actions/setup-go action to v6 (#1713) (@renovate[bot])
* 06a47e9579fdb26ea3f9076c54f888af42902034: chore(deps): update actions/setup-python action to v6 (#1714) (@renovate[bot])
* 40c463a1a82e41dad676ccd4fe06a9e701b5658a: feat:sort thv list output by workload name(text and json) (#1697) (@ruby1ring)
* b275259be184cb9585e98048db98e16dd950912c: fix(deps): update module github.com/docker/docker to v28.4.0+incompatible (#1712) (@renovate[bot])
* d00772391c770571dcd916cc1803b16a4b0cff7b: fix(deps): update module github.com/mark3labs/mcp-go to v0.39.1 (#1682) (@renovate[bot])
* ad01de783bf7c7c8df4eb893bc95105be181f55c: fix(deps): update module github.com/spf13/pflag to v1.0.10 (#1715) (@renovate[bot])
* 9165467ab6c5c2ec25cd18535a7e685f08ae94dd: fixes where the `CODECOV_TOKEN` is used (#1706) (@ChrisJBurns)
* 0b47fde63ed569dfe907fc8b3678d72b09472cb2: forgot to inherit secrets for tests on main branch (#1708) (@ChrisJBurns)
* 849136103ba4be5eb88b4b16a569a25b78ec16f9: move the logic to skip pid files inside the pid methods (#1698) (@yrobla)
* 9abc89a70492857fbe30650b3df66a88d199a0e5: solution for Workloads API return HTTP 500 on invalid config #1676 (#1685) (@joyy09)
* 6b8a577c2f97546b78112fa903092016da08b894: test actions needs to inherit secrets from caller for codecov (#1707) (@ChrisJBurns) |
| 0.2.15 | 2 de setembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* d274a0ac5468ed5af28b300282cc199a6473a415: Write PID to files for forwards compatibility (#1680) (@eleftherias) |
| 0.2.13 | 26 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 145bddd6c761b0ef82bc66b73734ba4f965a9567: Add resource metadata url to www-authenticate header (#1565) (@yrobla)
* f891df98dce33dc798ad7edf2a7a79c48672ac51: Do not use remote server logic for thv proxy (#1577) (@amirejaz)
* b5bea236b894b789b8af03de929ad91faac4d1a1: Fix SSE connection timeout using background context for workload startup (#1582) (@lujunsan)
* a5051842417098ff50bb995a61e70feba2a83ad6: Isolate unit tests from environment variables and enable race detection (#1578) (@JAORMX)
* 1ad7193c07189527bb51ed52f78dbd7e340b218a: Raise scanner max token size in transparent proxy. (#1581) (@blkt)
* 9066b468c7db0a9c9a6972c53ef1102b1f3931d2: Remove redundant linting from operator CI workflow (#1579) (@JAORMX) |
| 0.2.12 | 26 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 7e1d2aa90c2b165434ed180f3d3e7b804cd7e71a: Support remote servers in workload management commands (`stop`/`restart`/`rm`) (#1541) (@amirejaz) |
| 0.2.11 | 22 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 65bd5626cfc45be8fa1526a7a0930cf74fd15a26: Add pluggable container runtime system with TOOLHIVE_RUNTIME support (#1525) (@JAORMX)
* d4a743ee55daa6315526330f34c4d3b95de75833: Add protocol builds E2E tests (#1538) (@JAORMX)
* 5c04bf707f68a24bc2c587af5bb6b5a8e5ce7c86: Enable Kubernetes runtime to work outside of cluster (#1526) (@JAORMX)
* 7c3c3a757b3b5cfa66202cbc6fa4b6e7d3728ead: Fix nil pointer dereference when using protocol schemes (#1537) (@JAORMX)
* 352d0c0ef095b59db04f795de73072c87cf335ef: Migrate registry to external toolhive-registry repository (#1544) (@JAORMX)
* 1fa75a55a34cdcd67f9367121dca882c99e7b502: Refresh registry data - pulls, stars, etc. (#1542) (@github-actions[bot])
* 2e97be5f84b61ee664c714de8c5ee8a6b0396de3: Update registry from toolhive-registry release v2025.08.22 (#1548) (@github-actions[bot])
* 628dbe43a4e7cce61ab456432c3896c0666dd254: Use pushd instead of cd in update registry job (#1547) (@JAORMX)
* 1cba6b9ab973a0dcdc6db050bc4e86e365506301: fix(deps): update k8s.io/utils digest to 0af2bda (#1508) (@renovate[bot])
* 9652b8940553a4da1e56758272f20e39732cec3b: fix(deps): update module github.com/onsi/ginkgo/v2 to v2.25.1 (#1543) (@renovate[bot]) |
| 0.2.10 | 21 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* ed0e7a374b8f95313bde1e63c258bca1819ec447: Add API server builder pattern with middleware support (#1507) (@JAORMX)
* 8ddc030f7d563e6e9473addee02baf66d825e651: Add new GET Workload Status API endpoint (#1528) (@lujunsan)
* 811f6da9613131428578530a97f87afb5d0a5122: Add pre-commit and helm-docs permissions to settings.json (#1521) (@girish332)
* 2c866e4680770a3e389e82810bb273bccd542a48: Attempt to recover from corrupted updates.json file (#1505) (@lujunsan)
* 386e7faffd9c2056cb6e9f5229382184bb24bac2: Fix multiple context canceled issues on the Workloads manager (#1530) (@lujunsan)
* 38493a15ba1f38bde908802bdf64d63287649a59: Output less info in logs (#1532) (@eleftherias)
* 0fa99db890359e59a2686afc559baa25f8910b7c: Refresh registry data - pulls, stars, etc. (#1522) (@github-actions[bot])
* 56da8bfa973b611e4cde6fe129cf5c0cef2ca4ee: Remote server support (#1423) (@amirejaz)
* 54d0fd3c276c67899cc12ff00cc9e734b8238ee9: Remove duplicate loop (#1518) (@jhrozek)
* 8a11e1d4d5f5bbab9d5b39f906129d471ed097b4: Remove priority label step from Claude triage (#1527) (@eleftherias)
* 578e5164120628ddca9e539851d30d76d7ccdde9: Replace slog with zap for global logging (#1459) (@rvarun11)
* 0cd87076cdf96415e645f655c3ae1da7484a5c8e: Update Cline client config (#1519) (@danbarr)
* 67ee177d0a6bb3004abd80ded4892571a325fe49: fix(deps): update module github.com/onsi/ginkgo/v2 to v2.25.0 (#1523) (@renovate[bot])
* 183844abfadde476da30185e04d7d243dd44e3f9: fix(deps): update module github.com/santhosh-tekuri/jsonschema/v5 to v6 (#1482) (@renovate[bot])
* ae753e74c0d1b888a5b4760ae86208c3e4cd442c: remove the --remote flag while running remote server for better user experience (#1517) (@amirejaz) |
| 0.2.9 | 20 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* dc2e3e32804cf4c7019e4a946b41e5d40a96002e: Add env files support (#1499) (@jhrozek)
* a83fcb930d36e9bc65a7e360d52cfcbecc03e5d4: Fix group migration when runconfig is corrupt (#1506) (@eleftherias)
* f80e528ac8e0d867428f8e37da09affe20ba300e: Fix listing and removing workloads in inconsistent state (#1503) (@eleftherias)
* 32bd4d4ac97a282a3615dd6dd7372eb5a93d640a: Refresh registry data - pulls, stars, etc. (#1502) (@github-actions[bot])
* b3ef9e8baedb0bd4402cb55b2c680952b8c60979: chore(deps): update azure/setup-helm action to v4.3.1 (#1501) (@renovate[bot])
* 4cf325d6d6a2c5c722e50145478b4a9c4cfeda08: fix(deps): update golang.org/x/exp/jsonrpc2 digest to 8b4c13b (#1498) (@renovate[bot])
* 1b121df73ec64e2333cc5f0afc3e8b39de6e1571: fix(deps): update module github.com/mark3labs/mcp-go to v0.38.0 (#1504) (@renovate[bot]) |
| 0.2.8 | 18 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 74b6fa71393659d7d3bfe2ed16b48f0dfee44d4b: fix(deps): update module github.com/onsi/ginkgo/v2 to v2.24.0 (#1462) (@renovate[bot])
* f8e92e94048692779c6359d4b265414377ab56c5: fix(deps): update module go.uber.org/mock to v0.6.0 (#1463) (@renovate[bot]) |
| 0.2.7 | 13 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 9fbd148be9fc13f39957565caa76944b21ba04d5: Add 10 new MCP servers to registry (#1388) (@JAORMX)
* 6b83ac656f89c6e8ac42c6acf3c2a75c2ff2006a: Add new MCP servers from dockyard to registry (#1385) (@JAORMX)
* b0fa371a07e884417d12fdfc729a47f72f2bb10b: Add privileged flag support for MCP containers (#1353) (@JAORMX)
* 5d8d66435c860848652b7c2ba94c20d1771081a3: Add security context for ProxyRunner deployments (#1285) (#1301) (@dhruv-raithatha)
* bce35e0341205ac282fa91dcf8a964833d5ccd2c: Enable state tracking in status files (#1376) (@dmjb)
* 6b74b4ba5618e693bfa71f9185f38b33d334ec4e: Overwrite stdio bridge stdio name and version (#1396) (@JAORMX)
* 91f4ddd8016e9041cfb45e102561bfb9fbd529ca: Refresh registry data - pulls, stars, etc. (#1384) (@github-actions[bot])
* d6b6087d7163250217bf92fe89f65a89a5a779bd: Update github workflows due to swagger changes (#1393) (@lujunsan)
* 9142c961f0e8c16f11ecbf6c36a4902cf228ca19: Update: ingress.md Example Snippet (#1386) (@ShivangamSoni)
* bfe5602a0e8aa37023337334377671559daeb861: feat: Add Google Cloud Run MCP server to registry (#1390) (@JAORMX)
* e8e6f2ef06a6865a2a21961e497d61de3daab516: feat: add proxy stdio subcommand to enable Claude Desktop (#1236) (@yrobla)
* 7306c78cc94e97364671bd2c14b8d0eb55afe0b4: feat: only allow http urls for private registry urls (#1391) (@yrobla)
* 5a7669921a0ce4fb41a78653687542aadaaf9371: fix: add inline tags to embedded BaseServerMetadata structs (#1375) (@JAORMX) |
| 0.2.6 | 12 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 22394eb7e47b479fa729351b2a23af43293a5a1d: Add Windows support to Taskfiles (#1304) (@while1fork)
* 54f60fb09da4d0fa5bea2115ffba4e2de38675fa: Add YAML tags to permission profile structs (#1352) (@JAORMX)
* 4ca529172a2cbdd6c907084b40487915d9d962d0: Add YAML tags to registry types (#1358) (@JAORMX)
* 2fc9c452ce7e14366b085c9811c1d52034259bef: Add `thv ls` as an alias of `thv list` (#1354) (@dmjb)
* 462aa25c2757139515f457174b2b9b1ae367a196: Add a task target to deploy operator from OCP internal registry (#1324) (@jhrozek)
* 68ffe350e49522988ddb7a8a4674161c54c5ee05: Add context7 MCP server to registry (#1364) (@eleftherias)
* 0361ffb278e3a87668b0d9fea72a0ecba1da49df: Add group flag to client removal (#1371) (@eleftherias)
* 77fd5437498d84671dc0927ad7bee19afb6630ae: Add note about experimental features (#1377) (@dmjb)
* 023dfc07c3dd167add9e6f36ff367c5698c0a79d: Add remote server support to registry system (#1363) (@JAORMX)
* 4ebdb4eccecc999d61999f61342a7db39d604ccc: Add support for remote MCP servers in registry (#1350) (@JAORMX)
* 2b321161b2bc5a8f27036c24100033054cf891b5: Also implement consistency checks in ListWorkloads (#1381) (@dmjb)
* 386710d064685f1009b44e3ac8fdd5530239406a: Auto-load required secrets from secrets manager, if they exist (#1335) (@nick-terry)
* a178e95e8f86f8e2e713b0fd3e031b64dc3bbf96: Do mock generation consistently (#1368) (@dmjb)
* 65e5aff16b1fd4da4bfc6a879add764a3a484ad8: Ensure that file statuses reflect proxy and runtime status (#1380) (@dmjb)
* e6e29dc377e68893666a2c79c2d16b91b40dcb0c: Fix bugs found while testing file-based state tracking (#1347) (@dmjb)
* 2466969cfc7440385a85d6e68aa16b3a6f3e2014: Fix build after jwx v2 to v3 upgrade (#1367) (@JAORMX)
* 586202ba5714f681672b8ca858b8a068cd410bdd: Keep grouped servers in sync with client (#1344) (@eleftherias)
* fa6c8a7925c97e92683738957c70a518b33419d0: Make template tests resilient to version upgrades (#1329) (@JAORMX)
* 133d31f92c2ff2d24bfe1a25272f6814cbb8c4b4: Pass cmd parameter to getTelemetryFromFlags instead of nil, allowing config file fallbacks to work correctly for OTEL flags. (@mauriciocoder)
* 329bb1d2a00448feee35e8c0a390b83657da1d8f: Pin container images to specific version tags (#1317) (@JAORMX)
* 6c3b237d4da1c3e7014524d5fe657ee923ec35d2: Prevent config tests from modifying real config (#1374) (@eleftherias)
* d975b471ac6c9f6fb3380c1b29384f293615aada: Refresh registry data - pulls, stars, etc. (#1337) (@github-actions[bot])
* 6469cdc65c0a5675d3a2ab888ed795d36062a96d: Refresh registry data - pulls, stars, etc. (#1339) (@github-actions[bot])
* b5c580cf882a5d6d1fa5983779f9c3a383a53139: Refresh registry data - pulls, stars, etc. (#1343) (@github-actions[bot])
* 05473f8e0722d6b2fecde8ac13e423d24cff3577: Refresh registry data - pulls, stars, etc. (#1361) (@github-actions[bot])
* bc54731b169f97b2a0f202233b3b09e482182c56: Remove deprecated aws-cost-analysis server (#1351) (@danbarr)
* accf16762e647d8759f7116f17b972d2a4accd46: Remove groups dependency on runner package (#1327) (@eleftherias)
* 6478a71669edaabaa5da5144df995962292ebfcc: Remove old occurance of --port in docs (#1372) (@eleftherias)
* 36a32b8632d0c35b985abe00e6792206cdcfd694: Some more taskfile improvements (#1382) (@dmjb)
* 756187f016676c24f6174ba233f2330826f318de: Use gopkg.in/yaml.v3 in ngrok tunnel provider (#1366) (@JAORMX)
* d7a2e5d7664ecb8fba27419bb44dfec080ab55a1: chore(deps): update actions/checkout action to v5 (#1349) (@renovate[bot])
* 04a84bdd3a949fe961c9924730d8e73a2f29b213: chore(deps): update actions/checkout digest to 08eba0b (#1348) (@renovate[bot])
* 948c858ba8d52b2f3eaa7d08a102c43173843b1d: chore(deps): update dependency python to 3.13 (#1340) (@renovate[bot])
* 41da030a9b59358a6459f2c1aba4fabef2974aaa: chore(deps): update python docker tag to v3.13 (#1309) (@renovate[bot])
* 721005c9e06a6429b3338596f3f921e4b5d5aca6: feat: Add MCP serve subcommand for ToolHive server management (#1373) (@JAORMX)
* ddbfbecd267a47e11070a317cb5dc0c50801db80: feat: add functi |
| 0.2.5 | 8 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 0361c440351ca600dec3b68fa72715b098636c5b: Refresh registry data - pulls, stars, etc. (#1323) (@github-actions[bot])
* 9748e518fcf63e3cc374dc90ffd14b51c2a20ccb: feat: adds context7 MCP server (#1318) (@ChrisJBurns)
* 2b4b5ff8682751bdcf20f138b8f5e6f89e6cb26c: fix(deps): update module github.com/docker/go-connections to v0.6.0 (#1319) (@renovate[bot])
* 5b5970468ac9fdc72010779e4db86ffdd617189f: fix(deps): update module golang.org/x/mod to v0.27.0 (#1320) (@renovate[bot])
* 778769a2f5a70e21e7a3170c1b68e53cd8aa4bc5: fix(deps): update module golang.org/x/term to v0.34.0 (#1321) (@renovate[bot])
* f0d96b43e57c0492658f1c87fdf912d8e997e407: fix: sync custom registry configuration (#1314) (@peppescg) |
| 0.2.4 | 7 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 0af5a962243434fd3f2f183aacfe07e173840e45: Add --dry-run and -o flags to thv build command (#1305) (@JAORMX)
* 91eb4f9023ab3c50004cc9b9a985dd44da935797: Add RFC-9728 discovery endpoint (#1287) (@jhrozek)
* 82bda81163291d65dfac9dff9153eb5bb8f11de6: Add several task targets to push images into OCP ImageStreams (#1316) (@jhrozek)
* ae59712989e52f5c12eb1f7310258850ba9056a1: Define types and structure for generic middleware creation (#1298) (@dmjb)
* ff5d97016d99379fdbca87c0074c222ce855a8c5: Support non-OIDC OAuth in thv proxy (#1312) (@eleftherias)
* af249815590b1138c4916cb619863196b68c4a68: feat: track Docker base images in container templates via Renovate regex manager (#1307) (@JAORMX)
* 5bd5a98a44698e6fbf0de7abedb09da8c650868e: fix(deps): update module github.com/cedar-policy/cedar-go to v1.2.6 (#1302) (@renovate[bot]) |
| 0.2.3 | 5 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 8f88da66ed7cd2bc3eb74d6126a1e4d8b54a2861: Add plotting-mcp server to the registry (#1275) (@aponcedeleonch)
* d6c409b4be688105f0d539ee7b01f960e2254283: Add provenance info to plotting-mcp (#1276) (@aponcedeleonch)
* f33c7ec8a3fbe5cc8df3084b23bcefca6a1cd89d: Add the falcon-mcp server to the registry (#1254) (@rdimitrov)
* ff25621539e8a2c2f0951775811c6754bfb42462: Add thv build subcommand for building containers without running them (#1273) (@JAORMX)
* 2e68cab4ec94bcdb81306abe8b3145d1e181dc6a: Ensure MCP servers from the registry match their expected provenance information (#1269) (@rdimitrov)
* 77e3225d164a508ef39a505585c47bce7450e57d: Migrate clients to default group (#1265) (@eleftherias)
* c7c4ab670cd521726328086018bfbb54763101fe: Refresh registry data - pulls, stars, etc. (#1271) (@github-actions[bot])
* 1281a0af3011cc8bc8b3075df5b708c0e31a48ea: Replace runconfig from flags with builder pattern (#1267) (@eleftherias)
* 5fe00a80dee602a43321e54ac8c7234ee2d57fa9: Support client configs with "." in json keys (#1258) (@while1fork)
* d308a74cb640ef82a1c811e13668db1c719cc350: Update Falcon MCP to http and add network profile (#1255) (@danbarr)
* 287a3ed5e230eaa944f4dc27ac981c786aeabaac: Update registry with latest stars and pulls (#1257) (@github-actions[bot])
* 7c86ec55053092a758413891508c6606388dc114: Update registry with latest stars and pulls (#1259) (@github-actions[bot])
* f03143bcc92192dcbf3f44798adffe15071e6463: Update registry with latest stars and pulls (#1260) (@github-actions[bot])
* be0fce9b821a4259e40df8ee714e6d6c3a0982d6: chore(deps): update docker/login-action action to v3.5.0 (#1268) (@renovate[bot])
* 067409d0ab38f5db2cf9424d0133f6e4bbea4e37: chore(deps): update docker/metadata-action action to v5.8.0 (#1251) (@renovate[bot])
* 9de0814c5e34bc32051a8c742a0190576cf90c12: fix(deps): update module github.com/mark3labs/mcp-go to v0.37.0 (#1272) (@renovate[bot]) |
| 0.2.2 | 1 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 677202a13437139e1ee6c973c348e51e3cc098d6: Add --proxy flag to thv logs command to view proxy logs (#1230) (@JAORMX)
* f7d757ced2c23a017da8337ff3168c2e7b98175f: Add postgres-mcp-pro to registry (#1237) (@danbarr)
* d59e595dc866ca941da97400ebbe49928451f476: Add support for Sourcegraph Amp (#1202) (#1204) (@while1fork)
* a9cf08b41a32aa1285f1304713cbaa3b23e8c298: Add the Azure MCP server to the registry (#1238) (@danbarr)
* 981a43a598eb6e1f9d6d5fadd5ec928261ded763: Added apis for exposing servers group feature (#1218) (@amirejaz)
* 84b9c9990a47bfdf598fc19b98a18450dbf9dfad: Allow to set a local registry via file path (#1223) (@rdimitrov)
* ae1deaeb0347a66be00cd6938eb10110fb4efbba: Avoid checking for updates on CI environments and increase check frequency (#1250) (@lujunsan)
* 1ebb69c423cac5d7439d4246ad363bacbc0abee9: Clear the docs before regenerating them (#1245) (@rdimitrov)
* da802a14fd6e816ff914b421274290ebd69b238b: Fix and polish CLI help (#1226) (@danbarr)
* e548195ef279b4f8b7413277a9a8b1920081737b: Fix bug where one workload name is a prefix substring of another (#1234) (@dmjb)
* a4774b9c1f87100654b9644b46906f82bc9edb1d: Fix runconfig for tool filtering (#1241) (@eleftherias)
* 18f2f71f091034fb12fba328f51cb5f9cf3677bf: Group the set/get/reset registry CLI commands into one (#1243) (@rdimitrov)
* e6a161c32d4e5c6decd3824dc92c20ec812779f5: Move GetWorkload/ListWorkload to status manager interface (#1222) (@dmjb)
* 176bfef0faab3f62b6ebdb7ba50ddd06c46cd8b4: Remove duplicate runtime command (#1248) (@eleftherias)
* e0feda491fec0b8a88298c0ac89c16c9948f7515: Sort clients in CLI commands (#1228) (@danbarr)
* 5e9ef2d77dcabaceea9c25c648b7a1e0582ce98a: Stop returning ID outside of the runtime layer, fix k8s ID bug (#1207) (@dmjb)
* 343692d1f7101baea99c1adbce46b5201170f029: Update registry with latest stars and pulls (#1229) (@github-actions[bot])
* 76a3f765cb9c9fb7caac56eb0e78d23f7b0d1201: Update registry with latest stars and pulls (#1240) (@github-actions[bot])
* 37d8c85af42479b52c667fb65760bef7c610c680: Update registry with latest stars and pulls (#1247) (@github-actions[bot])
* 0ec2cb017637bbb3c70e6058f48cd839d17e818f: feat: shorten generated container name (#1220) (@yrobla)
* 042994b096d27407a86a059c711e3f75956c3122: fix(deps): update module github.com/docker/docker to v28.3.3+incompatible (#1221) (@renovate[bot])
* f3ba1576581494999428218adc6e9b34d6f98df7: fix(deps): update module github.com/golang-jwt/jwt/v5 to v5.3.0 (#1235) (@renovate[bot])
* e965503d042aa260ca689fe70519d607c38b4173: fix(deps): update module github.com/prometheus/client_golang to v1.23.0 (#1246) (@renovate[bot]) |
| 0.2.1 | 29 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* ef6dc24028221ff9a6b4f52210c4755fcf30185f: feature/1155/add-windsurf - Enhance client configuration to support Windsurf IDE and IntelliJ plugin (#1156) (@mauriciocoder)
* 73a37079c9a8e165957691dc75c47fdc9539e716: 1179 list servers in a group (#1205) (@amirejaz)
* 6d51fc376218662af41ee1ffde10d098c98ef906: Add group restart (#1198) (@eleftherias)
* 43ca52d52999cb88efdc188d55c13f73121cec7f: Address feedback about Windsurf change (#1214) (@dmjb)
* aae9c82c44b300f43337a0ab6ed1589371ea44cc: Fix tool filtering for SSE missing `data:` prefix. (#1194) (@blkt)
* 7d6f2807cc75ca8702415a0e1f2c6b00f940354a: Implement .thvignore-driven bind mount filtering with tmpfs overlays (#1137) (@JAORMX)
* e66e989ee5bc9e99f726c3b334668423cb745df7: Migrate individual servers to default group (#1186) (@amirejaz)
* 4a240936fc5f2e413174f4bfd1c8482eb32b70f9: Remove duplicated info from observability doc (#1193) (@danbarr)
* c9fd2e73b9d89da78da7ad326fcad1c8a043bc66: Reorganize client files for runtime (#1208) (@dmjb)
* e4dd24469bea952dfc1b464ce097ba9840df0a4d: Update GitHub tool list in registry (#1199) (@eleftherias)
* 8e43ff17ad7e8be19856faaa2f47ba2f63257762: Update registry with latest stars and pulls (#1200) (@github-actions[bot])
* 4bca7dc8c5acbe8c0ad3dc42bd1bcf059c487a06: Update registry with latest stars and pulls (#1201) (@github-actions[bot])
* 3f5b033b55e5719ae25f06898f8cde84c66de892: Update registry with latest stars and pulls (#1203) (@github-actions[bot])
* e350e2c9ddcd3bf2b28fae3ead4eb4f38ff24a5a: Update registry with latest stars and pulls (#1219) (@github-actions[bot])
* 9179827de57be0632b45c775dce2fff4c093ffc5: Use one workload status type consistently (#1213) (@dmjb)
* 73baeb293513f2f879202f1825c9eddee2a644e5: feat: Add group delete and rm --group commands with workload management (#1174) (@amirejaz)
* 81a5654f8619665dac7be7a8426ca632227fc652: feat: properly handle interrupt signal for proxy (#1206) (@yrobla)
* 99e963d010f2537d574e94f986002c17194d7729: feat: properly manage interrupt signal on foreground process (#1185) (@yrobla)
* 1b0f36a8568053020fdbfb744ba1a910b29b4200: fix(deps): update module github.com/mark3labs/mcp-go to v0.35.0 (#1197) (@renovate[bot])
* 071b04923210bd4765e83b93e511cdaaca2683e2: fix(deps): update module github.com/mark3labs/mcp-go to v0.36.0 (#1216) (@renovate[bot])
* 7f3beebff92fc0db6a0da884dc262712eb7ffd8e: fix(deps): update module github.com/olekukonko/tablewriter to v1.0.9 (#1215) (@renovate[bot])
* a266b48dd16407d2d34cfcd8cd752402f5306319: fix(deps): update module sigs.k8s.io/yaml to v1.6.0 (#1181) (@renovate[bot]) |
| 0.2.0 | 23 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 13fdbe2d60cd027b52e5e2d963e4e8b4ab6d1939: 464 add group creation command (#1105) (@amirejaz)
* 674dda55435361e5be016c09e98223ea2370438f: Add .thvignore proposal for secure bind mount filtering (#1055) (@JAORMX)
* 07facb04fbce65adb81dd05e0fe11747c91a0eb2: Add CLAUDE.md and claude settings file (#1130) (@dmjb)
* 3b37a0841baa2e45ac861a6f7c8649e7edadbe0a: Add Kyverno to the MCP registry (#1103) (@rdimitrov)
* 56293d2f3c83bdc09d2036d0cfe5f72057ed0413: Add a custom_metadata property to MCP servers (#1117) (@rdimitrov)
* faa6b54ea5dcfc590f19d4b273642765c75c0b81: Add genai-toolbox to the MCP registry (#1107) (@rdimitrov)
* 423e2036ed75f3de7bbc5d560cbc804518a63868: Adds support for per-component new version checks (#1113) (@lujunsan)
* adbb55e3dd727a049a2a7c616cb3574f823ba7cb: Disable caching the registry (#1115) (@rdimitrov)
* 825ea7ca009364bae4afe442914e98e56a7c04ea: Enforce go mod tidy on renovate updates (#1104) (@dmjb)
* 9f001fc56c66bd6b3a3599489afe0c4e22300a8f: Fix description of the `--otel-insecure` flag (#1120) (@danbarr)
* d7d21851bbd92366ba84ffcc0e199d62d79b9929: Fix the operator docs (#1116) (@rdimitrov)
* 28e320b4144f9d758e404771c21aecf49fea4768: Handle empty client config files (#1095) (@dmjb)
* 52f01ac7818d4417aa2a1664fd832c4431666512: Make transparent proxy healthcheck configurable (#1138) (@JAORMX)
* 633ea75f780ecbe8e9737e962889130f29dd3e6a: Prevent deleting proxy containers on restart (#1083) (@eleftherias)
* 6ca2d3c86b60ed836758533b5f85ba901ac66377: Remove deprecated commands and flags (#1132) (@eleftherias)
* 70d7c44b450c3df66a2dd06f3b86587a32c7fe50: Replace aws-cost-analysis with aws-pricing MCP in registry (#1122) (@danbarr)
* ac708bb389b657280536ed51fe50eb79070ce2a7: Run client config CLI tests sequentially (#1092) (@dmjb)
* e1dde792647b4c9d315e8ba6d08a1fb28e0e9562: Update filesystem MCP and remove default file permissions (#1118) (@danbarr)
* e87cc95b9b1d083af609737d12a4075e5e3fdf30: Update registry with latest stars and pulls (#1099) (@github-actions[bot])
* 594da699f69d663e6fa8cd616d4abc0cfd5e2cad: Update registry with latest stars and pulls (#1109) (@github-actions[bot])
* 1dd6b556ce2e26216b1ab916284cb758313a58d0: Update registry with latest stars and pulls (#1110) (@github-actions[bot])
* 7427451038177a28146ed28807bb4a9f9568d549: Update registry with latest stars and pulls (#1111) (@github-actions[bot])
* abb2c80b92a23410cdd2b759720b3c9f883c55e3: Update registry with latest stars and pulls (#1123) (@github-actions[bot])
* b25ed57a0079b09f06de4b6ffa32e8346ecdea7b: Update registry with latest stars and pulls (#1141) (@github-actions[bot])
* 1fc3e31889df2b0b092a88e33054816365c17518: Use new MCP config path for VS Code 1.102 and later (#1091) (@dmjb)
* e665235cb1d06f40503c8091dabe00edff13f32e: adds mcp links for claude to use and allow for fetch from mcp.io (#1131) (@ChrisJBurns)
* 9e5de1db3318177fa6f3f7f8ed42ceb8b87f070f: chore(deps): update anchore/sbom-action action to v0.20.4 (#1124) (@renovate[bot])
* abaf8b7daf7d5f4ed0144ce46115276725a9f1ed: chore(deps): update helm/kind-action digest to b72c923 (#1139) (@renovate[bot])
* 5af53bb5df7ec2e20b1ad31dfb4c2bfba66a58d4: chore(deps): update sigstore/cosign-installer action to v3.9.2 (#1098) (@renovate[bot])
* 78345e9f5283c35e7c3d9a769ab19df654103a39: feat: add session management for proxy (#1081) (@yrobla)
* 8e00d84232229880a25a009b133ade29bd79fa26: fix(deps): update golang.org/x/exp/jsonrpc2 digest to 542afb5 (#1097) (@renovate[bot])
* b990ee40500f59145b0bde9567b90ad91adcb4fb: fix(deps): update golang.org/x/exp/jsonrpc2 digest to 645b1fa (#1108) (@renovate[bot])
* 5f36e34e6b560d0ca999972641cf5d10f1659a50: fix(deps): update module github.com/golang-jwt/jwt/v5 to v5.2.3 (#1070) (@renovate[bot])
* bb4b252e130d601babd0ee5c8a0fa271f86e0582: fix(deps): update module github.com/onsi/gomega to v1.38.0 (#1140) (@renovate[bot])
* e1962c992a8c3371e0d1a7a496b60d5170fcc659: fix(deps): update module go.opentelemetry.io/otel/exporters/prometheus to v0.59.1 (#1121 |
| 0.1.9 | 17 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* f1084bf19b8fe9c0ed0b07e6579ed77c83bda7b2: Add UI links to README (#1082) (@danbarr)
* a749c54a275cd86688747bf1123c871b490ccdf9: Print transport type in mcpserver-formatted list command (#1088) (@dmjb)
* 64af2b69b2ef5ece958e6fee17b185d72da56a42: Split Runtime interface between Deployer and Runtime (#1060) (@dmjb)
* 4acf5377630c90ede2e0d33172616e608c89ae29: Treat `--proxy-port` conflict as fatal error. (#1085) (@dmjb)
* 8e88d7cdd1f8773c899dca61d5070121fe792a18: Update MCP server descriptions (#1090) (@rdimitrov)
* 9f4aa8ba473803d01601cb68eb99e19c7273613e: Update registry with latest stars and pulls (#1087) (@github-actions[bot])
* 5c638c0459932c61fdc7ea31be0792b838f669e6: chore(deps): update alpine docker tag to v3.22.1 (#1074) (@renovate[bot])
* e4a207cdf9f87c73ba2fb53e2d851d5106630d1c: feat: add -l/--label flag to thv run and thv list commands (#1084) (@JAORMX)
* f09c00bfef23ea1682392ea47bbe68771bf5eeda: fix(deps): update kubernetes packages to v0.33.3 (#1076) (@renovate[bot])
* 4fe0b18764c42d89d2fb7d530c3e2a18191add07: fix(deps): update module github.com/mark3labs/mcp-go to v0.34.0 (#1071) (@renovate[bot]) |
| 0.1.8 | 15 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 5c2916fe02a4739ed1d3d3bd69c0dde036f217ad: Add an API middleware to check for updates on API calls (#1067) (@lujunsan)
* 954df5996594c4eb7aed1b67d740d22b613ad1d4: Add buildkite MCP to registry (#1064) (@rdimitrov)
* da7f19e566cb7fd31fb4e8dfd7c99c1d7ce2a276: Apply network permissions from registry (#1041) (@eleftherias)
* 60775a445baf6d8220c1f82346cadc190fe61567: Cleanup go.sum file (#1054) (@dmjb)
* c593aa525c1e19462b0ae09ce24cae9681b628b7: Do not treat missing network as error when deleting network (#1050) (@dmjb)
* 78654da7216e314ec1f8b2c1b49a1f576cd94f97: Fix elasticsearch in registry (#1061) (@danbarr)
* 5b79a35258f807e6a1724f4870bb98ef1f373e8b: Implement the new User Agent sent to the update service (#1072) (@lujunsan)
* 73b5e7c0351b582612c235618ab365be58b878a9: Insert calls to track status (#1031) (@dmjb)
* d88e8fcbb5c8cb7f4096701256831f5fc92af6e2: Set fetch as streamable http (#1056) (@eleftherias)
* 1415987fd67f838a3843c9e7ce9da0e481cf238b: Update registry with latest stars and pulls (#1044) (@github-actions[bot])
* 8b7bbe06548128f3b0cec2c0876f1dfefe28cb6c: Update registry with latest stars and pulls (#1045) (@github-actions[bot])
* b6cd2abb60cccdd7592c9bef6717f2f572625969: Update registry with latest stars and pulls (#1046) (@github-actions[bot])
* e758fb94d7191818588ace5ca2b608725cc8aa00: Update registry with latest stars and pulls (#1069) (@eleftherias)
* 166b4870dd9aec2bc983836491aa03f5606c8ca8: feat: Split ProxyRunner Capability into Separate Binary for ToolHive on Kubernetes (#1057) (@ChrisJBurns)
* 36b649c195a2a7b41edabb3d5e2cc1aad8d290a9: feat: enhance toolhive k8s e2e tests with multi-tenant tests (#1029) (@ChrisJBurns)
* 2554e78d80eaf13b39a1e70586e882a850c3134d: feat: validate workloads before actually running them (#1047) (@yrobla)
* 29145519c70d31caee5e8f009c39d316aad2c4a0: fix(deps): update golang.org/x/exp/jsonrpc2 digest to 6ae5c78 (#1043) (@renovate[bot])
* 6571e48f52557b08b77f9e0667c2cbe5fd7cba46: fix(deps): update module github.com/sigstore/sigstore-go to v1.1.0 (#1058) (@renovate[bot])
* b3142e7f62b612498a21d5284fdfd007139b8554: fix: propagate mcp vars also for streamable http (#1068) (@yrobla)
* 06afc60d75b65c68fb0a2480997d14cee446aeaf: fix: remove allow_transport from network permissions (#1048) (@yrobla)
* da6bbab1dbf713f7b01beee6b2d40ae77fdca41b: move client configuration commands under `thv client` (#1040) (@amirejaz) |
| 0.1.7 | 10 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 0aceee28ffc662ba84e5cd4a4a0125dedace4cc2: Don't override non-nil PermissionsProfile (#1034) (@jhrozek)
* fc1c8b124356f06b49fdedc2579934811c96a858: Fix discrepancy between the SA name in deploymentForMCPServer and deploymentNeedsUpdate (#1033) (@jhrozek)
* a4990404d1b20fffb7281a13eca3645157e44fa1: Pass the docker client connection to daemon (#1035) (@rdimitrov) |
| 0.1.6 | 10 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* d023d851bf20025aeced8063aebf78c7a4f87c6f: Add permission profile object to API (#1027) (@eleftherias)
* b9d67a7be048b7eae81b0c3ec3cfa37a39e0060c: Add support for private OCI registries (#990) (@rdimitrov)
* 4024285381504f5556efaaefa67073a1abd4dfc9: Introduce builder for RunConfig (#1024) (@eleftherias)
* d858820e6444656c80d102a73fdd9274e58c444a: Move Get/List back into workloads.Manager (#1028) (@dmjb)
* 79327712bcb8732d799a7bfbda54fbfce6e9a66e: Update registry with latest stars and pulls (#1020) (@github-actions[bot])
* 4a55afbb328f7bb81533b07669c33d45060a6bcb: Use `proxy-port` instead of `port` in the CLI (#1022) (@dmjb)
* 19e84340957f9c7d4b86150840bcd9047424aaba: ensures that the mcp configuration is added to client mcp config file (#1026) (@amirejaz)
* 2104e77d36a024c0a72fccb2bd548380838a252b: feat: adds streamable-http support for Toolhive in Kubernetes (#1015) (@ChrisJBurns)
* 86d881a73194b13f4ff3d66ba55fa86a9850a76a: feat: adds yardstick examples for Kubernetes MCPServer (#1017) (@ChrisJBurns)
* da700e3492d85df2da1b5c56b3dd2229f4e11400: fix(deps): update module github.com/cedar-policy/cedar-go to v1.2.5 (#1012) (@renovate[bot])
* 79534701b1ef0cd4617bd810c9e1e5a0e6813591: fix(deps): update module github.com/docker/docker to v28.3.2+incompatible (#1014) (@renovate[bot])
* 0983d0f142685ce42bee733c2eb82da644b4ed3f: fix(deps): update module github.com/sigstore/protobuf-specs to v0.5.0 (#1021) (@renovate[bot])
* 9b8186b56e0b9069eb56dcb1826ad0209ec051af: fix(deps): update module golang.org/x/mod to v0.26.0 (#1019) (@renovate[bot])
* 7abdcab9d0737b2299486f5d81e43d35af80eb79: fix(deps): update module golang.org/x/sync to v0.16.0 (#1013) (@renovate[bot])
* 914f222a11338882256b29fd4bc16bd8d0466e99: fix(deps): update module golang.org/x/term to v0.33.0 (#1016) (@renovate[bot]) |
| 0.1.5 | 9 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 92da6147c2783f921d30ba5cfbbeaccb2178b289: Add experimental support for Rancher Desktop (#993) (@eleftherias)
* c008ab031dc82f815a0646873235fc6609242ba6: Fix bug where the external network is killed during run/restart (#1000) (@dmjb)
* 8b0671c8eaa770a505cbc452b7c72c350ae562ce: Remove last_update date from cli docs frontmatter (#998) (@danbarr) |
| 0.1.4 | 9 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 83417c271f8ac07bcc9486ac193033a3cfcb049b: Attach Network Isolation label to MCP server containers (#967) (@dmjb)
* 55c2f9cc5db040532647789a255e44a4aa669bb6: Consistently use "workload" instead of "container" in the CLI (#988) (@dmjb)
* 28478a71085d06dfa7713815ef7436f8b2966c4a: Create report_bug.md (#989) (@dashtangui)
* 59a1223bcf1a8ab88a6de85b327b016b2ad307c6: Don't attempt to remove proxy containers when network isolation is off (#994) (@dmjb)
* 67823652d5e107d349846ca8b3e45ae7b38f1672: Pin the version of the inspector server (#996) (@dmjb)
* 232b4d364750bc0634b8fe01d0c2a4cf0f2ac67e: Update registry with latest stars and pulls (#991) (@github-actions[bot])
* f0c0dc9fa223fc86a81144e5fe9b2783bcf2f021: fix(deps): update module github.com/charmbracelet/bubbletea to v1.3.6 (#975) (@renovate[bot])
* a87e87cc51874ad1edde30ad4df2db93224db851: skipped the clients which do not have config file or the file is invalid (#986) (@amirejaz) |
| 0.1.3 | 8 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 191deb1debc26815ba1661b8a18120e5f3de00ca: Add AWS docs, diagrams, and cost analysis MCPs (#971) (@danbarr)
* 09dbad7ec527580cab1c3e4f7ad7341b90837ed9: Add Cobra auto-completion for MCP server names (#956) (@JAORMX)
* d41b0993e6f2b15c08d09cb4e405137a57ed184e: Add StacklokLabs sqlite MCP to registry (#976) (@danbarr)
* 93618eed8d16f59f4359ae4b3d3be1ba117bcf41: Change config creation msg to debug log (#937) (@eleftherias)
* 360810253a959eb7857cab469e78f46ac9cb7d93: Demultiplex stdio container streams (#951) (@eleftherias)
* 935374004343038216d384e01103f9681d5b29e0: Only update the config for registered clients (#963) (@eleftherias)
* ab3f6e1c7bcec2e20e51b5474df9c5f52ce55357: Refresh diagrams and README with new icon (#973) (@danbarr)
* 7c83dcfe9dae5c3c82bdbc005f7f8fb9da7a2f41: Remove deprecated MCP servers from the registry (#746) (@nick-terry)
* 8165f51d7433e5f7c61f40d29393cb821b678623: Update registry with latest stars and pulls (#935) (@github-actions[bot])
* 1dad38b40f9549ab06712b1e7834f10b47e41909: Update registry with latest stars and pulls (#946) (@github-actions[bot])
* 426433f430d12679b0da2ec6755a23c818c29b51: Update registry with latest stars and pulls (#955) (@github-actions[bot])
* 43acb134603491ebfb2bb2f82b27497720071f0a: Update registry with latest stars and pulls (#957) (@github-actions[bot])
* ca4c36283ff53cf706258c40bbaa8390d3e86b6c: Update registry with latest stars and pulls (#960) (@github-actions[bot])
* 1589af326123d65ad09ab7aab27601208b38c174: Update registry with latest stars and pulls (#977) (@github-actions[bot])
* cf58cbaa074b00db1da5611f853025bfb8a2ee75: Update the CLI docs generator to add front matter (#943) (@danbarr)
* a7f55073e925038eb2e6b59bb8eaa6639bcd736d: allow to have opaque tokens instead of jwt (#908) (@yrobla)
* 39897db7764faae7f57ccb321388d9ab8fe530a1: chore(deps): pin dependencies (#938) (@renovate[bot])
* cc36a2c4a8ee90c2ffad181813b62661a7f2eb4c: chore(deps): update anchore/sbom-action action to v0.20.2 (#933) (@renovate[bot])
* b3074374ab06e7474fd88ff628296bf61bea2570: enable stdio mcp proxying via streamable http (#939) (@amirejaz)
* cdf85b8d3defd772e079e393c817e19376a39506: feat: adds more operator e2e tests and adds operator cleanup (#941) (@ChrisJBurns)
* 3673b3562e7ed9e3a391dc44321613ae4503e9b2: feat: adds operator e2e tests (#934) (@ChrisJBurns)
* 85b7284bca93a2d7b037404e2581192acf78191f: fix(deps): update module github.com/cedar-policy/cedar-go to v1.2.4 (#930) (@renovate[bot])
* f2bf50e9ecab424a0f01cdc22aa2d7ad680b7ed8: fix(deps): update module github.com/docker/docker to v28.3.1+incompatible (#936) (@renovate[bot])
* 3f11bc20ddfc62b2f840e45161870856f89db0b0: fix(deps): update module github.com/mark3labs/mcp-go to v0.33.0 (#979) (@renovate[bot])
* eacb548bb34d4223fd6c7aacfe9ae66b9cc798e3: fix(deps): update module github.com/olekukonko/tablewriter to v1.0.8 (#949) (@renovate[bot])
* c4118d30a5ec8c7fd2072f7ad5d7277f593180f0: fix: adds a better check for kubernetes runtime (#953) (@ChrisJBurns) |
| 0.1.2 | 2 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* a5a2e28aa057ddc5810dd30790ccb4fe262dc8fb: Fix transport being defaulted to stdio for all servers (#922) (@lujunsan)
* 4f8114bed763db08a479f45fb1074088b94635f8: fix: only override `targetPort` for docker runtime (#928) (@ChrisJBurns) |
| 0.1.1 | 30 de juny del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 5f9a7bffe3b6cf52649162bbe7feb3c29cd339d0: Add JSON schema for the registry (#878) (@danbarr)
* 29484bd417d35d6bec6e65e37837661b756d4c9e: Add a tier classification field to the MCP Server object (#873) (@rdimitrov)
* 93b65aca12b3fc01e3518bbd7cc59b5aff47d510: Add new fields to registry info output (#881) (@danbarr)
* 94327d97f4e5b4e68b8094f102b02f9cb8719acf: Check container runtime during healthcheck endpoint (#890) (@dmjb)
* 98c016d45bb5e59aca65b6184700f3bc64951f51: Don't pull images in k8s (#889) (@dmjb)
* 86d6145897912b29a344b8b0ffb6bdcca28b2ff5: Fix default permission profile for API (#874) (@dmjb)
* a309267b0f561b1c0dd0836fff51a5edd42dce1e: Fix issue with log endpoints (#871) (@dmjb)
* 3c25af65e1902a1f9d2878758e25ae5e222dcb25: Fix issue with starting workload over API (#872) (@dmjb)
* 50f8c9823b468b8ae630b8be79ff5200f34df8ba: Implement option to disable private IP blocking for remote registries (#744) (@nick-terry)
* 091282c999a4de5907b12508bb73929a43d66d2c: Update `thv registry list` output (#879) (@danbarr)
* b69de2e9d9d1bc05335015c9765027b209ee3133: Update registry with latest stars and pulls (#884) (@github-actions[bot])
* 26075b5f2e87093105b5f8438f201fba691725fb: chore(deps): bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.3.0 (#875) (@dependabot[bot])
* 18956ca1710e11c9952d13a8dde039d5d1d147d6: redirect Squid access logs to stdout (#888) (@JAORMX)
* 420671959e49a0c5d1da20d29111829f9da01ebe: removes chrisjburns from k8s auto-assign (#880) (@ChrisJBurns) |
| 0.1.0 | 26 de juny del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 948e8d01c60c009521de4b34928c57db77f8bca4: Add initial developer guide (#845) (@danbarr)
* a4a6cae806b6db4f1ef15a190661c24801a3a20a: Add logs API endpoint (#810) (@eleftherias)
* 62e93095c8fc506f222a34ac3895cdd1c40be283: Add support for environment variables in OpenTelemetry spans (#829) (@mauriciocoder)
* 613bb4794f4a400c0830afc96f399da230e1d35c: Adds new bulk operations for registering/unregistering clients (#837) (@lujunsan)
* c195b62bbf2535c91192e0d1f6647f1b47064b85: Create client config file before writing to it (#857) (@eleftherias)
* 909ab44e8e50675beedaf0c0fd65505d16002a1a: Fix server name extraction logic in HTTP telemetry middleware (#844) (@mauriciocoder)
* 142933621a348470002e82e2fd0393c0b1db3f74: Fix: panic log msg not formatting (#831) (@carlisia)
* ebf7a2efce71ef05e3b99d424b621b4936a9412b: Maps stdio to sse in supported clients (#856) (@amirejaz)
* 3483e431ade450bd9739c5e74ca3a59d4e5a818d: Migrate old auto_discovery to new client registration setup (#853) (@lujunsan)
* 2e7843466de00756dbca67926989de46ff3a7271: More image retrieval into a separate package (#822) (@dmjb)
* 822529c3059a9d12fc81cfd71336ed9a4182e064: Mute the version check output (#823) (@rdimitrov)
* 1bf7ae2eaefa560ef728e509e326f58994cd0b55: Remove out of sync quickstart documentation (#840) (@carlisia)
* 0e10f7a5f2cf8135dc96e8c98a627807ea3076c9: Update registry with latest stars and pulls (#830) (@github-actions[bot])
* cee9ac4218d7e89b3e16e14e14c85e88f85c3b16: Update registry with latest stars and pulls (#847) (@github-actions[bot])
* 377bc3980a1e10f9c8096d8bf8eb51d20f806b71: Use different logic for env vars depending on runtime (#824) (@dmjb)
* 1ef0fc31d6e69bf968251f0dc4018ca876548aaa: changes from review (#855) (@yrobla)
* d93cc6df0ca42f7e64fab88fb761bd2b19426d41: docs: adjust few links that were broken (#859) (@samuv)
* 88705f8ee7245aee14d79d2901cfd0c1b61de682: fix(deps): update module github.com/docker/docker to v28.3.0+incompatible (#833) (@renovate[bot])
* a02c82171ae69588b82e13b15c39cc7cb5d81e68: fix(deps): update module sigs.k8s.io/yaml to v1.5.0 (#843) (@renovate[bot])
* 7fbdf4a0ff0289445b0d0e78bb08448efb789c10: fix(deps): update opentelemetry-go monorepo (#834) (@renovate[bot])
* 728c77a000bb2c7992ff9cf0ba070ca9c03b4eac: fix: do not pass network mode in host, as we rely on network (#854) (@yrobla)
* f23cdc0d59714afc7df87c2151d4e261fe2a6b44: fixes client configuration issues with streamable http (#852) (@amirejaz)
* 5ecd322fca3ae5b880f685d4f98c1b53d4ef1045: implemented new auto-discovery registration for cli (#821) (@amirejaz)
* 6370721781657532386404090bd30bb689876082: removed current auto discovery logic from the cli (#811) (@amirejaz) |
| 0.0.48 | 24 de juny del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* c6a9eed00ac94db80e10ee5d4b82986cb13766e9: Ensure proxy process is killed during workload delete (#818) (@dmjb)
* 4fc82e7e3b3bb14054a636a44a54b34be14ae24a: Fix Windows build error (#812) (@danbarr)
* 46890e072ba622234e5a1bc7043ea91258f8d73e: Implement new bulk API workload endpoints (#809) (@lujunsan)
* 2873152b62bf61698cbcdd0aba1707a046151e67: Rename registry.Server to registry.ImageMetadata (#807) (@dmjb)
* 821fc795297ba85de6aaa6c02c95ca2207544891: Update registry with latest stars and pulls (#816) (@github-actions[bot])
* 409138255360ba6aee1dc48f85c69e0fd27fb9cb: chore(deps): update sigstore/cosign-installer action to v3.9.1 (#813) (@renovate[bot]) |
| 0.0.47 | 12 de juny del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 5a40447b887e2bb34acea7d78a74608e3e5be7fc: Update registry with latest stars and pulls (#705) (@github-actions[bot])
* b5307e2ceacf2c1b37cf1d40d87edbb5b668fb93: Update registry with latest stars and pulls (#718) (@github-actions[bot])
* 70fd795c3386946a27ba7e29ff1657dc642d6802: chore(deps): update docker/metadata-action action to v5.7.0 (#702) (@renovate[bot])
* 6fbccd7ee3f0d5330bfdcdbcd52e289028faa213: chore(deps): update docker/setup-buildx-action action to v3.10.0 (#703) (@renovate[bot])
* 609005da4b8947e678355dacb699e2be40d75290: chore: add workflow to trigger docs update (#713) (@danbarr)
* d57f50de18c7155f941a5677d82ad96520de1f8e: feat: Add OpenTelemetry integration design proposal (#597) (@JAORMX)
* 7f7d00718739c8576c18f5d45c82e0be899cbefa: feat: implement comprehensive OpenTelemetry integration for MCP proxies (#700) (@JAORMX)
* 58fabf9dce47cf07e37de08a360069fd1f2f9e13: fix(deps): update module github.com/1password/onepassword-sdk-go to v0.3.1 (#714) (@renovate[bot])
* 59eee8d058ca6140e531d9509d0a3290f7857481: fix(deps): update module github.com/mark3labs/mcp-go to v0.32.0 (#710) (@renovate[bot])
* 29c7bb9bd389b6879eceaef866625733b4b327b4: fix(deps): update module go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp to v1.36.0 (#706) (@renovate[bot])
* 5529d1e4f9d437a5c8f5fd484c4fe3266e60b91d: fix: add content-type header to API (#711) (@peppescg)
* 8303bc73101ed0617b456b77c8f0cebd3fda3828: fix: add missing Content-Type application/json headers to API responses (#712) (@JAORMX) |
| 0.0.46 | 10 de juny del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* 9c88ba6bfd1b713c300749968be058c42a93146a: Add egress proxy container with automation (#640) (@JAORMX)
* cb1ec2e25b769b3cf829e792cad1249cb9ee1050: Fix OIDC claims extraction for Google auth (#690) (@danbarr)
* 546787548aae1323432a4ebc23ed0949e831ae8f: Update proxy to send the ID token (#691) (@danbarr)
* 045c06df13b3c8bd4d546b1fde9122b88f1ca227: Update registry with latest stars and pulls (#696) (@github-actions[bot])
* 7bd5aefb48be240a6cceb19ae4adc1ec7b429e04: chore(deps): update docker/build-push-action action to v6.18.0 (#701) (@renovate[bot])
* d50515b94a4ba74bafcce252f63c6d2b2b14523f: feat: add --remote-auth-callback-port flag to thv proxy (#689) (@JAORMX)
* 4eef3acfe9de1b4d9a66301ccd96a7b9a24123d4: feat: add custom audit level for structured audit logging (#687) (@JAORMX)
* a8d1b8678f12ccca8321640873e83256e213182e: feat: implement common healthcheck format for proxy runners (#697) (@JAORMX)
* 058d151a95f412504be3e5b17f64cc696016ab1a: fix(deps): update module github.com/cenkalti/backoff/v4 to v5 (#683) (@renovate[bot])
* 747d3c068545265d5a404e51c0ff95786a4a3471: fix(deps): update module github.com/sigstore/protobuf-specs to v0.4.3 (#695) (@renovate[bot])
* c06a04ce24afe6790877401013e6f046ca0842c0: fix: filter VERSION tags to only include v* tags for thv builds (#688) (@JAORMX)
* e82d953bbcc2b2c5433df37c6a2dc3801f8a6fe6: fix: pass Spec.Env as --env flags to MCP server instead of proxy container (#686) (@JAORMX)
* 5ba3308909dc18c2f40b2b5f288b5b2377e59475: fix: reduce update check timeout from 30s to 3s (#698) (@JAORMX) |
| 0.0.45 | 9 de juny del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* a9a50ef060415eaff754123a6bb3d1d101de0fbf: feat: implement parallel test support across the codebase (#682) (@JAORMX)
* a800f25448ba4e9fa2a31564d457f9c5931975d2: feat: set TOOLHIVE_SECRETS_PROVIDER=none for K8s proxy runner pods (#684) (@JAORMX)
* 01ad36e6700f6a5d031f25dc41863cd2cf557d94: fix(deps): update module github.com/cenkalti/backoff/v4 to v5 (#589) (@renovate[bot]) |
| 0.0.44 | 9 de juny del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versió## Changelog
* d0a403f6a5350f68096521ba599a5cb6173209d2: Add the winget install option to README (#678) (@rdimitrov)
* 9ee13f13ca89c90b6cdc2f84eb5349f84815a8a6: Advertise toolhive as thv for winget (#681) (@rdimitrov)
* 450e0ece3e76cb1498f5172c06fed54f6d397bbf: feat: implement none secrets provider for Kubernetes environments (#677) (@JAORMX) |