• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stacklok / toolhive / 27420623183
67%

Build:
DEFAULT BRANCH: main
Ran 12 Jun 2026 02:08PM UTC
Jobs 1
Files 754
Run time 3min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

12 Jun 2026 02:02PM UTC coverage: 66.531% (+0.05%) from 66.478%
27420623183

push

github

web-flow
Add request timeouts to MCP proxy servers (#5501)

* Add request read timeouts to MCP proxy servers

The three proxy HTTP servers and the management API server set
ReadHeaderTimeout but no ReadTimeout, so a slow or stalled client
upload could hold a connection and its resources open until the
client itself gave up. This adds ReadTimeout (default 30s, matching
the vMCP server) to bound the full request-read phase.

ReadTimeout only governs reading the request, so it never affects
long-lived SSE response streams. WriteTimeout is applied only to the
httpsse proxy, where the long-lived stream is a GET on a known path
that the existing transportmiddleware.WriteTimeout clears the write
deadline for. The streamable proxy (SSE over POST), transparent proxy
(arbitrary backend paths), and management API server (multi-minute
image-pull responses) intentionally omit WriteTimeout, since a blanket
write deadline would sever their legitimate long responses.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Make proxy read/write timeouts configurable via RunConfig

The proxy request timeouts added in the previous change were hardcoded
to 30s. Operators fronting backends that accept large or slow uploads
need to tune the read timeout, so this plumbs both durations from
RunConfig through the transport layer to the proxy constructors,
mirroring the existing SessionTTL wiring.

ProxyReadTimeout and ProxyWriteTimeout are stored on RunConfig as Go
duration strings (unit-explicit on the wire) and resolved in Runner.Run
into transport.Config. The read timeout reaches all three proxies; the
write timeout only reaches the SSE proxy, since the streamable and
transparent proxies intentionally do not set a write deadline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Add --proxy-read-timeout and --proxy-write-timeout run flags

Expose the configurable proxy timeouts on the thv run command so users
can tune them without hand-editin... (continued)

25 of 52 new or added lines in 5 files covered. (48.08%)

869 existing lines in 10 files now uncovered.

67968 of 102160 relevant lines covered (66.53%)

62.4 hits per line

Uncovered Changes

Lines Coverage ∆ File
27
49.69
0.31% pkg/transport/stdio.go

Coverage Regressions

Lines Coverage ∆ File
634
45.55
0.95% cmd/thv-operator/api/v1beta1/zz_generated.deepcopy.go
96
6.1
-0.47% cmd/thv-operator/api/v1alpha1/zz_generated.deepcopy.go
72
6.64
-0.14% cmd/thv-operator/app/app.go
27
75.19
0.0% cmd/thv-operator/api/v1beta1/virtualmcpserver_types.go
16
83.16
0.18% pkg/authz/authorizers/http/core.go
13
97.37
0.0% pkg/authz/authorizers/cedar/core.go
6
76.15
-5.5% pkg/secrets/keyring/keyctl_linux.go
2
93.94
-6.06% pkg/foreach/foreach.go
2
82.29
-0.21% pkg/vmcp/composer/workflow_engine.go
1
92.86
0.0% cmd/thv-operator/api/v1beta1/mcpremoteproxy_types.go
Jobs
ID Job ID Ran Files Coverage
1 27420623183.1 12 Jun 2026 02:08PM UTC 754
66.53
GitHub Action Run
Source Files on build 27420623183
  • Tree
  • List 754
  • Changed 21
  • Source Changed 16
  • Coverage Changed 21
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27420623183
  • 7fac6bc3 on github
  • Prev Build on main (#27379407427)
  • Next Build on main (#27423098940)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc