From f6bb46dc4a5f17540db2f7c51287a957d12fbdbb Mon Sep 17 00:00:00 2001 From: Chaim Date: Mon, 4 May 2026 05:19:53 +0000 Subject: [PATCH] fix(retrieval): restore _base(limit=) contract in hybrid precedent search MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `rerank.maybe_rerank` calls `base_search(limit=…, **base_kwargs)` on both the rerank-on and rerank-off paths. Commit 242f668 moved the closure into hybrid_search.py and renamed its parameter to `limit_inner`, so every call to `/api/precedent-library/search` raised TypeError 500 regardless of the VOYAGE_RERANK_ENABLED flag. Sibling `search_documents_hybrid` was unaffected because it uses `lambda **kw:` which absorbs the kwarg. Co-Authored-By: Claude Opus 4.7 (1M context) --- mcp-server/src/legal_mcp/services/hybrid_search.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mcp-server/src/legal_mcp/services/hybrid_search.py b/mcp-server/src/legal_mcp/services/hybrid_search.py index 8007266..494e66e 100644 --- a/mcp-server/src/legal_mcp/services/hybrid_search.py +++ b/mcp-server/src/legal_mcp/services/hybrid_search.py @@ -92,7 +92,7 @@ async def search_precedent_library_hybrid( """Hybrid wrapper for precedent-library search.""" fetch_k = max(limit, config.VOYAGE_RERANK_FETCH_K) if config.MULTIMODAL_ENABLED else limit - async def _base(limit_inner: int) -> list[dict]: + async def _base(limit: int) -> list[dict]: return await db.search_precedent_library_semantic( query_embedding=query_text_embedding, practice_area=practice_area, @@ -101,7 +101,7 @@ async def search_precedent_library_hybrid( appeal_subtype=appeal_subtype, is_binding=is_binding, subject_tag=subject_tag, - limit=limit_inner, + limit=limit, include_halachot=include_halachot, )