# Scraper Reliability V3.6

Fixes:
- Manual scraper now uses POST instead of legacy `?ran=1` GET.
- Manual runs are bounded for shared hosting: 2 active sources per press, max 12 article attempts, 20s budget, 6s fetch timeout, no immediate retry storm.
- Manual run rotates through active sources across button presses.
- Manual and cron runs share a global lock to prevent overlapping scrapes.
- Manual and cron logs are shown separately.
- Health-paused sources are treated as effectively inactive in admin UI; re-enabling resets fail/pause state.
- V3.5 diagnostics are updated for processed sources and run output includes active/paused counts.
- Base schema malformed `weather_cities` definition repaired.

Notes:
- HTTP 403 from publisher anti-bot/WAF is an upstream block; this release records it cleanly but cannot guarantee bypassing protected sites.
- For 64-district network data, use District Source Network -> Seed All 64 Districts on an existing database if sources have not yet been seeded.
