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

stacklok / toolhive / 27966214826
67%

Build:
DEFAULT BRANCH: main
Ran 22 Jun 2026 04:07PM UTC
Jobs 1
Files 766
Run time 2min
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

22 Jun 2026 04:01PM UTC coverage: 67.125%. Remained the same
27966214826

push

github

web-flow
Forward passthrough headers on the Serve path (#5561)

* Restore session-stable passthrough-header forwarding on the Serve path

On the Serve path (core.New + Serve), tool/resource calls route through
the shared backend client (pkg/vmcp/client) rather than through
per-session backend connections. The shared client was not reading the
passthrough headers captured by headerforward.CaptureMiddleware, and
even if it had, it would read them per-request rather than using the
session-creation-time snapshot — a behavioral and security regression vs.
the legacy per-session-connection path (#5560).

- Export MergeForwardedHeaders from pkg/vmcp/headerforward so both the
  session connector (legacy path) and the shared backend client (Serve
  path) share the same restricted-header and collision-detection rules.
- Teach httpBackendClient.defaultClientFactory to merge
  ForwardedHeadersFromContext(ctx) with target.HeaderForward, enabling
  the Serve path to forward captured headers to backends.
- Add capturedPassthroughHeaders sync.Map on Server (node-local, never
  persisted to Redis per security.md) to hold the session-creation-time
  header snapshot for each active session.
- Capture the snapshot in handleSessionRegistrationImpl once per session
  when s.core != nil, and re-inject it via injectCapturedHeaders in
  coreToolHandler and coreResourceHandler before each backend call so
  mid-session header changes on the client side never reach the backend.
- Register an AddOnUnregisterSession hook to clean up captured headers
  when the SDK unregisters a session.
- Switch the integration test helper (NewVMCPServer) from server.New to
  core.New + Serve so tests exercise the production Serve path.
- Wire workflow telemetry into core.New via a telemetryComposer wrapper
  (same metric names as the session-factory path) so existing telemetry
  tests continue to pass on the Serve path.
- Re-enable TestVMCPServer_PassthroughHeaders on the Serve path; it now
  passes inclu... (continued)

148 of 159 new or added lines in 6 files covered. (93.08%)

126 existing lines in 10 files now uncovered.

69646 of 103756 relevant lines covered (67.12%)

63.42 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
90.91
pkg/vmcp/core/core_telemetry.go
3
89.06
2.68% pkg/vmcp/core/core_vmcp.go
2
77.48
3.2% pkg/vmcp/client/client.go

Coverage Regressions

Lines Coverage ∆ File
66
56.27
-18.38% pkg/vmcp/server/sessionmanager/factory.go
26
82.82
-8.93% pkg/vmcp/session/factory.go
6
20.11
-3.45% pkg/client/manager.go
6
71.7
-1.93% pkg/runner/config.go
6
61.4
4.68% pkg/workloads/manager.go
5
82.46
-0.9% pkg/vmcp/server/sessionmanager/session_manager.go
5
94.38
-5.62% pkg/vmcp/session/default_session.go
3
73.79
-2.91% pkg/state/local.go
2
82.29
-0.21% pkg/vmcp/composer/workflow_engine.go
1
92.13
-0.3% test/integration/vmcp/helpers/vmcp_server.go
Jobs
ID Job ID Ran Files Coverage
1 27966214826.1 22 Jun 2026 04:07PM UTC 766
67.12
GitHub Action Run
Source Files on build 27966214826
  • Tree
  • List 766
  • Changed 20
  • Source Changed 5
  • Coverage Changed 20
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27966214826
  • cbaa26b8 on github
  • Prev Build on main (#27960684761)
  • Next Build on main (#27968137730)
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