feat: implement rule engine, worker pool, event bus, and readability scraping with enhanced logging and content sanitization.

This commit is contained in:
2026-08-25 00:31:32 -07:00
parent 5ea176d5ad
commit d440728ca5
29 changed files with 2788 additions and 204 deletions
+39
View File
@@ -93,3 +93,42 @@ This document records planned features, UX enhancements, and architectural exten
- Staggered dynamic aspect ratios with prominent media cards.
- Smooth infinite scroll pagination.
- Interactive gesture swipe to dismiss the full-screen reader.
---
## 10. Beautiful 404 Error Page
- **Goal**: Provide a polished, modern, brand-consistent 404 Not Found experience.
- **Scope**:
- Frontend 404 route component with sleek modern aesthetics (glassmorphism/minimal illustration, clear error description, and a "Return to Gateway" action button).
- Server-side fallback handler returning a clean, branded HTML response for unmatched routes.
---
## 11. Multi-Variant Pipeline Enrichments (AI Summary, TTS, Keywords, Audio)
- **Goal**: Expand the event-driven rules engine and variant storage system with automated enrichment plugins.
- **Scope**:
- **AI Summary Hook**: Integrate LLM actions (e.g. OpenAI / Anthropic / Gemini / Ollama) to automatically generate and store concise summaries in `entry_variants(key='ai_summary')`.
- **Keyword & Tag Extraction**: Automated extractor storing structured YAML/JSON keyword lists in `entry_variants(key='keywords')` and `entry_variants(key='tags')` to enable rule-based chaining.
- **Text-to-Speech (TTS)**: Synthesize article text to voice audio blobs (`.mp3` stored under `./data/blobs/{entry_id}/tts.mp3`) with HTTP 206 partial streaming.
- **Podcast TTS & Summary TTS**: Convert articles into dual-host conversational podcasts or audio-narrated summaries streamed directly within the reader.
---
## 12. Aggregated Shared Posts Dashboard (`/shares`)
- **Goal**: Provide a dedicated gallery view aggregating all publicly shared articles.
- **Scope**:
- Centralized dashboard listing all articles with an active `share_uuid`.
- Copy public link, preview shared HTML canvas, revoke share link, and view access stats.
---
## 13. Data Retention & Cleanup Policies (Auto-Deletion)
- **Goal**: Provide configurable retention rules to prune older or noisy articles and keep SQLite storage compact.
- **Scope**:
- Retention triggers (e.g. delete unstarred articles older than 90 days, or limit feeds to latest 500 posts).
- Background garbage collection cleaning associated `entry_variants` and on-disk audio blobs (`./data/blobs/{entry_id}/`).