ulysses/services/search
Mubashir R 535d05c142
fix: SearchService.search() calls comprehensive_web_search incorrectly (broken public API) (#1720)
SearchService.search() did:

    raw_results = await comprehensive_web_search(
        query, max_results=10 * depth, fetch_content=fetch_content)

comprehensive_web_search is a synchronous function whose count knob is
`max_pages` (not `max_results`) and which has no `fetch_content` parameter, so
the call raised TypeError on argument binding; `await` on its non-coroutine
return would also fail. It returns a context string, or a (context, sources)
tuple with return_sources=True — not the list of dicts the wrapper iterates.

The method is exported in services/search/__init__.py and services/__init__.py
with a usage example in its docstring, so any caller of the documented public
API hit an immediate crash. Call it correctly via asyncio.to_thread with
max_pages + return_sources=True and use the returned source list as the rows.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 13:33:56 +09:00
..
__init__.py Odysseus v1.0 2026-05-31 23:58:26 +09:00
analytics.py Odysseus v1.0 2026-05-31 23:58:26 +09:00
cache.py Odysseus v1.0 2026-05-31 23:58:26 +09:00
content.py fix: extract_statistics drops large numbers and trailing % signs (#1153) 2026-06-02 22:35:30 +09:00
core.py Stop GET /api/search/config from leaking the Brave API key (#1661) (#1750) 2026-06-03 13:24:17 +09:00
providers.py Report provider-specific search API keys correctly (#1202) 2026-06-02 23:37:15 +09:00
query.py fix: _extract_entities crashes on a non-string query (#1724) 2026-06-03 13:30:28 +09:00
ranking.py Odysseus v1.0 2026-05-31 23:58:26 +09:00
service.py fix: SearchService.search() calls comprehensive_web_search incorrectly (broken public API) (#1720) 2026-06-03 13:33:56 +09:00