d2e2b303ac
Per Codex — make the Overview strip diagnostic without making the operator hunt through tables. Aggregated (one calm line per condition with a count), volume- gated, conservative thresholds: * Stale: active+visible source, last success > 10 days ago (warn). * High rejection: >=20 ingested, acceptance < 25% (info). * High duplicate: >=10 accepted, accepted-dup > 50% (info). * Thin images: >=10 served, per-source image coverage < 25% (info). * Long rate-limit: retry_after_at more than 12h out (info). source_health gains a per-source images count + image_coverage. _attention takes an optional now (for tests). Existing site-wide items (global image coverage, thin brief, unread feedback) unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>