- Use urllib.parse.urlencode to properly encode the POST body, so queries
containing special characters like '&', '+', '=' are sent correctly
- Extend execution_failure_check to also detect "No search results" as a
failure, preventing the agent from silently looping when all SearXNG
engines are rate-limited and return no results