Share: "Copy Link" button generates a URL with ?s={history_id} that
loads the saved search results without auth. Recipients see the same
movie picks.
Watched: When viewing history results or shared searches, cards for
movies the logged-in user has since watched are dimmed with a green
"Watched" badge. Uses a new POST /api/library/watch-check endpoint.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Skeleton cards now append below existing results during re-roll
instead of appearing at the top. Auto-scrolls to show the loading
state, and hides the re-roll button until new results arrive.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Reset button clears mood text, runtime filter, kid-friendly toggle,
and returns to the empty state
- Show Me More now appends new cards below existing results instead
of replacing them
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Runtime quick-select buttons (Any/90m/2h/2.5h) filter movies by length
- Kid-friendly toggle forces PG-13 max and boosts Family/Animation genres
- Surprise Me picks a random mood prompt from 20 curated options
- Show Me More re-rolls same mood excluding already-shown movies
- Re-roll appends new results to the existing search history entry
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Saves each mood search and its recommendations to SQLite per user.
Recent searches appear below the results area with mood text, top
movie titles, and timestamp. Click any entry to reload those results.
Entries can be deleted individually. History toggleable via show/hide.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
AI-powered web app that recommends unwatched movies from a Jellyfin
library based on natural language mood input. Jellyfin auth, modular
LLM backend (Claude/OpenAI/Ollama), two-tier pre-filter + AI ranking,
mobile-responsive dark theme UI with poster cards and deep links.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>