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

stacklok / toolhive / 29983767686
69%

Build:
DEFAULT BRANCH: main
Ran 23 Jul 2026 06:07AM UTC
Jobs 1
Files 815
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

23 Jul 2026 06:01AM UTC coverage: 69.058% (+0.02%) from 69.039%
29983767686

push

github

web-flow
Wire MCP 2026-07-28 revision classification into vMCP (#5913)

* Validate Mcp-Method/Mcp-Name headers against MCP body

vMCP's stateless decode seam needs to reject Modern (2026-07-28)
requests whose Mcp-Method/Mcp-Name headers contradict the parsed
JSON-RPC body, per the draft spec's Server Validation rules. Add
ValidateHeaderConsistency alongside the existing ClassifyRevision,
reusing the -32020 HeaderMismatch code and decoding the draft spec's
base64 sentinel wrapper for Mcp-Name before comparing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Add vMCP decode-seam classification middleware

Introduce classificationMiddleware to reject malformed Modern
(2026-07-28) requests at the vMCP decode seam using the existing
ClassifyRevision/ValidateHeaderConsistency helpers, ahead of wiring
it into the server's middleware chain. Not yet composed into
server.go: Legacy traffic is unaffected until that follow-up step.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Wire classification middleware into vMCP handler chain

Compose classificationMiddleware between MCP-parsing and telemetry so
malformed Modern (2026-07-28) requests are rejected before dispatch,
while Legacy traffic and well-formed Modern requests fall through
unchanged. Add an end-to-end test through the real handler chain
covering the wiring itself, complementing the unit-level table added
alongside the middleware.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Run telemetry before classification in vMCP chain

Classification previously wrapped telemetry, so a rejected Modern
request short-circuited before telemetry ever ran, silently dropping
request/error metrics and traces for exactly the requests worth
observing. Reorder so telemetry wraps classification instead: it
still sees the parsed MCP context and now also records the outcome
of rejected requests.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Enforce Mcp-Method/Mcp-Name presence on Mod... (continued)

72 of 76 new or added lines in 3 files covered. (94.74%)

10 existing lines in 4 files now uncovered.

76864 of 111303 relevant lines covered (69.06%)

74.41 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
97.26
-2.74% pkg/mcp/revision.go

Coverage Regressions

Lines Coverage ∆ File
3
96.36
-0.47% pkg/authz/authorizers/cedar/core.go
3
76.7
-2.91% pkg/state/local.go
2
93.94
-6.06% pkg/foreach/foreach.go
2
71.43
-2.86% pkg/state/runconfig.go
Jobs
ID Job ID Ran Files Coverage
1 29983767686.1 23 Jul 2026 06:07AM UTC 815
69.06
GitHub Action Run
Source Files on build 29983767686
  • Tree
  • List 815
  • Changed 9
  • Source Changed 2
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29983767686
  • e8d243d4 on github
  • Prev Build on main (#29961439084)
  • Next Build on main (#29991678352)
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