chore(deps): update dependency stacklok/toolhive to v0.41.0 - #2537
Open
renovate[bot] wants to merge 2 commits into
Open
chore(deps): update dependency stacklok/toolhive to v0.41.0#2537renovate[bot] wants to merge 2 commits into
renovate[bot] wants to merge 2 commits into
Conversation
5 tasks
Contributor
Author
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.40.1→v0.41.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
stacklok/toolhive (stacklok/toolhive)
v0.41.0Compare Source
🚀 Toolhive v0.41.0 is live!
This release delivers first-class support for the new MCP 2026-07-28 ("Modern") specification revision across every ToolHive surface — the transport proxies, the transparent proxy, and Virtual MCP now recognize, serve, and bridge both the session-based 2025-11-25 revision and the new stateless revision, including mixed client×backend combinations. It also ships a reproducible project-skills workflow (
thv skill sync/upgradewith a lock file and Sigstore groundwork), an opt-in Envoy network-isolation backend, and RFC 8693 token exchange with full delegation-chain auditing.operator.rbac.scope=namespace) failhelm upgradeat render time unless they setoperator.features.storageVersionMigrator: false; cluster-scoped installs need no action (#5603)-32600instead of being executed; batches previously bypassed authorization, tool filtering, and audit, and MCP removed batching in 2025-06-18, so send individual requests (#5931)-32029to429— the MCP 2026-07-28 spec reserves-32020..-32099; clients branching onerror.code == -32029must match429(the HTTP 429 status,Retry-Afterheader, anddata.retryAfterSecondsare unchanged) (#6120)Migration guide: storage version migrator default
The chart now enables the StorageVersionMigrator controller by default (
operator.features.storageVersionMigrator: true), and a new chart validation rejects that combination withoperator.rbac.scope=namespace— the controller cannot sync its cluster-scoped CRD informer under namespace RBAC. Affected users seehelm install/helm upgradefail with:Cluster-scoped installs (the chart default) need no action: the operator pod restarts once with the migrator enabled and begins automatically trimming
status.storedVersionson ToolHive CRDs — the precondition for a future release to drop deprecated API versions. No new pods or RBAC objects are created. To opt out anyway, setoperator.features.storageVersionMigrator: false.Namespace-scoped installs must opt out explicitly:
Before
After
Migration steps
helm get values <release> -n <ns>— you are affected ifoperator.rbac.scopeisnamespaceandoperator.features.storageVersionMigratoris unset ortrue.operator.features.storageVersionMigrator: falseto your values (or pass--set operator.features.storageVersionMigrator=false).helm upgradeas usual.status.storedVersionsby other means (e.g. a one-off run of kube-storage-version-migrator) before any future release drops a deprecated CRD version. Seedocs/operator/storage-version-migration.md.PR: #5603
Migration guide: JSON-RPC batch rejection and rate-limit error code
Batch requests (#5931) — affects only clients sending JSON-RPC batches (removed from MCP in 2025-06-18); no conformant 2025-11-25 or 2026-07-28 client emits them.
Before
[{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{...}}, {"jsonrpc":"2.0","id":2,"method":"tools/call","params":{...}}]After
Each request must be its own POST; a batch now returns:
{"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"Invalid Request: batch requests are not supported"}}Rate-limit error code (#6120) — affects only clients branching on the JSON-RPC
error.codefor backoff.Before
{"jsonrpc":"2.0","error":{"code":-32029,"message":"rate limited","data":{"retryAfterSeconds":30}}}After
{"jsonrpc":"2.0","error":{"code":429,"message":"rate limited","data":{"retryAfterSeconds":30}}}Migration steps
error.code == 429— or, better, key off the HTTP 429 status ordata.retryAfterSeconds, which are stable across versions.Upgrade notes (not breaking, worth knowing)
HMACSecretRefssecret file carried leading/trailing whitespace bytes, previously-minted authorization codes and refresh tokens fail validation once after upgrade and clients re-authenticate; ensure the mounted secret is exactly the raw random bytes (no trailing newline).-32603),idomitted rather thannull, generic denial messages, and filtered tool calls answered with-32602over HTTP 200 instead of a bodyless 400 — monitoring or scripts keyed to the old malformed shapes need updating.🆕 New Features
MCP 2026-07-28 ("Modern") spec support
885e8b1)input_requiredseam lands as groundwork for MRTR (SEP-2322) (#6074)io.modelcontextprotocol/*keys are stripped from backend response_metaso backends cannot spoof protocol metadata (#6024)_meta(SEP-414), joining backend spans to the client→proxy→server trace (#5964)x-mcp-headerannotations (SEP-2243) are rejected as the spec requires (#6013)MCP-Protocol-Versionheader validation for the streamable proxy (#5957)Virtual MCP conformance and aggregation
list_changednotifications are consumed and propagated to clients for tools (#5965) and for resources and prompts (#5971)Reproducible project skills
toolhive.lock.yamllock file (#5892, #5893, #5894)thv skill syncrestores a project's pinned skill set on any machine and verifies on-disk content in CI (#5895)thv skill upgradere-resolves pinned skills to newer content without silent lock drift (#5896)Authentication and token exchange
actclaim and full delegation chain, so "agent X acting for Alice" is distinguishable from Alice (#6046, refined in #6096 and adopted as the toolhive-core canonical schema in #6107)actclaims are rejected at token exchange per RFC 8693 §4.1 (#6114)Network isolation
TOOLHIVE_NETWORK_PROXY=envoy) consolidates egress and ingress into one container (#5907, seam extracted in #5906)AllowPortpermissions translate into Envoy egress RBAC policy, matching Squid's port ACLs (#5927)Other
thv runandthv buildgain a repeatable--build-withflag to constrain build-time dependencies (e.g.--build-with 'mcp<2'foruvx://packages) (#6111, #6116)🐛 Bug Fixes
email(#6022)MCPOIDCConfig.caBundleRef, fixing OIDC discovery against self-signed issuers (#4923)event: message, unbreaking spec-lenient clients such as@ai-sdk/mcp(#5954)tag@digest) no longer fail at container create (#5978)thv listno longer poisons workload status when transient Docker errors occur (#6076), the ingress proxy port is no longer derived from a fixed upstream port (#6069), and concurrent isolated-workload startups no longer race on network creation and ingress DNS (#6071, #6083)thv runin warn mode (#6063)oneOf/anyOf/enumkeywords through vMCP ingestion (#5990)🧹 Misc
9ef27fa, #5970)📦 Dependencies
google.golang.org/grpcgithub.com/klauspost/compressgithub.com/stacklok/toolhive-catalogactions/checkoutd23441agithub/codeql-actione4fba86golang/govulncheck-action032d455anthropics/claude-code-actionbe7b93b👋 Welcome to our newest contributors: @amir-rezaei and @stantheman0128 🎉
Full commit log
What's Changed
New Contributors
Full Changelog: stacklok/toolhive@v0.40.1...v0.41.0
🔗 Full changelog: stacklok/toolhive@v0.40.1...v0.41.0
Configuration
📅 Schedule: (in timezone Europe/London)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.