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

stacklok / toolhive / 21888512368
62%

Build:
DEFAULT BRANCH: main
Ran 11 Feb 2026 01:05AM 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

11 Feb 2026 12:57AM UTC coverage: 61.53% (-0.01%) from 61.541%
21888512368

push

github

web-flow
Fix tool counter per-request creation, omitempty config, and streamable-http version (#3761)

* 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 s... (continued)

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

35 existing lines in 4 files now uncovered.

42742 of 69465 relevant lines covered (61.53%)

77.74 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
95.36
0.02% pkg/telemetry/middleware.go

Uncovered Existing Lines

Lines Coverage ∆ File
2
71.43
-1.68% pkg/vmcp/k8s/manager.go
8
25.0
-4.44% pkg/client/manager.go
11
68.42
-14.47% pkg/client/discovery.go
14
75.54
-5.04% pkg/client/config.go
Jobs
ID Job ID Ran Files Coverage
1 21888512368.1 11 Feb 2026 01:05AM UTC 520
61.53
GitHub Action Run
Source Files on build 21888512368
  • Tree
  • List 520
  • Changed 9
  • Source Changed 2
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #21888512368
  • 06963519 on github
  • Prev Build on main (#21887058846)
  • Next Build on main (#21896408624)
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