Aquesta és una versió anterior. La versió actual és la 0.57.0. thv 0.57.0 · Data de publicació:
Fitxers d’instal·lació 0.41.0
| Arquitectura | Tipus | Àmbit | Mida del fitxer | Baixa | SHA256 |
|---|---|---|---|---|---|
| 64 bits | ZIP → Portable · en-US | — | — | github.com | VirusTotal |
| ARM64 | ZIP → Portable · en-US | — | — | github.com | VirusTotal |
L’enllaç i l’SHA256 provenen del manifest comunitari del Gestor de paquets del Windows. Convé comparar el hash del fitxer baixat abans d’executar-lo.
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 (#5978) (@ChrisJBurns)
- Fix review findings in the act claim audit capture (#6096) (@jhrozek)
- Fix workload status poisoning and deflake Envoy AllowPort (#6076) (@JAORMX)
- Frame SSE filter-failure errors as SSE events (#6087) (@jhrozek)
- Gate dual-era e2e on the full replica count (#6057) (@jhrozek)
- Handle per-backend MCP revision in vMCP (client-side dual protocol) (@jhrozek)
- Harden Envoy backend: pin image digest, disable admin interface (#5949) (@ChrisJBurns)
- Harden group e2e workload naming and waits (#6043) (@JAORMX)
- Ignore flaky tools-call-sampling in conformance CI (#5888) (@jhrozek)
- Implement Client Secret Expiry and Renewal for Dynamic Client Registration (#5377) (@Sanskarzz)
- Isolate HTTP transport in vmcp backend tests (#5919) (@JAORMX)
- Make e2e workload readiness waits reliable (#6012) (@JAORMX)
- Make forwarding tests' Legacy dependency explicit (#6051) (@JAORMX)
- Make swagger docgen deterministic (dedupe swag's doubled enums) (@jhrozek)
- Make vMCP MCP-conformant: completions, templates, subscribe, forwarding (#5875) (@JAORMX)
- Normalize opt-in multi-valued JWT claims for Cedar (#5880) (@jhrozek)
- Omit absent JSON-RPC ids instead of emitting null (#6068) (@jhrozek)
- Parse SSE responses per event, not per line (#6088) (@jhrozek)
- Pin forwarding tools/call against a stale-Legacy stateless backend (#6010) (@JAORMX)
- Pin tools/list pagination completeness for >1000-tool vMCP sets (#6021) (@JAORMX)
- Preserve inner error codes through the skills lock-state wrap (#5966) (@samuv)
- Propagate MCPOIDCConfig CA bundle to vmcp OIDC config (#4923) (@ChrisJBurns)
- Propagate W3C trace context in outbound MCP _meta (#5964) (@JAORMX)
- Propagate backend resources/prompts list_changed in vMCP (#5971) (@JAORMX)
- Reallocate rate-limit error code to 429 (#6120) (@JAORMX)
- Record project-scope skill installs in the lock file (#5894) (@samuv)
- Recreate the shared external network on a lost teardown race (#6083) (@jhrozek)
- Regenerate swagger docs to drop duplicate enums (#5970) (@JAORMX)
- Reject JSON-RPC batches to close authz blind spot (#5931) (@JAORMX)
- Reject backend tools with invalid x-mcp-header (#6013) (@JAORMX)
- Reject malformed prior act claims at token exchange (#6114) (@jhrozek)
- Release v0.41.0 (#6125) (@toolhive-release-app[bot])
- Rename --uv-with to --build-with; reject constraints on unsupported ecosystems (#6116) (@JAORMX)
- Replace vMCP Modern kill-switch with a capability gate (#6033) (@JAORMX)
- Resolve aggregator conflicts for resources, templates and prompts (#6075) (@JAORMX)
- Retry dual-era backend startup on a lost port-bind race (#6080) (@jhrozek)
- Return JSON-RPC error for filtered tool calls (#5944) (@JAORMX)
- Route server-to-client MCP messages per session (#5934) (@JAORMX)
- Send current MCP protocol version in readiness probe (#5940) (@JAORMX)
- Serve MCP 2026-07-28 Modern stateless requests through vMCP (#5953) (@jhrozek)
- Serve MCP 2026-07-28 stateless requests through the transparent proxy (#5884) (@jhrozek)
- Share one JSON-RPC error writer across HTTP denial paths (#6086) (@JAORMX)
- Speed up e2e(core) suite with Ginkgo procs and concurrent waits (#6070) (@ChrisJBurns)
- Stop deriving the ingress proxy port from a fixed upstream port (#6069) (@jhrozek)
- Stop splicing whole SSE buffers into error text (#6079) (@jhrozek)
- Stop trimming binary HMAC secrets before use (#6067) (@jhrozek)
- Strip reserved io.modelcontextprotocol/* keys from responses (#6024) (@jhrozek)
- Support MCP 2026-07-28 spec (go-sdk v1.7 via toolhive-core) (#5993) (@JAORMX)
- Translate AllowPort into Envoy egress RBAC policy (#5927) (@ChrisJBurns)
- Unblock main CI: fix vMCP nil-registry panic and CRD docs drift (#5999) (@jhrozek)
- Unify e2e yardstick backend on 1.2.0 (#6004) (@jhrozek)
- Update actions/checkout digest to d23441a (#5982) (@renovate[bot])
- Update anthropics/claude-code-action digest to be7b93b (#5983) (@renovate[bot])
- Update batch e2e test to expect rejection (#5933) (@JAORMX)
- Update github/codeql-action digest to e4fba86 (#5988) (@renovate[bot])
- Update golang/govulncheck-action digest to 032d455 (#5869) (@renovate[bot])
- Update module github.com/stacklok/toolhive-catalog to v0.20260727.0 (#6003) (@renovate[bot])
- Update module google.golang.org/grpc to v1.82.1 [SECURITY] (#5943) (@renovate[bot])
- Update standalone-SSE test for filtered-tool error (#5958) (@JAORMX)
- Use standard JSON-RPC error codes and scrub leaked error text (#6066) (@jhrozek)
- Validate subject tokens from external OIDC issuers (#5995) (@jhrozek)
- Warm ingress Squid peer connections with standby=2 (#5887) (@jhrozek)
- Wire MCP 2026-07-28 revision classification into vMCP (#5913) (@jhrozek)
- Wire token exchange handler into fosite (#5881) (@jhrozek)
- docs: fix missing trailing periods in CONTRIBUTING.md (#5961) (@amir-rezaei)
- operator helm: add opt-in image-discovery Deployment for offline installs (#6047) (@reyortiz3)
- test(e2e): quarantine uvx arxiv test broken by Python mcp 2.0.0 (#6109) (@JAORMX)