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

stacklok / toolhive / 30436865952

29 Jul 2026 08:46AM UTC coverage: 69.876% (-0.07%) from 69.944%
30436865952

push

github

web-flow
Wire tool_keywords into the BM25 search arm (#6124)

find_tool advertised tool_keywords to the model, but the field was
decoded off the wire, logged, and dropped. The store's Search took a
single query string, so tool_description fed both the semantic and the
lexical arm and there was nowhere to put keywords. Models paid tokens
for a field that did nothing, and one trusting the schema could write a
vague description on the assumption keywords carried the precision.

ToolStore.Search now takes a SearchQuery carrying Description and
Keywords. Keywords build the FTS5 expression, the description is
embedded for semantic matching, and the lexical arm falls back to the
description when no usable keyword remains.

Collapse the two FTS5 sanitizers into one and drop the phrase-search
fallback. A phrase search over a query containing a common word demands
exact token adjacency and so reliably matches nothing; dropping the
noise word and OR-joining the rest returns results without flooding
them.

Update the tool_keywords schema description so the model knows semantic
matching uses tool_description only and keeps writing a complete one.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

32 of 32 new or added lines in 3 files covered. (100.0%)

92 existing lines in 10 files now uncovered.

82111 of 117510 relevant lines covered (69.88%)

97.56 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

80.56
/pkg/transport/proxy/httpsse/http_proxy.go


Source Not Available

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