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

stacklok / toolhive / 21887058846
62%

Build:
DEFAULT BRANCH: main
Ran 11 Feb 2026 12:03AM UTC
Jobs 1
Files 520
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

10 Feb 2026 11:54PM UTC coverage: 61.541% (-0.04%) from 61.577%
21887058846

push

github

web-flow
Add `mcp.protocol.version`, client operation duration, span target naming, and client span kind (#3757)

* Fix SSE gauge leak, config bool handling, and metric error logging

- Fix SSE active connections gauge that was incremented but never
  decremented. Move increment into Handler with a defer decrement so
  the gauge correctly tracks SSE connection lifecycle.

- Fix config file `use-legacy-attributes: false` being silently ignored.
  Change UseLegacyAttributes from bool to *bool in app config so nil
  (not set) is distinguishable from explicit false. Add two test cases
  covering both scenarios.

- Log metric creation errors at debug level instead of silently
  discarding them. The OTEL SDK returns no-op instruments on error so
  there is no runtime risk, but logging aids troubleshooting.

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

* Add mcp.protocol.version, client operation duration, span target naming, and client span kind

- Add mcp.protocol.version span attribute by reading the
  MCP-Protocol-Version header from streamable HTTP requests.

- Add mcp.client.operation.duration histogram metric to vMCP backend
  client using the OTEL MCP semconv bucket boundaries, alongside the
  existing toolhive_vmcp_backend_requests_duration custom metric.

- Include target name in span names per OTEL MCP semconv. Span names
  now follow the "{method} {target}" format, e.g. "tools/call
  github_search" instead of just "tools/call".

- Set SpanKindClient on vMCP backend call spans for proper distributed
  trace linking.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

21 of 23 new or added lines in 2 files covered. (91.3%)

32 existing lines in 6 files now uncovered.

42748 of 69463 relevant lines covered (61.54%)

77.92 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
76.92
0.49% pkg/vmcp/server/telemetry.go

Uncovered Existing Lines

Lines Coverage ∆ File
2
54.0
-2.0% pkg/networking/port.go
2
79.58
-0.53% pkg/transport/proxy/httpsse/http_proxy.go
2
57.89
-3.51% pkg/transport/session/sse_session.go
2
82.83
-0.26% pkg/vmcp/composer/workflow_engine.go
3
71.85
-1.11% pkg/ignore/processor.go
21
51.81
-2.05% pkg/workloads/manager.go
Jobs
ID Job ID Ran Files Coverage
1 21887058846.1 11 Feb 2026 12:03AM UTC 520
61.54
GitHub Action Run
Source Files on build 21887058846
  • Tree
  • List 520
  • Changed 9
  • Source Changed 2
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #21887058846
  • 5e2fa08f on github
  • Prev Build on main (#21886536212)
  • Next Build on main (#21888512368)
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