.vbw-planning/milestones/ui-fixes-and-smart-scraping/ROADMAP.md
Milestone: ui-fixes-and-smart-scraping
Goal: Fix UI/UX issues: dismissible OPML import banner, SVG favicon rendering, URL in activity heading, and sortable columns on sources index (New Items/Day, Avg Feed Words, Avg Scraped Words).
Success Criteria:
Requirements: UI polish, bug fixes
Goal: Fix fetch pipeline reliability issues: "No valid XML parser" errors for Cloudflare-challenged feeds, and ConcurrencyError (advisory lock busy) when force-fetching a source that's already locked.
Success Criteria:
force: true either waits/retries or skips cleanly instead of failing the jobRequirements: Feed reliability, error handling
Goal: Add pagination or grouping to the dashboard sources list to handle large numbers of sources without overwhelming the page.
Success Criteria:
Requirements: Dashboard UX, performance
Goal: Build a system that identifies sources with consistently low average word counts in feed entries, recommends switching them to scraping, and supports bulk scrape enablement with optional test-first confirmation.
Success Criteria:
Requirements: Analytics, scraping, bulk operations
Goal: Simplify the confusing source status/health system by separating operational state (active/paused) from health diagnosis (working/declining/improving/failing). Currently auto-paused sources still appear as "active" in filters, and 7 overlapping health statuses create too many permutations. Consolidate to a clean two-axis model.
Success Criteria:
Requirements: UX simplification, health monitoring, status model
Goal: Replace hand-rolled <dialog> modals with ultimate_turbo_modal for a polished, accessible, and consistent modal experience across the engine. Covers scrape test results modal, bulk scrape confirmation, and any future modal use cases.
Success Criteria:
ultimate_turbo_modal gem integrated and configured<dialog>Requirements: UX polish, accessibility, dependency management
| Phase | Status | Plans | Done |
|---|---|---|---|
| 01 | ● Done | ||
| 02 | ● Done | 4 | 4 |
| 03 | ● Done | 4 | 4 |
| 04 | ● Done | 5 | 5 |
| 05 | ● Done | ||
| 06 | ○ Pending | 0 | 0 |