You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(search): expose backend capabilities instead of ignoring lexical and hybrid modes #56
The public search interface accepts lexical, hybrid, and weighting controls for Chroma and pgvector, but those backends ignore the requested mode/weight and perform dense-only search.
Component: Vector Store & Search Router (app/services/vector_store/, app/api/routers/search.py)
2. Root Cause & Context
Chroma and pgvector backends accept search_mode="lexical" and search_mode="hybrid", but always perform dense-only search (lexical mode embeds the query and runs dense search).
3. Implementation Plan
Expose a supported_search_modes property on all vector store backends:
Qdrant: ["dense", "sparse", "hybrid"]
pgvector: ["dense"]
Chroma: ["dense"]
In app/api/routers/search.py, validate the requested mode against the active backend's capabilities:
Return HTTP 400 with a clear error message if an unsupported mode is requested.
Skip dense embedding generation if true lexical search is requested.
Expose backend capabilities in the settings/health metadata so the frontend UI can disable unsupported controls.
4. Acceptance Criteria
Requesting lexical or hybrid search against backends without sparse support produces an explicit error rather than pseudo-dense results.
True lexical search does not invoke the dense embedding gateway.
Qdrant hybrid search continues to function normally.
Activity
spelech commentedon Oct 27, 2026
Triage & Implementation Brief
1. Scope & Effort
app/services/vector_store/,app/api/routers/search.py)2. Root Cause & Context
Chroma and pgvector backends accept
search_mode="lexical"andsearch_mode="hybrid", but always perform dense-only search (lexical mode embeds the query and runs dense search).3. Implementation Plan
supported_search_modesproperty on all vector store backends:["dense", "sparse", "hybrid"]["dense"]["dense"]app/api/routers/search.py, validate the requested mode against the active backend's capabilities:4. Acceptance Criteria
google-labs-jules commentedon Oct 27, 2026
Jules is on it. When finished, you will see another comment and be able to review a PR.
google-labs-jules commentedon Oct 27, 2026
Ready for a review! A PR has been created.
google-labs-jules commentedon Oct 27, 2026
I apologize, but I encountered an unexpected error and wasn't able to complete the task.