Skip to content

Releases: giuseppe99barchetta/SuggestArr

v2.4.3

12 Mar 15:19

Choose a tag to compare

Major Improvements: UI, Security, Media Integration and AI Enhancements

This PR introduces a large set of improvements across the project, including UI refactoring, security fixes, media client improvements, and AI-related enhancements.

To make the changes easier to review, they are grouped into logical sections below.


🎨 UI & Design System Improvements

Significant improvements to frontend consistency and accessibility:

  • Introduced design tokens for consistent styling
  • Implemented a modal redesign with improved structure
  • Refactored BaseCard component
  • Added surface hover effects
  • Improved focus handling and accessibility
  • Fixed dropdown focus behavior
  • Updated status badge styling
  • Improved modal rendering using Vue Teleport

These changes aim to provide a more consistent and maintainable UI foundation.


🔐 Security Improvements

Resolved multiple GitHub Advanced Security alerts:

  • Removed clear-text logging
  • Fixed potential information exposure
  • Implemented a timing-safe dummy bcrypt hash to prevent username enumeration
  • Improved authentication-related logging behavior

👥 User Permissions & UI Access Control

Introduced improvements to user management and UI permissions:

  • Implemented the ability to hide specific UI tabs for non-admin users
  • Improved handling of role-based UI access
  • Enhanced overall user management system

This allows administrators to better control which parts of the interface are visible to different users.


🎬 Media Integration Improvements

Enhancements to media client integrations:

  • Implemented credential-based media account linking
  • Improved Jellyfin client authentication
  • Added better error handling for API connectivity
  • Refactored media client code for better testability
  • Improved library fetching logic
  • Fixed Fails to request without explanation. #278

🔁 Refactor: Jellyseer → Seer

Refactored the codebase to replace references to Jellyseer with Seer for better abstraction and maintainability.


🤖 AI & Recommendation Improvements

Enhancements to AI-powered features:

  • Implemented AI-generated rationales for search results
  • Added _extract_json_object to safely parse JSON objects from LLM outputs
  • Improved multi-language AI search handling
  • Fixed AI Search fails on multi-language queries #264
  • Added Native LM Studio support without LiteLLM proxy #265
  • Fixed AI Search fails on multi-language queries #264

🧠 Automation & Recommendation Fixes

  • Fixed year range filter not being applied in recommendation jobs #271
  • Improved filter normalization
  • Enhanced TMDb discover integration
  • Fixed IMDB rating requirement is ignored if OMDB doesn't supply it #279
  • Fixed Wizard setup fails to save Jellyseerr integration to database

📦 Dependencies

Updated several dependencies via Dependabot.


📝 Notes for Reviewers

This PR accumulates several improvements that were developed together on the nightly branch.

Changes have been logically grouped by feature area to make the review easier. Future updates will be split into smaller PRs where possible.

v.2.4.2

04 Mar 10:40

Choose a tag to compare

A stability-focused release improving Seer connectivity, Jellyfin/Plex reliability, LLM filtering logic, and internal code quality.


🔗 Seer & Jellyseer Improvements

  • 🔄 Updated Seer API endpoints
  • 🧩 Fixed Seer connection issues
  • 🧪 Removed unstable Seer test files
  • 📤 Fixed intermittent payload delivery to backend

🎬 Plex & Jellyfin Fixes

  • 🧠 Persisted Plex client identifier
  • 🔌 Fixed no-connection edge cases with Plex
  • 🧪 Fixed Jellyfin API endpoint issues
  • 🔎 Improved version checking system
  • 🚦 Added rate limiting to /setup endpoint

🧠 LLM & Secret Handling Improvements

  • ♻️ Refactored duplicated code across services
  • 🧹 Enhanced LLM request filtering logic
  • 🎯 Better validation before job execution

🎨 Frontend & Client Improvements

  • ⚙️ Proper initialization of Vue 3 + TypeScript client
  • 👤 Fixed admin not loading correctly after page change
  • 🔔 Restored toast messaging behavior
  • 🧩 Minor UI and state consistency fixes
  • 🔐 Improved secret extraction strategy

🧪 Testing & Maintenance

  • 🗑 Removed unstable Seer test files
  • 🧼 Minor test fixes
  • 🔄 General internal refactoring and cleanup

❤️ Thank You

Thank you to everyone contributing fixes, reporting bugs, and improving SuggestArr.

v2.4.1

02 Mar 15:22

Choose a tag to compare

A major architectural and security upgrade introducing authentication, multi-user support, and a database-driven configuration system.

🔐 Authentication & Multi-User System

  • 👥 Introduced full multi-user architecture
  • 🔑 Implemented JWT authentication with refresh flow
  • 🛡 Role-based access control (Admin / User distinction)
  • 🆕 Allow/Disallow free user registration
  • 🧾 First registered user automatically assigned as Administrator
  • 🔒 Secrets visible only to Admin users

This lays the foundation for:

  • 🎯 Account-based personalization
  • 📂 Per-user configuration support
  • 🎬 Isolated request visibility for each linked Jellyfin / Plex / Emby account

🗄 Database-Driven Configuration

Major internal configuration overhaul.

Highlights

  • 📦 Migrated services & integrations from config.yaml to database
  • 🔐 Migrated TMDb / OMDb API keys to DB
  • 🧠 Migrated AI configuration & secrets to DB
  • 📤 Secured and fixed import/export configuration flow
  • 🛡 Added additional validation layer for config import/export

🎬 Streaming & TMDb Improvements

  • 🔁 Proxied TMDb calls through backend (no frontend API key exposure)
  • 🎯 Corrected streaming provider filtering (flatrate + optional rent/buy)
  • 🆕 Default to flatrate-only streaming check
  • 💳 Optional TVOD support
  • 🌍 Added endpoints for watch regions & streaming providers
  • ⚙️ Added endpoint for default job filter values

🧪 Dry-Run Mode (#236)

Full implementation and stability improvements.

Highlights

  • 🧪 Complete Dry-Run execution mode
  • ▶️ Force-run button now runs all jobs
  • ⚡ Improved batch speed and reliability

🧠 AI Improvements

  • 📐 Introduced Pydantic-validated structured LLM responses
  • 🔁 Automatic retry on validation failure

🎨 UI & UX Improvements

  • 👤 Added Users & Profile tabs in dashboard
  • 🧭 Redesigned wizard flow with monolithic architecture
  • 🎓 Step-by-step onboarding tour
  • 🖼 Upgraded service logos to SVG
  • 🎨 Various UI fixes and visual improvements

🧪 Testing & Stability

  • 🧩 Implemented test classes for every service
  • 📈 Expanded and fixed test coverage
  • 🧪 Added mock files and new test variables
  • 🗓 Fixed MySQL date sanitization
  • 🐘 Fixed Postgres is_anime column operations #243
  • ❤️ Health check blueprint (liveness & readiness endpoints)
  • 📊 Queue status endpoint integrated into frontend
  • 🔄 Persistent aiohttp session refactor

🐛 Fixes

  • Fixed admin not being recognized after page reload
  • Fixed logout under public routes
  • Fixed configuration import/export edge cases
  • Fixed loading variables from DB in auto-test
  • Minor UI and stability fixes

⚠️ Stability Notice

This is a major release with significant internal changes.

While extensively tested, some instability may occur.
If you encounter any issues, please report them, fixes will be delivered as quickly as possible.


❤️ Thank You

A huge thank you to everyone for the support, testing, and contributions.

Reaching 1,000 stars on GitHub is an incredible milestone 🚀

v2.3.2

24 Feb 20:21

Choose a tag to compare

🤖 AI Provider Expansion

  • 🧠 Added Google Gemini provider card
  • 🪪 Clear provider-specific configuration details in the UI

🚦 Request Processing & Reliability

Major improvements to how requests are handled and processed internally.

Highlights

  • 🔒 Submission lock mechanism to prevent duplicate media requests
  • 🧵 Background Seer queue worker for processing pending requests
  • 🔁 Retry logic with failure tracking
  • 📦 Structured handling of queued / submitted / failed states

These changes significantly improve stability under load and prevent duplicate submissions.

🐛 Fixes

  • Fixed copy button not working in non-secure contexts (#229)
  • Fixed empty Plex username being displayed in the UI (#231)

♻️ Internal Improvements

  • Improved queue architecture for better fault tolerance
  • Cleaner request lifecycle management
  • Better separation between submission and processing layers

v2.3.1

23 Feb 10:00

Choose a tag to compare

This update introduces a powerful new AI-driven search experience, along with security enhancements, routing fixes, and internal refactors.

🧠 AI Search

Describe what you want to watch and the AI will find it for you, also personalized to your viewing history.

A brand-new intelligent search system powered by LLM integration and TMDb.

Highlights

  • 🔎 AI-powered natural language search
  • 🎯 Personalized suggestions based on viewing history
  • 🚫 Automatic exclusion of already requested TMDb IDs
  • 🕘 Recent AI search history for improved contextual results
  • 🎬 Full TMDb integration

🔒 Security Improvements

  • API keys and tokens are now automatically redacted from logs to prevent sensitive data exposure.

🐛 Critical Fixes

  • Improved subpath handling in router.
  • Updated settings display consistency.

⚙️ Integration & Configuration

  • Added new environment variables for OMDb and TMDb.
  • Added unit tests covering the new integrations.

🎨 UI Enhancements

  • Added toggle to use a static background color instead of dynamic images.
  • Added option to disable background blur effect.
  • Removed the General settings tab:
    • Some functionalities have been moved into jobs.
    • Subpath configuration has been relocated and is now configurable under Advanced Settings.

♻️ Internal Improvements

  • Migrated LLM service to AsyncOpenAI client for improved async handling.
  • Lazy initialization of the login lock in the Jellyseer client.
  • Updated LLM "not configured" warning message.
  • Removed deprecated General Settings component and updated configuration structure.

v2.2.1

22 Feb 09:17

Choose a tag to compare

✨ Added

  • IMDb Rating Filtering (OMDb Integration): Added support for filtering content by IMDb rating in Discover and Recommendations using OMDb API.
  • Minimum Runtime Filter: Introduced a configurable minimum runtime filter for automation and TMDb client searches (#145).
  • Configurable Seer Request Delay: Added customizable wait time between Seer requests to better control automation timing and prevent rate limits (#118).
  • User Attribution in Requests: Requests now include user information in DatabaseManager and the Requests page for improved tracking and clarity.
  • Optional Blur Disable (Performance Mode): Added an option to disable blur effects for better performance on low-end devices.

🛠 Improved

  • Plex Library Handling: Improved Plex library ID matching logic to prevent recently added items from being skipped.
  • Library ID Consistency: Standardized Plex library IDs handling (consistent string format) for improved reliability.
  • Subpath & Proxy Compatibility: Enhanced reverse proxy support with more robust asset rendering and improved subpath handling.
  • Overall Stability: Refined filtering logic and internal request flow for better consistency across integrations.

🐛 Fixed

  • TMDb Client TypeError: Resolved TypeError: 'int' object is not subscriptable occurring in TMDb filters.
  • Subpath Crashes: Fixed crashes related to subpath configurations.
  • Proxy Blank Page Issue: Resolved blank page issues when running behind reverse proxy setups.

🙌 Contributors

Special thanks to @unsnow-iac for multiple fixes and performance improvements included in this release.

📌 Notes

This release focuses on:

  • More precise and customizable content filtering
  • Better Plex compatibility and reliability
  • Improved performance on low-end hardware
  • Stronger proxy/subpath stability
  • More flexible automation timing

The new IMDb filtering feature requires OMDb configuration if rating-based filtering is desired.

Feedback and bug reports are always welcome ❤️

v2.2.0

21 Feb 13:36

Choose a tag to compare

✨ Added

  • LLM Provider Integration: Added support for connecting external AI providers such as ChatGPT (OpenAI), Ollama, OpenRouter, LiteLLM or other OpenAI-compatible endpoints.
  • AI-Powered Recommendations (Optional): Introduced an advanced recommendation engine that leverages configured LLM providers to generate contextual suggestions based on watch history.
  • AI Rationale Display: Each AI-generated recommendation now includes a clear "AI Reasoning" section explaining why the content was suggested.
  • Multi-Job Similarity Search: Implemented multi-job searching for content similar to previously watched media or based on selected criteria.
  • Sonarr/Radarr Download Profile Sync: Added support for importing and distinguishing download profiles directly from Sonarr and Radarr.
  • Enhanced AI Provider Configuration: Expanded AI provider settings with additional input fields, improved visibility, and support for custom base URLs.
  • Granular WebUI Settings Management: Settings can now be edited more granularly directly from the WebUI.
  • Cron Preset Validation: Added validation for cron presets in AdditionalSettings and SettingsGeneral components.

🛠 Improved

  • Recommendation Filtering: Implemented strict duplicate detection to prevent already watched or existing content from being recommended.
  • Metadata Handling: Improved TMDb ID matching flow and metadata preservation for Plex and Jellyfin/Jellyseer integrations.
  • Configuration Persistence: Enhanced advanced settings persistence and updated configuration parameters for better stability.
  • Code Quality: Improved type-hinting and internal structure for better maintainability.

🐛 Fixed

  • Malformed Requests Handling: Improved handling of malformed requests to prevent unexpected failures.
  • Missing TMDb Metadata: Fixed issues related to incomplete or missing TMDb metadata.
  • Advanced Settings Persistence: Resolved issues where beta/advanced settings were not properly saved.

📌 Notes

This release introduces a major functional upgrade with optional LLM-based recommendations and contextual reasoning, while maintaining full backward compatibility.

The focus of this update is:

  • Smarter and more transparent recommendations
  • Better integration with Sonarr/Radarr and media servers
  • Improved configuration flexibility
  • Increased stability and reliability

LLM integration is fully optional and requires configuring a compatible provider in Settings.

Feedback and bug reports are always welcome ❤️

v2.1.8

20 Feb 13:53

Choose a tag to compare

🐛 Fixed

  • Fixed an issue where new installations using SQLite could crash on first startup
  • Fixed a bug where some successful media requests were not being properly registered
  • Fixed a crash that could happen when requesting TV shows
  • Improved stability when some request data (user or source) was missing or incomplete

✨ Enhancement

  • Database is now automatically created and configured on first launch
  • Improved overall reliability of media request handling
  • Better compatibility with SQLite environments

🙏 Special thanks to @unsnow-iac for the contribution and PR that helped resolve these issues.

v2.1.7

18 Feb 09:13

Choose a tag to compare

🐛 Fixed

  • Prevent docker-info timeout on slow systems

v2.1.6

29 Jan 16:34

Choose a tag to compare

🐛 Fixed

  • Fix crash in scheduled runs and force run caused by mixed SELECTED_USERS types (#180)
  • Fix double transition on TMDB background

✨ Enhancement

  • Improve Request tab styling in dashboard page
  • Improve config wizard flow UI