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

stacklok / toolhive / 38437031082
71%

Build:
DEFAULT BRANCH: main
Ran 13 Oct 2026 05:23PM UTC
Jobs 1
Files 952
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

13 Oct 2026 05:14PM UTC coverage: 71.226% (+0.04%) from 71.187%
38437031082

push

github

web-flow
Record config-handler failures on the MCPRemoteProxy status (#6776)

* Record config-handler failures on the proxy status

The six error blocks in validateAndHandleConfigs wrote only
Status.Phase = Failed. No Message, no ObservedGeneration, and the Ready
condition was left untouched, so a proxy that was healthy and then lost
a referenced config reported both verdicts at once:

    phase: Failed
    message: Remote proxy is running
    observedGeneration: <last healthy generation>
    conditions:
      - type: Ready
        status: "True"

`kubectl wait --for=condition=Ready` and anything else keying on Ready
saw a healthy proxy while the operator had declared it Failed.

All six now go through markConfigHandlerFailed, which mirrors what the
other terminal paths in this controller already do (the embedded auth
config and CA bundle handlers): the phase, a message naming the handler
that failed, the observed generation, and Ready=False with reason
NotReady. The status update stays best effort, so a failure to persist
it is still logged rather than replacing the handler's own error.

The regression seeds a proxy with the status a healthy reconcile leaves
behind and drives each handler onto its not-found branch -- or, for
ExternalAuthConfig, onto the Valid=False mirror, because a *missing*
ExternalAuthConfig is rejected by spec validation before the handler
runs. All six cases fail against the previous controller: Ready stays
True and the observed generation stays on the seeded stale value.

One site with the same shape is deliberately not touched: the spec
validation path already sets Phase, Message and Ready=False, but leaves
Status.ObservedGeneration stale. Flagged in the PR rather than widened
here.

Validation: go test ./cmd/thv-operator/controllers/ passes; go vet and
gofmt clean. golangci-lint and task lint/test need go1.27, which this
machine refuses, so they were not run.

Signed-off-by: Chen Yufeiyang <fei76161@gmail.com>

* fix(operator): satisf... (continued)

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

2 existing lines in 1 file now uncovered.

86213 of 121041 relevant lines covered (71.23%)

126.62 hits per line

Coverage Regressions

Lines Coverage ∆ File
2
72.03
2.36% cmd/thv-operator/controllers/mcpremoteproxy_controller.go
Jobs
ID Job ID Ran Files Coverage
1 38437031082.1 13 Oct 2026 05:23PM UTC 952
71.23
GitHub Action Run
Source Files on build 38437031082
  • Tree
  • List 952
  • Changed 4
  • Source Changed 1
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #38437031082
  • 37c96deb on github
  • Prev Build on main (#38419692108)
  • Next Build on main (#38442372230)
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