Keep the useful parts
web-search now tries its public-news fallback after any primary-provider failure, including a timeout or malformed response. The response sets degraded: true and includes the failed dependency status. It doesn't pass fallback data off as the primary result.
slop-filtered-brief no longer drops the whole paid call when web search is slow. Its web, news, and X discovery legs can each degrade independently. Results from the legs that finish still go through the AI-content filter.
content-authenticity-report now treats text and image detector timeouts the same way. A missing signal stays null, degraded is set, and text_analysis.skipped_reason explains what happened. Page extraction is still required because there is nothing to score when the page itself can't be read.
The recovery also fixes legacy -filter:retweets queries on twitter-search and fits oversized image-generate-pro requests inside the provider's 1280-pixel limit while preserving the requested aspect ratio.