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

stacklok / toolhive / 24265416574
66%

Build:
DEFAULT BRANCH: main
Ran 10 Apr 2026 09:45PM UTC
Jobs 1
Files 616
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

10 Apr 2026 09:40PM UTC coverage: 65.511% (+0.07%) from 65.44%
24265416574

push

github

web-flow
Fix GetDefaultProvider bypassing registered config factory (#4740)

* Fix GetDefaultProvider bypassing registered config factory

config.NewDefaultProvider() skips the RegisterProviderFactory hook and
always reads the local XDG config file. Switch to config.NewProvider(),
which checks the registered factory first and falls back to the default
only when no factory is registered.

Without this fix, enterprise builds that register a factory to supply an
EnterpriseProvider (e.g. fetching config from a remote config server)
were silently ignored, causing thv registry commands to use the embedded
registry instead of the configured one.

Add unit tests covering the factory-respected and fall-through cases,
caching semantics, and reset behaviour.

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

* Fix NewRegistryRoutes constructors bypassing registered config factory

Both NewRegistryRoutes and NewRegistryRoutesForServe called
config.NewDefaultProvider(), which skips the RegisterProviderFactory
hook and always reads the local XDG config file. Switch to
config.NewProvider() so enterprise builds that register a factory
(e.g. to supply a remote config server) are correctly honoured.

Add unit tests covering the regression case and the no-factory fallback
for both constructors.

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

* Move config.NewProvider() inside sync.Once closure in GetDefaultProvider

Go evaluates function arguments eagerly, so the previous implementation
called config.NewProvider() (and thus any registered ProviderFactory)
on every invocation of GetDefaultProvider, even after sync.Once had
already fired and the resulting provider was discarded.

Move the call inside the Do closure so the factory is invoked at most
once. GetDefaultProvider now owns its sync.Once block directly rather
than delegating to GetDefaultProviderWithConfig.

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

* Fix data race between ResetDefault... (continued)

16 of 20 new or added lines in 2 files covered. (80.0%)

6 existing lines in 2 files now uncovered.

56387 of 86073 relevant lines covered (65.51%)

62.64 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
62.67
-1.62% pkg/registry/factory.go

Coverage Regressions

Lines Coverage ∆ File
3
79.38
-0.77% pkg/transport/proxy/httpsse/http_proxy.go
3
93.33
-5.0% pkg/vmcp/server/sessionmanager/cache.go
Jobs
ID Job ID Ran Files Coverage
1 24265416574.1 10 Apr 2026 09:45PM UTC 616
65.51
GitHub Action Run
Source Files on build 24265416574
  • Tree
  • List 616
  • Changed 9
  • Source Changed 2
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24265416574
  • aa68b582 on github
  • Prev Build on main (#24259375214)
  • Next Build on main (#24268402333)
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