# Scraper Reliability V3.7

- Auto cron now runs a rotating bounded batch (8 sources, 40 article attempts, 90s budget) instead of trying every source in one request.
- Cron cursor persists in `data/logs/scrape_cron_cursor.txt` so the next cron invocation continues with the next active sources.
- Advanced scraper now checks whether cURL exists and falls back to PHP HTTP streams when `allow_url_fopen` is enabled.
- If neither HTTP transport exists, the scraper returns an explicit diagnostic instead of fatally calling an undefined cURL function.
- Added compatibility wrapper for `array_is_list` so PHP 8.0 hosts do not fatal in JSON-LD parsing.
- Manual V3.6 bounded batching, separate logs, and global run lock remain enabled.
