## 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
