This release adds one-tap rating prompts on Telegram and Discord, multi-person AI Search, smarter AI Search exclusions, unified feedback and request sorting, plus a round of accessibility fixes.
⭐ Rate What You Watch
- SuggestArr can message you a while after you finish a title and ask for a rating with 1 to 10 buttons
- One tap saves the rating to Profile → Recommendation history, so recommendations learn from it
- Choose Telegram or Discord under Profile → Rate what you watch, and a delay from 0 to 48 hours (default 12)
- A movie is asked once; a show is asked once, not per episode
- Titles you already rated or excluded are never asked, and only plays after you turn the setting on count
- At most 5 prompts are sent every 15 minutes, and delivery is at most once
- Changing where prompts go disables the buttons of messages already sent
💬 Discord & Telegram Setup
- Telegram uses a dedicated bot and your private chat id; no public address is needed
- Discord uses your own bot with direct messages, and the Interactions Endpoint URL is shown in your Profile (sub-path included)
- Discord taps are verified with Discord's signature, so only you can answer, from your own DM
- A Send test message button explains why Discord refused, if it did
- Discord requires SuggestArr to be reachable over HTTPS
- ntfy and plain Discord webhooks are not supported, because they cannot carry verifiable buttons
See docs/RATING_PROMPTS.md.
👥 Multi-Person AI Search
- A new Searching for row lets you pick yourself and up to three other people
- Type @ in the search box to mention someone and select them
- With two or more people, the AI looks for titles everyone would enjoy and avoids anything one of them disliked
- Titles any of them watched, dismissed or marked as seen are hidden
- Only accounts with a verified media-server link appear, and anyone can opt out with Allow others to include me in AI Search
- Selected people's names and watched or rated titles are sent to your configured LLM provider
Addresses #550.
🚫 Fewer Repeated AI Search Results
- Each search now tells the AI up to 150 titles to skip: dismissed, seen, watched, requested, in your library and, with Exclude seen on, shown in earlier searches
- Results are still filtered after the answer, as before
- These titles are sent to your configured LLM provider
Addresses #551.
👍 Unified Feedback
- AI Search and Requests now share the same Good pick? answers and the same server-side validation
- Extra answers like Too similar and Save for later sit under More
- An optional Mostly because of reason can be added once an answer is chosen
Addresses #552.
↕️ Request Sorting
- Requests can be sorted by date, title or rating, ascending or descending
- Unrated titles always sort last
- "For …" no longer shows raw media-user IDs when no name is known
Addresses #561.
♿ Accessibility & UI Fixes
- Page language is set, input focus is visible, and inline links are underlined
- Reduced-motion preferences stop movement while keeping fades
- The onboarding tour is now a keyboard-friendly dialog, and the job modal keeps focus inside
- Paused jobs and AI Search without a provider stay readable
- Login and API docs have proper landmarks and heading order
- The home page shows an error with retry when recent requests fail to load
- The ratings history table no longer widens the page on phones
🧰 Maintenance & Testing
- New test suites for Telegram and Discord rating prompts, multi-person AI Search and AI Search exclusions
- Expanded coverage for AI Search feedback, LLM prompts, list import sorting and watched history
- New client tests for mentions, the Discord endpoint URL, feedback options, the switch component, the tour and the job modal
- Updated openai, amqp, billiard, kombu, pytz, tzdata and docker/login-action; added PyNaCl