Skip to content

Update stacklok/toolhive to v0.46.0 - #1125

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

Update stacklok/toolhive to v0.46.0#1125
renovate[bot] wants to merge 4 commits into
mainfrom
renovate/stacklok-toolhive-0.x

Conversation

@renovate

@renovate renovate Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
stacklok/toolhive minor v0.45.0v0.46.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.46.0

Compare Source

🚀 Toolhive v0.46.0 is live!

An authentication and supply-chain hardening release: embedded auth servers can now trust private CAs for upstream identity providers, plugin upgrades refuse silent signer rotations, and three OAuth flows return the right answer instead of a misleading one.

🆕 New Features

  • You can now point an embedded auth server at an in-cluster identity provider behind an internal CA by setting caBundleRef on an OIDC or OAuth2 upstream, which adds that CA to the system trust roots for discovery, token, user-info, and dynamic client registration calls to that upstream only (#​6428).
    • Upgrade note: apply the operator-crds 0.46.0 chart before (or together with) the operator chart — a stale CRD silently prunes caBundleRef from applied resources instead of rejecting it. Existing manifests that do not set caBundleRef reconcile identically and are not restarted by this upgrade.
  • thv ai-plugin upgrade now refuses to install a plugin update whose signature identity differs from the one recorded in the project lock file — or that is unsigned — reporting signer-change-blocked and exiting 4 until you confirm the rotation with the new --allow-signer-change flag, which re-records the new identity in the lock (#​6401).
    • Available with the experimental plugins lock file behind TOOLHIVE_PLUGINS_LOCK_ENABLED; lock entries with no recorded provenance are unaffected.

🐛 Bug Fixes

  • OAuth clients such as ChatGPT that publish a Client ID Metadata Document listing several token endpoint authentication methods can now sign in against ToolHive's authorization server, which negotiates a mutually supported method instead of rejecting the document outright (#​6400).
  • thv llm setup now fails fast with an actionable "callback port already in use" message instead of silently switching to a random port that your identity provider would reject — free the port or pass --callback-port <port> with a redirect URI registered with your IdP (#​6432).
  • Deployments that provision user accounts out-of-band (for example via SCIM) can now have logins from unprovisioned identities rejected with a proper access_denied OAuth error, so clients stop treating a deliberate denial as a retryable server failure (#​6441).

🧹 Misc

  • The release-notes CI workflow now allowlists the tools its expert subagents actually use, so release-notes generation stops burning turns on permission denials and completes within budget (#​6439).

👋 Welcome to our newest contributor: @​alex-feel 🎉

Full commit log

What's Changed

New Contributors

Full Changelog: stacklok/toolhive@v0.45.0...v0.46.0

🔗 Full changelog: stacklok/toolhive@v0.45.0...v0.46.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.46.0

At a glance

Upstream stacklok/toolhive v0.45.0v0.46.0
Hand-written changes 2 commit(s)
Reference assets refreshed (separate commit)
Gaps 0
Owner @reyortiz3 - identified from merged release PR stacklok/toolhive#6448
Release contributors 3 review requested (see sidebar) · 2 not requested (no docs impact)
Action required Spot-check skill-authored prose for accuracy

Who does what

@reyortiz3 cut this release and owns this PR: review your own changes, chase the remaining approvals, and merge once they're in. You don't need to wait on a review from anyone listed as having no docs impact below.

Everyone with a review request: the target is a review and approval within 2 business days.

Summary of changes

  • Added a "Trust a private CA for the upstream provider" section in docs/toolhive/guides-k8s/embedded-auth-server-k8s.mdx covering the new caBundleRef field on OIDC and OAuth2 upstream providers (Trust private CAs for upstream auth servers toolhive#6428).
  • Added a cross-link from docs/toolhive/guides-vmcp/embedded-auth-server-vmcp.mdx to the new K8s section so vMCP readers using multiple upstreams find the same guidance.
  • Updated the CIMD document rules in both docs/toolhive/guides-k8s/embedded-auth-server-k8s.mdx and docs/toolhive/guides-vmcp/embedded-auth-server-vmcp.mdx to reflect the new token_endpoint_auth_method negotiation: a symmetric shared-secret method is now accepted when the document also publishes token_endpoint_auth_methods_supported containing none (Negotiate CIMD token endpoint auth method toolhive#6400).
  • Skipped thv ai-plugin upgrade --allow-signer-change (Block plugin upgrades that change the signer identity toolhive#6401): the entire ai-plugin command surface remains gated by the experimental TOOLHIVE_PLUGINS_LOCK_ENABLED env var per pkg/plugins/feature_gate.go at the tag; the auto-generated CLI reference already carries the new flag.
  • No hand edits for thv llm setup fail-fast on busy callback port (Fail LLM setup when callback port is busy toolhive#6432): thv llm setup has no hand-written guide; the auto-generated CLI reference already documents --callback-port.
  • No hand edits for the access_denied mapping on deliberate provisioning refusal (fix(authserver): map deliberate provisioning refusal to access_denied toolhive#6441): the change is an internal UserStorage contract with no user-visible surface in the docs.

No docs impact identified

@samuv @jerm-dro - your changes in this release didn't appear to affect the docs, so no review is requested and you're not blocking this PR. Please skim the diff anyway and comment if something of yours was missed or misjudged.

Run cost

Session Turns Cost (USD)
Generation 67 $7.1299
Editorial review 44 $3.9661
Total 111 $11.0960
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 Aug 27, 2026
@vercel

vercel Bot commented Aug 27, 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 Aug 27, 2026 7:23pm

Request Review

@github-actions
github-actions Bot marked this pull request as draft August 27, 2026 19:07
@claude

claude Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

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


Upstream release docs sync: stacklok/toolhive v0.46.0

Committed 9cb4925 on renovate/stacklok-toolhive-0.x. Build and lint pass.

Impact map (verified against source at tag v0.46.0)

Change PR Docs outcome
Trust private CAs for upstream auth servers stacklok/toolhive#6428 Added "Trust a private CA for the upstream provider" section in guides-k8s/embedded-auth-server-k8s.mdx; cross-linked from guides-vmcp/embedded-auth-server-vmcp.mdx
Negotiate CIMD token_endpoint_auth_method stacklok/toolhive#6400 Updated CIMD document-rule wording in both guides-k8s/embedded-auth-server-k8s.mdx and guides-vmcp/embedded-auth-server-vmcp.mdx
Block plugin upgrades that change signer identity stacklok/toolhive#6401 Skipped (readiness gate): the entire thv ai-plugin surface is gated by TOOLHIVE_PLUGINS_LOCK_ENABLED per pkg/plugins/feature_gate.go; auto-generated CLI reference carries --allow-signer-change
Fail LLM setup when callback port is busy stacklok/toolhive#6432 No hand-edit needed: no hand-written thv llm setup guide; auto-generated CLI reference is current
Map provisioning refusal to access_denied stacklok/toolhive#6441 Not docs-facing: internal UserStorage sentinel contract, no reader surface
Scope release-notes tool allowlist stacklok/toolhive#6439 CI-only, not docs-facing

Files changed (hand-written)

  • docs/toolhive/guides-k8s/embedded-auth-server-k8s.mdx
  • docs/toolhive/guides-vmcp/embedded-auth-server-vmcp.mdx

Todos

  • Phase 1: Discovery
  • Phase 2: Deep-dive PRs, verify against source
  • Phase 3: Audit existing docs, build impact map
  • Phase 4: Implement hand-written doc edits
  • Phase 5: Validate (npm run build clean, npm run eslint clean, npm run prettier:fix clean)
  • Write artifacts (SUMMARY.md, REVIEWERS.json)
  • Commit and push

Branch: renovate/stacklok-toolhive-0.x ·

- Add a "Trust a private CA for the upstream provider" section to the
  K8s embedded auth server guide covering the new caBundleRef field on
  OIDC and OAuth2 upstream providers.
- Cross-link the vMCP embedded auth server guide to the new K8s section.
- Update the CIMD document rules on both pages to reflect
  token_endpoint_auth_method negotiation via a supported-methods list
  containing "none".

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@claude

claude Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

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


Editorial review complete

  • Identify files changed in the previous commit
  • Run /docs-review on hand-edited docs (skip auto-generated files)
  • Apply actionable editorial fixes
  • Format with npm run prettier:fix and lint with npm run eslint:fix
  • Commit and push

Findings and fixes

Factual correction (both files). The v0.46.0 draft claimed that a CIMD document declaring a symmetric shared-secret token_endpoint_auth_method (client_secret_post / _basic / _jwt) could be salvaged by pairing it with a token_endpoint_auth_methods_supported list containing none. Verified against the upstream source (pkg/oauthproto/cimd/fetch.go:212-221ValidateClientMetadataDocument runs during fetch and rejects those three methods outright, before the decorator's negotiation ever sees the document) and PR #6400 / issue #6278 (ChatGPT's example uses private_key_jwt, an asymmetric method). Rewrote the rule and the matching troubleshooting entries in both files: none or omitted is always accepted; other asymmetric methods are negotiated down to none via the supported list; symmetric shared-secret methods are always rejected.

Editorial polish (K8s file only).

  • docs/toolhive/guides-k8s/embedded-auth-server-k8s.mdx:671 — use DCR (already introduced on line 29) in the new CA-trust section for consistency with the rest of the page.
  • docs/toolhive/guides-k8s/embedded-auth-server-k8s.mdx:716 — "independent from" → "independent of".

Pushed as ed77850 to renovate/stacklok-toolhive-0.x.

- The upstream fetcher rejects symmetric shared-secret
  token_endpoint_auth_method values outright; only asymmetric methods
  (for example, private_key_jwt) can be negotiated down to none via the
  token_endpoint_auth_methods_supported list. Rewrite the rule and the
  two troubleshooting entries to match.
- Use the already-introduced DCR acronym in the new CA-trust section
  and change "independent from" to "independent of".

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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