## 1. Summary Data Model and Persistence - [x] 1.1 Add persisted summary fields for TL;DR bullets, summary body, source/citation, and summary image metadata - [x] 1.2 Update database initialization/migration path for summary-related storage changes - [x] 1.3 Add repository read/write helpers for structured summary artifact fields ## 2. Ingestion-Time Summary Generation - [x] 2.1 Extend ingestion flow to request structured TL;DR + summary output from Perplexity for each fetched article - [x] 2.2 Implement strict parser/validator for summary output schema used by the frontend template - [x] 2.3 Persist generated summary artifacts with article records during the same ingestion cycle - [x] 2.4 Add graceful fallback behavior when summary generation fails without blocking article availability ## 3. Royalty-Free Image Enrichment - [x] 3.1 Implement royalty-free image retrieval for summarized articles with relevance constraints - [x] 3.2 Prefer MCP-based image retrieval path when available - [x] 3.3 Implement deterministic non-MCP fallback image path and placeholder behavior - [x] 3.4 Persist image attribution/licensing metadata required for compliant display ## 4. API Delivery for Summary Modal - [x] 4.1 Extend API response payloads to include summary-modal-ready fields - [x] 4.2 Ensure API payload contract maps directly to required template sections - [x] 4.3 Preserve source and citation link-out data in API responses ## 5. Frontend Summary Modal Experience - [x] 5.1 Implement summary modal dialog component in landing page flow - [x] 5.2 Render modal using required order: image, TL;DR bullets, summary, source/citation, Powered by Perplexity - [x] 5.3 Add article-level trigger to open summary modal from feed interactions - [x] 5.4 Implement robust modal close behavior (close control + backdrop interaction) ## 6. Analytics Event Tagging - [x] 6.1 Emit Umami event on summary modal open with article context - [x] 6.2 Emit Umami event on summary modal close with article context when available - [x] 6.3 Emit Umami event on source/citation link-out from modal with source metadata - [x] 6.4 Validate event naming and payload consistency across repeated interactions ## 7. Validation and Documentation - [x] 7.1 Validate end-to-end summary generation, persistence, and modal rendering for new articles - [x] 7.2 Validate fallback behavior for summary/image retrieval failures - [x] 7.3 Validate source/citation visibility and external link behavior in modal - [x] 7.4 Update README with summary modal feature behavior and analytics event contract