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

stacklok / toolhive / 31626671343
70%

Build:
DEFAULT BRANCH: main
Ran 12 Aug 2026 06:29PM UTC
Jobs 1
Files 875
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

12 Aug 2026 06:14PM UTC coverage: 70.259% (-0.07%) from 70.324%
31626671343

push

github

web-flow
Bound client-controlled metric label length (#6279)

* Bound client-controlled metric label length

Cumulative metric readers (Prometheus, OTLP PeriodicReader) keep every
distinct attribute set resident for the process lifetime. The OTEL SDK's
2000-series cap bounds the count of attribute sets but not the byte length
of any single label value. The parsed MCP method, tool, and prompt names
are taken verbatim from the request and bounded only by the 8 MB body
limit, so a single label value can approach 8 MB and stay resident until
the process exits. A small burst of large values is enough to OOM a pod.

Add truncateLabelValue, capping client-controlled metric label values at
128 bytes on a UTF-8 rune boundary with a truncation marker, and apply it
to every client-controlled label site in the telemetry middleware. Span
attributes keep the full value on purpose: spans are sampled and ephemeral
and the OTEL MCP semconv wants the real value.

Part of #6271

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Assert mcp_resource_id label in truncation test

The integration test verified gen_ai.tool.name and tool were observed
but never confirmed mcp_resource_id was, leaving a false-negative gap:
if that label key were dropped or renamed, the test would pass
silently. Assert it was checked alongside the others.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

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

81 existing lines in 7 files now uncovered.

84475 of 120233 relevant lines covered (70.26%)

99.09 hits per line

Coverage Regressions

Lines Coverage ∆ File
61
61.91
-5.25% pkg/workloads/manager.go
6
76.15
-5.5% pkg/secrets/keyring/keyctl_linux.go
5
0.0
-100.0% pkg/workloads/sysproc_unix.go
3
71.85
-1.11% pkg/ignore/processor.go
2
93.94
-6.06% pkg/foreach/foreach.go
2
88.24
-5.88% pkg/vmcp/backendregistry/registry.go
2
82.27
-0.21% pkg/vmcp/composer/workflow_engine.go
Jobs
ID Job ID Ran Files Coverage
1 31626671343.1 12 Aug 2026 06:29PM UTC 875
70.26
GitHub Action Run
Source Files on build 31626671343
  • Tree
  • List 875
  • Changed 8
  • Source Changed 1
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #31626671343
  • 3c4dec3c on github
  • Prev Build on main (#31598145324)
  • Next Build on main (#31692859738)
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