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

stacklok / toolhive / 21428413335
60%

Build:
DEFAULT BRANCH: main
Ran 28 Jan 2026 07:05AM UTC
Jobs 1
Files 479
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

28 Jan 2026 06:58AM UTC coverage: 60.352% (+0.2%) from 60.178%
21428413335

push

github

web-flow
Integrate status reporting into vMCP runtime (#3457)

* Integrate status reporting into vMCP runtime

Wire up periodic status reporting to enable vMCP runtime to report
operational status to the control plane (Kubernetes API or CLI logging).

Changes:
  - Add BuildStatus() method to health.Monitor that converts health state
    to vmcp.Status format with phase determination, backend details, and
    Kubernetes-style conditions
  - Create periodicStatusReporting() in server package that runs in
    background goroutine, pulling health data every 30 seconds and
    sending to configured reporter
  - Integrate status reporting lifecycle into server.Start() and Stop()
    with proper shutdown handling
  - Update commands.go to use factory pattern (vmcpstatus.NewReporter)
    instead of hardcoded LoggingReporter, enabling auto-detection of
    K8s vs CLI mode via environment variables
  - Add comprehensive tests for status building logic (phase determination,
    condition generation, message formatting)

Phase determination logic:
  - Ready: All backends healthy (or no backends yet - cold start)
  - Degraded: Some backends healthy, some degraded/unhealthy
  - Failed: No healthy backends
  - Pending: Waiting for backends to be discovered

The implementation respects the separation between health monitoring
(data gathering) and status reporting (persistence), with K8sReporter
handling Kubernetes-specific fields like ObservedGeneration.

Related-to: #3149

* fixes from review

---------

Co-authored-by: taskbot <taskbot@users.noreply.github.com>

231 of 265 new or added lines in 8 files covered. (87.17%)

3 existing lines in 2 files now uncovered.

38677 of 64086 relevant lines covered (60.35%)

77.05 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
52.17
0.0% pkg/vmcp/status/factory.go
3
94.12
pkg/vmcp/server/status_reporting.go
4
0.0
0.0% cmd/vmcp/app/commands.go
6
78.52
-0.36% pkg/vmcp/server/server.go
8
81.65
-3.2% pkg/vmcp/status/k8s_reporter.go
12
96.31
-0.22% pkg/vmcp/health/monitor.go

Uncovered Existing Lines

Lines Coverage ∆ File
1
78.52
-0.36% pkg/vmcp/server/server.go
2
71.43
-1.68% pkg/vmcp/k8s/manager.go
Jobs
ID Job ID Ran Files Coverage
1 21428413335.1 28 Jan 2026 07:05AM UTC 479
60.35
GitHub Action Run
Source Files on build 21428413335
  • Tree
  • List 479
  • Changed 13
  • Source Changed 6
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #21428413335
  • 38565be6 on github
  • Prev Build on main (#21410526608)
  • Next Build on main (#21431004601)
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