.vbw-planning/milestones/ui-fixes-and-smart-scraping/phases/03-dashboard-pagination/03-02-SUMMARY.md
Replaced in-memory Ruby grouping in UpcomingFetchSchedule with per-bucket ActiveRecord scope queries. Each schedule bucket now runs its own scoped query with independent pagination. Turbo Frames wrap each bucket for independent page navigation.
WHERE next_fetch_at range queries. Empty buckets excluded via .exists?.schedule_pages from params, passes to UpcomingFetchSchedule.turbo_frame_tag with per-bucket Previous/Next pagination controls.lib/source_monitor/dashboard/upcoming_fetch_schedule.rb -- Replaced in-memory grouping with AR scope queriesapp/controllers/source_monitor/dashboard_controller.rb -- Added schedule_pages param extractionapp/views/source_monitor/dashboard/_fetch_schedule.html.erb -- Added Turbo Frames and per-bucket paginationlib/source_monitor/dashboard/queries.rb -- Forward pages param, updated cache keytest/lib/source_monitor/dashboard/upcoming_fetch_schedule_test.rb -- NEW: 7 tests7aaee56 refactor(dashboard): replace in-memory schedule grouping with AR scope-based bucket queries37d4e86 feat(dashboard): pass per-bucket schedule page params from controller to view81139a5 feat(dashboard): add Turbo Frames and per-bucket pagination to fetch schedulebdb45d4 feat(dashboard): forward pages param through Queries to UpcomingFetchSchedule8f857d9 test(dashboard): add comprehensive tests for AR scope-based fetch scheduleNone.
All dashboard tests pass (7 new + existing), 0 failures.