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

joaoh82 / rust_sqlite / 25286702644
69%

Build:
DEFAULT BRANCH: main
Ran 03 May 2026 06:09PM UTC
Jobs 1
Files 45
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

03 May 2026 06:05PM UTC coverage: 59.771%. Remained the same
25286702644

push

github

web-flow
feat(fts): 8e — sqlrite-mcp bm25_search tool (#82)

Phase 8 sub-phase 8e per docs/phase-8-plan.md (Q9). Adds the
`bm25_search` MCP tool, mirroring `vector_search` (Phase 7h) for
keyword retrieval. Surfaces FTS prominently to LLM clients driving
SQLRite over MCP.

User-visible:

  bm25_search(table, column, query, k?)
    → top-k rows by BM25 relevance, JSON-formatted

Wraps `SELECT * FROM <t> WHERE fts_match(<col>, 'q') ORDER BY
bm25_score(<col>, 'q') DESC LIMIT k` so the LLM doesn't need to
remember the WHERE-pre-filter, the DESC direction, or string
quoting. Picks up the Phase 8b optimizer hook automatically.

New:

- sqlrite-mcp/src/tools/bm25_search.rs — metadata + handle.
  Pre-flight checks (table exists, column is TEXT, FTS index
  attached) surface clean errors before any SQL runs. SQL
  string-literal escaper handles embedded apostrophes per SQL
  standard (doubled quote).
- sqlrite-mcp/src/tools/mod.rs — registers bm25_search in
  tools/list (post vector_search, pre ask) and tools/call.

Tests (sqlrite-mcp 16 → 19 passing; +3 bm25-specific):

- protocol::bm25_search_returns_top_ranked_rows — 4-doc corpus,
  the doc with tf=2 wins; the doc without 'rust' is filtered out.
- protocol::bm25_search_without_index_errors_clearly — actionable
  error pointing at the missing CREATE INDEX step.
- protocol::bm25_search_rejects_non_text_column — clean error on
  INTEGER columns.
- tools_list_returns_expected_set_in_default_mode updated to
  include bm25_search.
- Internal: tools::bm25_search::tests::sql_string_literal_doubles_quotes.

Out of scope (last sub-phase):
- Docs sweep (fts.md, file-format.md, supported-sql.md, mcp.md, …) → 8f

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

6380 of 10674 relevant lines covered (59.77%)

1.17 hits per line

Jobs
ID Job ID Ran Files Coverage
1 25286702644.1 03 May 2026 06:09PM UTC 45
59.77
GitHub Action Run
Source Files on build 25286702644
  • Tree
  • List 45
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 3c138f9c on github
  • Prev Build on main (#25285618732)
  • Next Build on main (#25287108705)
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