6.6 KiB
6.6 KiB
RSSPipe Backlog Specification (003_backlog.md)
This document records planned features, UX enhancements, and architectural extensions identified during initial testing and validation.
1. Search Box Auto-Complete & Real-Time Suggestions
- Goal: Enable rich auto-complete and search suggestion dropdown as the user types in the global search bar.
- Scope:
- Auto-suggest matches across article titles, feed names, author tags, and category labels.
- Keyboard navigation within search dropdown (
ArrowDown,ArrowUp,Enterto jump directly to article or feed). - Search history / recent queries quick access.
2. Password Management in User Settings
- Goal: Allow the single-user administrator to update their login credentials directly from
Settings > Account & System. - Scope:
- Backend API:
PUT /api/auth/passwordverifyingold_passwordand updating bcrypt hash fornew_password. - Frontend Modal/Card with confirmation field and clear validation indicators.
- Backend API:
3. Comprehensive Keyboard Shortcuts Test Suite
- Goal: Automated end-to-end and unit testing for all single-key power-user navigation bindings.
- Scope:
j/k: Next / previous article navigation.s: Toggle star.m: Toggle read status.e: Archive / mark read and advance.v: Open original URL in new browser tab.[: Toggle sidebar collapse/expand.r: Trigger feed refresh.a: Open Add Feed modal.1,2,3: Switch views (3-Split, Waterfall, Settings).?: Open keyboard shortcuts cheatsheet modal.Shift + A: Mark all as read with confirmation.- Ensure shortcuts are strictly inhibited when focus is inside text inputs, textareas, or modal forms.
4. Header Brand & Sidebar Toggle Alignment Consistency
- Goal: Standardize the top header layout across all view modes (3-Split, Waterfall, and Settings).
- Scope:
- In 3-Split view, ensure the RSSPipe logo and brand name occupy the consistent leftmost position matching Waterfall and Settings views.
- Ensure the sidebar toggle icon
[integrates cleanly into the left group or toolbar without disrupting brand alignment.
5. Refresh Button Spinning Micro-Animation
- Goal: Provide instant visual feedback when a background refresh or manual pull is in progress.
- Scope:
- Add smooth CSS keyframe spin animation (
@keyframes spin { 100% { transform: rotate(360deg); } }) to the refresh icon whenisRefreshingis active.
- Add smooth CSS keyframe spin animation (
6. Feed Favicon & Website Icon Scraping / Upload
- Goal: Enhance visual recognition by displaying brand icons next to each feed.
- Scope:
- Auto-Scraper: Automatically fetch and cache
favicon.ico,<link rel="icon">, or<link rel="apple-touch-icon">from the feed's website root during initial subscription. - Manual Customization: Allow uploading or specifying a custom icon URL in
Settings > Subscriptions > Edit Feed.
- Auto-Scraper: Automatically fetch and cache
7. Active Post Reading Persistence on Subscription Switch
- Goal: Prevent reader disruption when exploring other subscriptions.
- Scope:
- When actively reading an article in the right canvas of 3-Split view, clicking a different subscription or category in the left sidebar should update the middle article list without abruptly closing or reloading the active article in the right canvas until a new article is explicitly selected.
8. Unified Feed & Category Tree Hierarchy ("Feeds" Root)
- Goal: Simplify feed organization into a single clean hierarchy.
- Scope:
- Eliminate the artificial separation between "Categorized Feeds" and "Uncategorized Feeds".
- Present a single unified "Feeds" section where uncategorized feeds reside at the root level alongside collapsible category folders.
- Drag-and-drop or simple dropdown assignment to move feeds between root and folders.
9. Enhanced Xiaohongshu Masonry Waterfall Experience
- Goal: Further elevate the card aesthetics and mobile interaction to closely match Xiaohongshu.
- Scope:
- 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')andentry_variants(key='tags')to enable rule-based chaining. - Text-to-Speech (TTS): Synthesize article text to voice audio blobs (
.mp3stored 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.
- AI Summary Hook: Integrate LLM actions (e.g. OpenAI / Anthropic / Gemini / Ollama) to automatically generate and store concise summaries in
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.
- Centralized dashboard listing all articles with an active
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_variantsand on-disk audio blobs (./data/blobs/{entry_id}/).
14. Outbound Webhook Dispatcher (P4)
- Goal: Allow rule-triggered notifications and payload delivery to external platforms.
- Scope:
- Outbound webhook action in rule engine supporting Telegram, Discord, Slack, and generic JSON HTTP POST.
- Template engine with interpolation of article variables (
title,feed_title,url,published_at,ai_summary,tags). - Retry mechanism with exponential backoff on delivery failure.