.vbw-planning/milestones/polish-and-reliability/phases/06-fetch-throughput-defaults/06-CONTEXT.md
Gathered: 2026-02-24 Calibration: architect
Fix three compounding bugs causing "overdue" jobs on dashboards with hundreds of sources: silent error swallowing in fetch status transitions, missing scheduling jitter/stagger creating thundering herd effects, and hardcoded constants that can't be tuned by host apps. Optimize all defaults for a 1-CPU/2GB server while exposing configuration hooks for scaling up.
SourceMonitor.configure DSL (initializer pattern)config.fetching.scheduler_batch_size in their initializerconfig.maintenance_queue_name setting, defaults follow existing naming patternupdate_source_state!ensure block in FetchRunner#run that resets fetch_status to "failed" if still "fetching" on any exit pathFollowUpHandler#call so scrape enqueue failures don't skip mark_complete!scheduler_batch_size, stale_timeout, and maintenance_queue_name all added to configjitter_percent config (currently skips jitter entirely)jitter_percent already exists in FetchingSettings and is read by AdaptiveInterval — just wire it into the fixed-interval path too