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

stacklok / toolhive / 30149374928
69%
main: 69%

Build:
Build:
LAST BUILD BRANCH: bump-toolhive-core-schema-fidelity
DEFAULT BRANCH: main
Ran 25 Jul 2026 07:36AM UTC
Jobs 1
Files 836
Run time 1min
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

25 Jul 2026 07:27AM UTC coverage: 69.385% (-0.003%) from 69.388%
30149374928

Pull #5981

github

jhrozek
Send required Accept header on raw MCP requests

The k8s multi-replica tier drives Modern requests at a real go-sdk v1.7
streamable-HTTP backend (yardstick), which rejects any POST whose Accept
header does not list both application/json and text/event-stream with
HTTP 400 -- before any classification. The raw client sent no Accept
header, so every k8s request got 400 on request 0.

This was masked in local reproduction because curl auto-sends
"Accept: */*", which go-sdk's streamableAccepts treats as satisfying
both media types. Verified on the wire: with Accept absent the backend
returns 400 "Accept must contain both ...", with it present, 200.

The other tiers never hit a real go-sdk HTTP backend -- the transparent
proxy's in-process mock and the streamable proxy's stdio backend both
ignore Accept -- which is why they passed and hid this. thv itself is
correct: it transparently forwards the client's headers; a real MCP
client always sends Accept, so this deployment works in production. The
gap is in the test harness, not the proxy.

Default Accept in SendRaw alongside Content-Type (a transport-level
requirement for both eras), overridable by a caller that sets its own.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Pull Request #5981: Add live e2e tests for dual-era stateless proxy behavior

9 of 9 new or added lines in 1 file covered. (100.0%)

151 existing lines in 11 files now uncovered.

79268 of 114244 relevant lines covered (69.38%)

82.8 hits per line

Coverage Regressions

Lines Coverage ∆ File
72
79.05
0.0% pkg/vmcp/client/client.go
48
6.63
0.26% pkg/container/images/registry.go
6
20.11
-3.45% pkg/client/manager.go
6
76.15
-5.5% pkg/secrets/keyring/keyctl_linux.go
4
57.3
-2.25% pkg/transport/bridge.go
4
61.78
-0.17% pkg/workloads/manager.go
3
73.79
-2.91% pkg/state/local.go
2
96.05
0.0% pkg/authserver/storage/memory.go
2
93.94
-6.06% pkg/foreach/foreach.go
2
88.77
0.0% pkg/transport/proxy/transparent/transparent_proxy.go
2
94.77
-1.31% pkg/vmcp/composer/dag_executor.go
Jobs
ID Job ID Ran Files Coverage
1 30149374928.1 25 Jul 2026 07:36AM UTC 836
69.38
GitHub Action Run
Source Files on build 30149374928
  • Tree
  • List 836
  • Changed 17
  • Source Changed 3
  • Coverage Changed 17
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30149374928
  • Pull Request #5981
  • PR Base - main (#30117380028)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc