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

stacklok / toolhive / 21512046602
60%

Build:
DEFAULT BRANCH: main
Ran 30 Jan 2026 10:13AM UTC
Jobs 1
Files 487
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

30 Jan 2026 10:06AM UTC coverage: 60.459% (-0.04%) from 60.499%
21512046602

push

github

web-flow
Implement ExcludeAll feature for VirtualMCPServer tool filtering (#3499)

* Implement ExcludeAll feature for VirtualMCPServer tool filtering

Add runtime support for the excludeAll configuration fields that were
already defined in the CRD schema but not implemented:

- AggregationConfig.ExcludeAllTools (global): excludes all tools from
  all backends when true
- WorkloadToolConfig.ExcludeAll (per-workload): excludes all tools from
  a specific backend workload when true

The ExcludeAll check takes precedence over Filter and Overrides settings,
allowing users to easily exclude all tools from a backend without needing
to specify a non-matching filter workaround.

Changes:
- Add ExcludeAll check in processBackendTools (tool_adapter.go)
- Add excludeAllTools field and logic to defaultAggregator
- Update NewDefaultAggregator to accept *AggregationConfig instead of
  []*WorkloadToolConfig for better encapsulation
- Add comprehensive unit tests for both per-workload and global exclusion
- Update E2E test to use ExcludeAll instead of filter workaround
- Add new E2E test for global ExcludeAllTools feature

Fixes #2779

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add test for ExcludeAll preserving routing table for composite tools

When ExcludeAll is set on a backend's tools:
- Tools are NOT advertised to the LLM (excluded from tools/list)
- BUT tools ARE available in the routing table for composite tools to use

This enables the use case where you want to hide raw backend tools from
direct LLM access while still allowing curated composite tool workflows
to use those backend tools internally.

Implementation changes:
- ExcludeAll is now applied in MergeCapabilities (when building advertised
  tools list), not in QueryCapabilities or processBackendTools
- The routing table always contains ALL tools (after Filter/Overrides)
- Filter and Overrides are still applied in processBackendTools

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

----... (continued)

32 of 33 new or added lines in 2 files covered. (96.97%)

39 existing lines in 5 files now uncovered.

39368 of 65115 relevant lines covered (60.46%)

76.43 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
0.0
0.0% cmd/vmcp/app/commands.go

Uncovered Existing Lines

Lines Coverage ∆ File
3
71.85
-1.11% pkg/ignore/processor.go
3
80.86
-0.81% pkg/transport/proxy/httpsse/http_proxy.go
8
25.0
-4.44% pkg/client/manager.go
11
68.42
-14.47% pkg/client/discovery.go
14
66.48
-7.69% pkg/client/config.go
Jobs
ID Job ID Ran Files Coverage
1 21512046602.1 30 Jan 2026 10:13AM UTC 487
60.46
GitHub Action Run
Source Files on build 21512046602
  • Tree
  • List 487
  • Changed 8
  • Source Changed 3
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #21512046602
  • a0ef1e9b on github
  • Prev Build on main (#21511405129)
  • Next Build on main (#21513424219)
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