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

stacklok / toolhive / 21908325847
62%

Build:
DEFAULT BRANCH: main
Ran 11 Feb 2026 02:16PM UTC
Jobs 1
Files 525
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

11 Feb 2026 02:08PM UTC coverage: 61.614% (-0.002%) from 61.616%
21908325847

push

github

web-flow
Extract trace context from MCP _meta for distributed tracing (#3763)

* 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>

* Fix tool counter per-request creation, omitempty config, and streamable-http version

- B3: Remove omitempty from TracingEnabled/MetricsEnabled struct tags
  so YAML `false` values are not silently dropped during serialization
- B6: Move tool call counter from per-request creation to struct
  initialization in NewHTTPMiddleware for consistency with other counters
- B10: Return empty string for streamable-htt... (continued)

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

6 existing lines in 3 files now uncovered.

42942 of 69695 relevant lines covered (61.61%)

74.6 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
2
79.05
-0.53% pkg/transport/proxy/httpsse/http_proxy.go
2
57.89
-3.51% pkg/transport/session/sse_session.go
2
94.67
-1.33% pkg/vmcp/composer/dag_executor.go
Jobs
ID Job ID Ran Files Coverage
1 21908325847.1 11 Feb 2026 02:16PM UTC 525
61.61
GitHub Action Run
Source Files on build 21908325847
  • Tree
  • List 525
  • Changed 5
  • Source Changed 1
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #21908325847
  • 60f23f58 on github
  • Prev Build on main (#21906470772)
  • Next Build on main (#21912323147)
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