navi-web: pin the ddgs engines, drop bing, and give the fallback room
SearXNG answered the session's searches with noise. Bing, asked explicitly,
returns trending/homepage blocks for queries it cannot match (Block Blast for
a motherboard query); because the list is non-empty the chain accepted it as an
answer and never reached the working fallback. The request now pins
google,duckduckgo and asks for language=all — the pinned uk-UA was what made the
instance's DDG engine return CAPTCHA (kl=ua-uk) on every request.

The ddgs leg had a quieter bug. ddgs v9 has no "html" backend, and an unknown
name does not fail: it silently means "auto" — all engines shuffled together,
yandex and grokipedia included. That is where the slow, flaky, mixed-provenance
results came from. The engine set is now explicit and yandex-free. The 4s client
timeout and 12s chain budget also could not fit a real 1-13s multi-engine scrape,
so they become 10s and 20s.

Wire the Brave key placeholder the docs already described: optional, mapped
with a ":-" fallback so an empty value means off.
1 parent 8492357 commit a276712aae969f1aecd07eb6c77bd82db2219228
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 5 hours ago
Showing 6 changed files
View
deploy/env.template
View
docs/config.md
View
docs/mcp.md
View
mcp-servers/navi-web/app/search.py
View
mcp_servers.d/navi-web.json
View
tests/unit/mcp/test_navi_web_search.py