- 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