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

stacklok / toolhive / 27633080957
67%

Build:
DEFAULT BRANCH: main
Ran 16 Jun 2026 04:44PM UTC
Jobs 1
Files 760
Run time 3min
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

16 Jun 2026 04:38PM UTC coverage: 66.961% (+0.04%) from 66.924%
27633080957

push

github

web-flow
Add vMCP core/server config derivation helpers (#5513)

* Add vMCP core/server config derivation helpers

Phase 3.1 of the RFC THV-0076 config decomposition. The single in-memory
server.Config is the last god-config that couples the domain core to the
transport. Introduce two unexported helpers that map it onto the already-
existing core.Config (Phase 1) and transport ServerConfig (Phase 2):

- deriveServerConfig projects the transport-only fields plus the
  cross-cutting TelemetryProvider/AuditConfig (R3); the built health
  monitor (A2), shared backend registry, and assembled session-manager
  FactoryConfig are threaded in by the composition root since
  server.Config does not carry them. AuthzMiddleware is not projected —
  ServerConfig has no such field; authz moved to the core admission seam.
- deriveCoreConfig assembles core.Config from cfg's cross-cutting fields
  (ServerName uses the raw cfg.Name for authz parity) plus the
  collaborators passed through rather than reached out of cfg.

Both treat cfg as read-only (no defaulting write-back like server.New).
This only adds the helpers and their tests; #5445 rewires server.New to
call them through Serve. server.New and all serialized formats are
unchanged.

Closes #5444

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

* Resolve vMCP transport defaults at the edge

Addresses PR review (Option 1): the cmp.Or transport defaults previously
lived in three projection functions (server.New, buildServeConfig,
deriveServerConfig) with a duplicated "which fields" list, and server.New
applied them by mutating the caller's Config in place.

Consolidate to a single resolver, WithDefaults, and resolve once at the
composition root (cli/serve.go):

- WithDefaults is now the only place the transport default list lives.
- deriveServerConfig and buildServeConfig become pure pass-through.
- server.New calls WithDefaults on a COPY, so it no longer mutates the
  caller's Config. That non-mutation... (continued)

65 of 67 new or added lines in 4 files covered. (97.01%)

105 existing lines in 4 files now uncovered.

68861 of 102838 relevant lines covered (66.96%)

63.71 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
35.67
0.0% pkg/vmcp/cli/serve.go

Coverage Regressions

Lines Coverage ∆ File
77
85.27
-0.12% pkg/vmcp/server/server.go
24
79.35
2.88% pkg/vmcp/server/serve_handlers.go
2
84.49
0.0% pkg/audit/auditor.go
2
82.29
-0.21% pkg/vmcp/composer/workflow_engine.go
Jobs
ID Job ID Ran Files Coverage
1 27633080957.1 16 Jun 2026 04:44PM UTC 760
66.96
GitHub Action Run
Source Files on build 27633080957
  • Tree
  • List 760
  • Changed 12
  • Source Changed 6
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27633080957
  • 3ebb76be on github
  • Prev Build on main (#27626541007)
  • Next Build on main (#27638476559)
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