Skip to content

Update stacklok/toolhive to v0.40.0#1043

Open
renovate[bot] wants to merge 5 commits into
mainfrom
renovate/stacklok-toolhive-0.x
Open

Update stacklok/toolhive to v0.40.0#1043
renovate[bot] wants to merge 5 commits into
mainfrom
renovate/stacklok-toolhive-0.x

Conversation

@renovate

@renovate renovate Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
stacklok/toolhive minor v0.38.0v0.40.0

After this PR opens, .github/workflows/upstream-release-docs.yml adds source-verified content edits for the new release. For stacklok/toolhive, the same workflow also syncs reference assets (CLI help, Swagger) and regenerates the CRD MDX pages.


Release Notes

stacklok/toolhive (stacklok/toolhive)

v0.40.0

Compare Source

🚀 Toolhive v0.40.0 is live!

This release hardens Virtual MCP authorization end-to-end — explicit HTTP 403 denials, a unified authz gate, and complete capability pagination — while laying the groundwork for agentic auth (RFC 8693 token exchange, the MCP 2026-07-28 revision) and moving MCP protocol handling onto the official modelcontextprotocol/go-sdk. It also fixes network isolation silently breaking --network host workloads and closes an SSRF gap in upstream Dynamic Client Registration.

🆕 New Features

  • The embedded authorization server gains an RFC 8693 OAuth 2.0 Token Exchange grant handler, so an agent can exchange a user's token for a delegated token carrying both the user (sub) and the acting agent (act.sub) — the foundation for agentic delegation (not yet wired into the server) (#​5822).
  • ToolHive's request-parsing layer now understands the upcoming stateless MCP 2026-07-28 ("Modern") revision — a revision classifier, the Mcp-Method/Mcp-Name header and _meta vocabulary, and server/discover/subscriptions/listen authz registration — dormant until later slices wire it into proxy routing, with no change to existing traffic (#​5834).

🐛 Bug Fixes

  • Virtual MCP now returns an explicit HTTP 403 (with a JSON-RPC error code 403 and a "denied by authorization policy" message) when a Cedar policy denies a tools/call, resources/read, or prompts/get, instead of a misleading -32602 "not found" at HTTP 200 — and records the denial as denied in the audit log (#​5841).
  • thv run --network host no longer silently loses outbound connectivity: network isolation (on by default) is dropped for host/none networking with a warning, and explicitly combining --isolate-network=true with --network host now fails fast with an actionable error instead of starting a broken workload (#​5794).
  • The Virtual MCP authz gate is hardened so the gate decision, the enforced decision, and the backend forward all derive from a single argument decode, and a backend tool named execute_tool_script now fails loudly instead of being silently shadowed by the code-mode virtual tool (#​5850).
  • Virtual MCP capability discovery now follows list pagination cursors to exhaustion, so backends advertising more than one page (>1000 tools, resources, or prompts) no longer have their extra capabilities silently dropped from routing and clients (#​5851).
  • Upstream Dynamic Client Registration (DCR) discovery and registration calls are now routed through a private-IP-guarded HTTP client, closing an SSRF vector (CWE-918) — safe by default and honoring the upstream's existing allow_private_ips setting (#​5826).
  • Multi-upstream embedded authservers with two or more OAuth2 DCR upstreams requesting the same scopes now register a distinct client per upstream instead of silently reusing the first upstream's credentials, fixing failed or misattributed authorization (#​5824).

🧹 Misc

  • Migrated MCP protocol handling from mark3labs/mcp-go to the go-sdk-backed toolhive-core/mcpcompat compatibility shim (a pure, atomic import swap with no call-site logic changes), moving ToolHive onto the official modelcontextprotocol/go-sdk. Note: the stdio bridge currently forwards only progress/message notifications, so tools/list_changed and similar notifications are dropped — dynamic-capability servers may show stale lists until clients re-list (#​5729).
  • Resolved temp-dir symlinks in the plugin adapter tests so task test passes on macOS (/var/private/var); product code is unchanged (#​5849).

📦 Dependencies

Module Version
github.com/stacklok/toolhive-core v0.0.29
github.com/stacklok/toolhive-catalog v0.20260716.0
github/codeql-action 7188fc3
golang.org/x/exp/jsonrpc2 9ea1abe
Full commit log

What's Changed

Full Changelog: stacklok/toolhive@v0.39.0...v0.40.0

v0.39.0

Compare Source

What's Changed

Full Changelog: stacklok/toolhive@v0.38.0...v0.39.0


Configuration

📅 Schedule: (in timezone America/New_York)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Never, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.


Docs update for toolhive v0.40.0

At a glance

Upstream stacklok/toolhive v0.38.0v0.40.0
Hand-written changes 2 commit(s)
Reference assets refreshed (separate commit)
Gaps 0
Release contributors 4 auto-assigned (see sidebar)
Action required Spot-check skill-authored prose for accuracy

Summary of changes

  • Updated docs/toolhive/guides-cli/network-isolation.mdx to document the v0.40.0 reconciliation between --isolate-network and --network host/--network none: added an interaction table + change-note, plus a forward-reference in "How the default works".

Run cost

Session Turns Cost (USD)
Generation 75 $5.5353
Editorial review 24 $1.7730
Total 99 $7.3083
How this PR was built

Two Claude Opus sessions run per release: a generation pass
(upstream-release-docs skill, 6 phases) followed by a fresh-
context editorial pass (docs-review). Prettier/ESLint
auto-fixes are applied after.

Auto-synced paths — do not hand-edit these in review:

  • static/api-specs/
  • docs/toolhive/reference/cli/ (toolhive only)
  • docs/toolhive/reference/crds/

If a "Gaps needing human context" section is present above,
each entry includes a paste-ready Helper prompt for local
Claude
a reviewer can use to resolve the gap.

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@renovate renovate Bot added the autogen-docs Pull requests generated by automated release workflows label Jul 17, 2026
@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs-website Ready Ready Preview, Comment Jul 17, 2026 8:47pm

Request Review

@github-actions
github-actions Bot marked this pull request as draft July 17, 2026 20:34
@claude

claude Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Claude finished @renovate[bot]'s task in 6m 50s —— View job


Upstream release docs — toolhive v0.38.0 → v0.40.0

Todo

  • Phase 1: Discover — enumerate release PRs, classify by doc impact
  • Phase 2: Deep dive — read PRs, verify behavior in source at v0.40.0
  • Phase 3: Docs audit — scan existing docs for gaps and updates
  • Phase 4: Implement — add --network host / --isolate-network interaction to CLI network-isolation guide
  • Phase 5: Format + lint (prettier:fix, eslint — both clean)
  • Phase 6: SUMMARY.md written and commit pushed

Summary of changes

  • Updated docs/toolhive/guides-cli/network-isolation.mdx — new "Interaction with --network host and --network none" section (behavior table + v0.40.0 change note) plus a forward-reference from "How the default works", covering stacklok/toolhive#5794.

Categorized changes (v0.38.0 → v0.40.0)

User-facing docs impact:

  • Reconcile network isolation with network mode toolhive#5794--network host / --isolate-network reconciliation. Isolation is dropped (with warn) for host/custom modes and silently for none; explicit --isolate-network=true + --network host fails fast. Hand-edited in guides-cli/network-isolation.mdx.
  • Add Bedrock compatibility flag to thv llm setup toolhive#5832 (v0.39.0) — new --bedrock-compat / --enable-1m / --models flags on thv llm setup and thv llm config set. Fully covered by the auto-synced CLI reference (docs/toolhive/reference/cli/thv_llm_setup.md, thv_llm_config_set.md); no prose guide exists for the thv llm command surface, so no prose gap unique to this feature.

Auto-synced only (no hand edit needed):

  • Guard upstream-DCR HTTP calls against SSRF toolhive#5826 — DCR SSRF guard extends allow_private_ips semantics; captured in static/api-specs/toolhive-api.yaml.
  • Registry schema now advertises cargo registry type and a plugins array (from toolhive-core release); captured in toolhive-api.yaml and upstream-registry.schema.json.

No user surface / no docs impact:

Pushed as b65dbfe on renovate/stacklok-toolhive-0.x.
· Branch

@claude

claude Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Claude finished @renovate[bot]'s task in 3m 12s —— View job


Editorial review — toolhive v0.40.0 docs

Todo

  • Identify files changed by the previous commit (only docs/toolhive/guides-cli/network-isolation.mdx)
  • Run /docs-review over the hand-edited doc
  • Verify facts against upstream stacklok/toolhive v0.40.0 (PR #5794 body + pkg/runner/config_builder.go:1234)
  • Apply actionable fixes
  • Run prettier:fix and eslint (both clean)
  • Commit and push (c2ab38b)

Findings and fixes

Content is factually accurate against the PR body and reconcileNetworkIsolation in upstream — bridge / host-or-custom (implicit=warn, explicit=fail-fast) / none=silent-drop all match the code. No new claims introduced.

Two clarity fixes in the "Changed in v0.40.0" admonition:

  1. "split them into two invocations depending on which one you actually need" was ambiguous — the user has to pick one flag, not run two thv run calls. Rewrote to name the two exits directly (matching how the table already frames them).
  2. "broke outbound DNS and connectivity on the next re-create" — "on the next re-create" reads as a floating qualifier without prior context. Simplified to just "breaking outbound DNS and connectivity", which still matches the PR body's claim without asking the reader to hold state.

Left as-is (considered and skipped):

  • The table wording (host or custom / bridge unset or bridge / none) — correct against IsBridgeMode ("" | "bridge" | "default") and the release notes; default is a niche synonym not worth surfacing.
  • The forward reference at the top of the file and the section anchor — anchor is auto-generated by Docusaurus and preview build is green.
  • Opening sentence of the new section ("bridge-network construct... container-runtime bridge") — dense but technically correct for the developer/DevOps audience.

Pushed as c2ab38b on renovate/stacklok-toolhive-0.x.
· Branch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autogen-docs Pull requests generated by automated release workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant