Files
rsspipe/docs/003_backlog.md
T
haopengzhan dfbf646332
CI Quality Checks & Tests / Gitleaks Secret Detection (push) Failing after 47s
CI Quality Checks & Tests / Frontend Typecheck & Build (push) Successful in 1m19s
CI Quality Checks & Tests / Go Lint & Unit Tests (push) Failing after 3h11m47s
feat: implement AI integration with backend configuration and rule-based enrichment actions
2026-08-26 22:42:23 -07:00

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, Enter to 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/password verifying old_password and updating bcrypt hash for new_password.
    • Frontend Modal/Card with confirmation field and clear validation indicators.

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 when isRefreshing is active.

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.

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') 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}/).

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.