Files
ytplayer/BACKLOG.md
2026-06-21 16:15:30 +08:00

3.0 KiB
Executable File

YT Player — Improvement Backlog

The /loop works through this top-to-bottom, one item per iteration. Tick an item ([x]) only after it builds, verifies, and is committed + pushed. Add new ideas to the bottom as they come up.

Build & verify protocol (every iteration)

  1. Edit the canonical source in WSL (~/development/personal/ytplayer).
  2. Sync changed files individually into C:\ytbuild\ytplayer — never Copy-Item -Recurse onto an existing dir (it nests as frontend\frontend).
  3. npx tauri build in C:\ytbuild\ytplayer.
  4. Launch with --remote-debugging-port=922x and verify via CDP/screenshot (retry the launch a few times — Smart App Control is intermittent).
  5. Only if it builds and verifies: refresh releases/, commit (no AI attribution), git push origin main, then tick the item here.

UX / polish

  • Empty-state designs for empty playlists and empty history (match the new hero).
  • Loading skeletons for search results instead of a bare "Searching…".
  • Keyboard-shortcut help overlay (press ?), listing space / arrows / f / m.
  • Download/preload progress indicator on cards (percent or a bar, not just a pulse).
  • Remember and restore the last playback position per video.
  • Toast queue (stack multiple toasts instead of replacing).

Features

  • Drag-to-reorder videos within a playlist.
  • "Up next" queue panel showing the autoplay queue.
  • Persistent mini now-playing bar when browsing other views.
  • Cache size cap in Settings (auto-evict oldest past a limit).
  • Export / import playlists as JSON.
  • More / trending quick-search chips on the hero, rotated.

Robustness

  • Sanitize video_id in cache_download (reject path separators).
  • Gate the embedded yt-dlp behind a build flag so debug builds compile faster.
  • Surface yt-dlp extraction failures with a retry button.

Done

  • Empty-state designs for empty playlists and empty history (match the new hero). 460aaae
  • Loading skeletons for search results instead of a bare "Searching…". da2ad27
  • Keyboard-shortcut help overlay (press ?), listing space / arrows / f / m. c676786
  • Download/preload progress indicator on cards (percent or a bar, not just a pulse). 81aced9
  • Remember and restore the last playback position per video. ddfa149
  • Toast queue (stack multiple toasts instead of replacing). a4d6b82
  • Drag-to-reorder videos within a playlist. 0ba0f56
  • "Up next" queue panel showing the autoplay queue. 4376cd9
  • Persistent mini now-playing bar when browsing other views. c1855a1
  • Cache size cap in Settings (auto-evict oldest past a limit). d15d902
  • Export / import playlists as JSON. d15d902
  • More / trending quick-search chips on the hero, rotated. c6b8dfc
  • Sanitize video_id in cache_download (reject path separators). c6b8dfc
  • Gate the embedded yt-dlp behind a build flag so debug builds compile faster. d15d902
  • Surface yt-dlp extraction failures with a retry button. c6b8dfc