.vbw-planning/milestones/07-rails-audit-and-refactoring/07-rails-audit-round-2/03-SUMMARY.md
0286b56 refactor(07-03): extract ScrapeItemJob to Scraping::Runner + remove duplicate rate-limiting (H3+H5)176b336 refactor(07-03): extract DownloadContentImagesJob to Images::Processor (H4)a44a302 refactor(07-03): slim FaviconFetchJob, SourceHealthCheckJob, ImportSessionHealthCheckJob (M12-M14)61a515c fix(07-03): fix swallowed exceptions in Scraping::State + document StalledFetchReconciler PG query (M17+M18)6a8bf01 style(07-03): fix RuboCop array bracket spacing in HealthCheckUpdaterapp/jobs/source_monitor/scrape_item_job.rb (73 -> 21 lines)app/jobs/source_monitor/download_content_images_job.rb (95 -> 16 lines)app/jobs/source_monitor/favicon_fetch_job.rb (94 -> 16 lines)app/jobs/source_monitor/source_health_check_job.rb (85 -> 16 lines)app/jobs/source_monitor/import_session_health_check_job.rb (99 -> 32 lines)lib/source_monitor/scraping/runner.rb (created)lib/source_monitor/images/processor.rb (created)lib/source_monitor/favicons/fetcher.rb (created)lib/source_monitor/health/source_health_check_orchestrator.rb (created)lib/source_monitor/import_sessions/health_check_updater.rb (created)lib/source_monitor/scraping/state.rb (broadcast exception logging)lib/source_monitor/fetching/stalled_fetch_reconciler.rb (PG query documentation)lib/source_monitor/health.rb (require orchestrator)lib/source_monitor.rb (autoloads for Runner, Processor, Fetcher, HealthCheckUpdater)test/jobs/source_monitor/scrape_item_job_test.rb (delegation-focused)test/jobs/source_monitor/download_content_images_job_test.rb (delegation-focused)test/lib/source_monitor/scraping/runner_test.rb (created)test/lib/source_monitor/images/processor_test.rb (created)EventSystemTest (2 errors): NoMethodError on process_feed_entries -- caused by unstaged feed_fetcher.rb changes from Plan 05FilterDropdownComponentTest (1 failure): onchange assertion mismatch -- caused by Plan 04 Stimulus conversionNone.