Skip to content

Releases: m1ckyb/Librarrarian

0.13.0

0.13.0 Pre-release
Pre-release

Choose a tag to compare

@m1ckyb m1ckyb released this 08 Dec 03:47
043be3d

What's Changed

  • [WIP] Add items-per-page dropdown and fix job queue buttons by @Copilot in #94
  • Fix job queue buttons failing silently due to missing null checks by @Copilot in #95
  • Revert "Fix job queue buttons failing silently due to missing null checks" by @m1ckyb in #96
  • Fix job queue buttons blocked by missing null checks on tab-specific elements by @Copilot in #97
  • Add sort controls, pagination options, and clear-all button to UI by @Copilot in #93
  • Fix library settings persistence in sync mode and add symlink detection by @Copilot in #98
  • Fix debug settings modal display and add Christmas snow animation by @Copilot in #100
  • Fix dashboard crash from mismatched settings dictionary structure by @Copilot in #101
  • Fix debug modal display and add Summer Christmas theme by @Copilot in #102
  • Add diagnostics and error handling to Debug Settings modal by @Copilot in #103
  • Investigation: Debug Settings Modal implementation review by @Copilot in #104
  • Fix JavaScript console errors from orphaned jQuery code and async/await syntax by @Copilot in #105
  • Fix library type dropdowns not saving in sync mode and improve debug modal feedback by @Copilot in #106
  • Revert PR #106: Fix library sync display to show only primary server by @Copilot in #107
  • Fix debug modal initialization and library sync UI issues by @Copilot in #108
  • Fix monitored libraries badge display and implement library linking persistence in sync mode by @Copilot in #109
  • Fix library linking persistence, horizontal scrollbar, and migration loop by @Copilot in #110
  • Add Plex token manual input and fix library display issues by @Copilot in #111
  • Fix Monitored Libraries dropdown cutoff by adjusting column layout by @Copilot in #112
  • Fix sync mode form inputs disabled after async library load by @Copilot in #115
  • Disable multi-server sync feature due to persistent save failures by @Copilot in #116
  • Add theme-aware snowflake colors for Summer Christmas visibility by @Copilot in #117
  • Fix snowflake colors not updating when switching between Christmas themes by @Copilot in #118
  • Update Summer Christmas theme background from cream to sky blue by @Copilot in #119
  • Fix Summer Christmas theme button visibility with high-contrast colors by @Copilot in #120
  • Add DEVMODE debug modal, Christmas theme, and fix Jellyfin modal button layout by @Copilot in #99
  • 0.13.0 by @m1ckyb in #121

Full Changelog: 0.12.0...0.13.0

0.12.0

0.12.0 Pre-release
Pre-release

Choose a tag to compare

@m1ckyb m1ckyb released this 05 Dec 07:18
763b908

What's Changed

  • Add option to suppress verbose operational log messages by @Copilot in #73
  • Add Jellyfin support with granular logging controls by @Copilot in #74
  • Implement Jellyfin scanning, post-transcode updates, and primary server routing by @Copilot in #75
  • Restructure Options page: consolidate media servers, separate logging controls by @Copilot in #77
  • Restore media scanner layout with two-column design and multi-server library linking by @Copilot in #78
  • Refactor Primary Media Server selection and fix tab/library display logic by @Copilot in #79
  • Fix Plex/Jellyfin authentication error messages and add connection testing by @Copilot in #81
  • Fix Plex test connection returning "invalid data" error by @Copilot in #82
  • Fix Plex authentication by parsing XML responses from /identity endpoint by @Copilot in #84
  • Add modify configuration workflow for Plex and Jellyfin servers by @Copilot in #85
  • Fix Plex server URL not persisted after initial authentication by @Copilot in #86
  • Fix Jellyfin test connection, sync checkbox state, and add tooltip by @Copilot in #87
  • Fix form handler overwriting server settings managed via API by @Copilot in #88
  • UI improvements: Jellyfin auto-refresh, purple badges, tab switching, and force clear by @Copilot in #89
  • Add server badges to library sync UI and unify Force checkbox styling by @Copilot in #90
  • Fix missing server badges in combined libraries view by @Copilot in #91
  • Fix multi-server library sync UI to show single unified container by @Copilot in #80
  • 0.12.0 by @m1ckyb in #92

Full Changelog: 0.11.7...0.12.0

0.11.7

0.11.7 Pre-release
Pre-release

Choose a tag to compare

@m1ckyb m1ckyb released this 03 Dec 07:06
7921fca

What's Changed

  • Move ETA badge next to Codec in active nodes footer by @Copilot in #65
  • Fix timezone-aware datetime handling in ETA calculation by @Copilot in #66
  • Fix ETA display to respect TZ environment variable by @Copilot in #67
  • Detect and manage silently failed transcodes stuck in encoding state by @Copilot in #68
  • Fix worker crash on non-UTF-8 FFmpeg output by @Copilot in #69
  • Treat stuck jobs as errors in View Errors modal with re-add/clear actions by @Copilot in #70
  • Fix FileNotFoundError when external processes move files during transcode by @Copilot in #71
  • 0.11.7 by @m1ckyb in #72

Full Changelog: 0.11.6...0.11.7

0.11.6

0.11.6 Pre-release
Pre-release

Choose a tag to compare

@m1ckyb m1ckyb released this 02 Dec 17:12
00b242d

What's Changed

  • 0.10.11 by @m1ckyb in #18
  • 0.11.0 by @m1ckyb in #32
  • 0.11.2 by @m1ckyb in #35
  • 0.11.4 by @m1ckyb in #48
  • Fix job force-remove logic, node button states, and standardize progress bar colors by @Copilot in #49
  • Fix ambiguous column reference in jobs query and add DB_PORT configuration by @Copilot in #50
  • Prevent duplicate worker instances via session token authentication by @Copilot in #51
  • Add global node control buttons to Active Nodes tab by @Copilot in #52
  • Standardize button styles to outline design with icons across application by @Copilot in #53
  • Standardize badge styles to outline design and fix Alpine timezone support by @Copilot in #54
  • Add ETA display, standardize badge styling, implement database backups, and fix pagination z-index by @Copilot in #55
  • Add configurable backup scheduling and remove UI dividers in Options page by @Copilot in #56
  • Fix NameError: remove invalid @require_login decorator by @Copilot in #57
  • Fix database backup failing with missing pg_dump and incorrect process wait by @Copilot in #58
  • Fix database_backup_thread working outside application context by @Copilot in #59
  • Add backup file management modal with retention policies and enable/disable controls by @Copilot in #60
  • Fix maintenance settings: remove obsolete options, correct backup directory, suppress health endpoint logs by @Copilot in #61
  • UI improvements: larger footer text, slider controls, conditional field visibility, reduced log noise by @Copilot in #62
  • Clean up disabled settings display text by @Copilot in #63
  • 0.11.6 by @m1ckyb in #64

Full Changelog: 0.11.4...0.11.6

0.11.4

0.11.4 Pre-release
Pre-release

Choose a tag to compare

@m1ckyb m1ckyb released this 01 Dec 17:32

What's Changed

  • QoL improvements for *arr integration UI by @Copilot in #36
  • Add visual feedback for manual media scan and data export functionality by @Copilot in #37
  • Fix path translation for transcode and rename jobs by @Copilot in #38
  • Docker Compose configurations to standardize service naming by @m1ckyb in #39
  • Use multi-stage Alpine builds to slim down Docker images by @Copilot in #40
  • replacing the dependency on the dashboard service with a dependency on the librarrarian by @m1ckyb in #41
  • Fix migrations running every startup and failed files modal not displaying by @Copilot in #42
  • Security: Fix SSL verification bypass, path traversal, and add security headers by @Copilot in #43
  • Fix path validation blocking non-standard media mount points by @Copilot in #44
  • Expand README.md with comprehensive documentation by @Copilot in #45
  • Fix filepath validation blocking all media files due to root directory check by @Copilot in #46
  • Fix VAAPI hardware acceleration initialization failure (FFmpeg exit code 251) by @Copilot in #47

Full Changelog: 0.11.2...0.11.4

0.11.2

0.11.2 Pre-release
Pre-release

Choose a tag to compare

@m1ckyb m1ckyb released this 01 Dec 07:24

What's Changed

  • Fix database name mismatch causing fresh deployment failures by @Copilot in #33
  • Fix database initialization deadlock on fresh deployments by @Copilot in #34

Full Changelog: 0.11.0...0.11.2

0.11.0

0.11.0 Pre-release
Pre-release

Choose a tag to compare

@m1ckyb m1ckyb released this 01 Dec 03:00

What's Changed

  • Merge pull request #8 from m1ckyb/develop by @m1ckyb in #9
  • Fix media source visibility toggle in Integrations tab by @Copilot in #10
  • Set up Copilot instructions by @Copilot in #12
  • [WIP] Set up instructions for Copilot in repository by @Copilot in #15
  • Fix 24-hour time format toggle not working by @Copilot in #13
  • Fix Media Source Management: Separate Hide checkbox from Ignore option by @Copilot in #16
  • Fix UI scan feedback variable scoping for reliable progress display by @Copilot in #17
  • Fix Sonarr renaming and add auto-rename after transcode by @Copilot in #19
  • Add Radarr rename jobs feature mirroring Sonarr functionality by @Copilot in #20
  • Add Lidarr rename scanner with queue job support by @Copilot in #21
  • UI cleanup: Remove Hide switches, add Show Ignored toggle, fix Theme/Errors bugs, add *arr stats by @Copilot in #22
  • Fix scan button race condition and monitored libraries hide logic by @Copilot in #23
  • Fix *arr scan UI race conditions and theme dropdown system preference by @Copilot in #24
  • Fix scan buttons race condition, theme dropdown, and stats loading by @Copilot in #25
  • Fix scan UI: elapsed time format, button visibility, progress box position, episode count by @Copilot in #26
  • Fix UI issues: codec labels, VP9 support, scan cancel behavior by @Copilot in #27
  • Remove Sonarr auto-rescan, fix quality mismatch scanner, reduce log noise by @Copilot in #28
  • feat: Job queue filtering and improved Sonarr quality scan output by @Copilot in #29
  • Fix Show Ignored toggle not hiding items with None (Ignore) selection by @Copilot in #30
  • Rebrand CodecShift to Librarrarian by @Copilot in #31

Full Changelog: 0.10.10...0.11.0

0.10.11

0.10.11 Pre-release
Pre-release

Choose a tag to compare

@m1ckyb m1ckyb released this 30 Nov 04:34
e74defc

What's Changed

  • Merge pull request #8 from m1ckyb/develop by @m1ckyb in #9
  • Fix media source visibility toggle in Integrations tab by @Copilot in #10
  • Set up Copilot instructions by @Copilot in #12
  • [WIP] Set up instructions for Copilot in repository by @Copilot in #15
  • Fix 24-hour time format toggle not working by @Copilot in #13
  • Fix Media Source Management: Separate Hide checkbox from Ignore option by @Copilot in #16
  • Fix UI scan feedback variable scoping for reliable progress display by @Copilot in #17
  • 0.10.11 by @m1ckyb in #18

Full Changelog: 0.10.10...0.10.11

0.10.10

0.10.10 Pre-release
Pre-release

Choose a tag to compare

@m1ckyb m1ckyb released this 28 Nov 10:13
ef5aaff

What's Changed

  • Fix: Hide libraries set to "None (Hide)" from Options tab library list by @Copilot in #7
  • Develop by @m1ckyb in #8

New Contributors

  • @Copilot made their first contribution in #7

Full Changelog: 0.10.6...0.10.10

0.10.6

0.10.6 Pre-release
Pre-release

Choose a tag to compare

@m1ckyb m1ckyb released this 24 Nov 06:18
27b8324

[0.10.6] - 2025-11-24 - Stability Fix

This is a minor stability release that fixes a critical bug with the stale file cleanup feature.

Fixed

  • Stale File Cleanup Timeout: Fixed a Gunicorn worker timeout that occurred when queuing a stale file cleanup on large media libraries. The cleanup scan is now a non-blocking, asynchronous background task, providing an instant response to the UI.

[0.10.5] - 2025-11-24 - OIDC Authentication & UI Polish

This release takes the experimental authentication features from the previous version and makes them production-ready. It includes a series of critical bug fixes for the OIDC login flow and several UI enhancements for a more polished user experience.

Added

  • Dynamic Welcome Message: The dashboard now greets logged-in users with a dynamic message (e.g., "Good morning," "Good afternoon") based on the server's time of day.

Changed

  • OIDC Production Ready: The OpenID Connect (OIDC) integration is now stable and considered ready for production use.
  • UI Polish:
    • The logged-in user's name and welcome message are now displayed prominently in the main dashboard header.
    • The welcome message was moved to appear after the logout button for better visual flow.
    • The "Logout" button's styling now matches other header buttons for a consistent look.
  • Cleaned Footer: The user's name and login/logout buttons have been removed from the shared footer to avoid redundancy.

Fixed

  • OIDC Login Flow: Fixed a series of critical bugs that prevented the OIDC login from working, including NameError on startup, redirect loops, incorrect callback URLs behind a reverse proxy (Redirect URI Error), invalid token verification (Invalid key set format), and unsupported signing algorithms (UnsupportedAlgorithmError).
  • Local Login Loop: Resolved a redirect loop that occurred during local login attempts.

[0.10.4] - 2025-11-24 - Secure Access

This release introduces a comprehensive and flexible authentication system to secure the dashboard.

Added

  • Authentication System: Implemented a master AUTH_ENABLED switch to protect the entire dashboard.
  • Local Login: Added a local username/password login method, configured via environment variables. The password is required to be base64 encoded for improved security.
  • OIDC Integration (Untested): Added support for OpenID Connect (OIDC) as a primary authentication method. This feature is new and should be considered experimental.

[0.10.3] - 2025-11-24 - The Polishing Act

This is a significant stability and bug-fix release that addresses numerous issues across the entire stack, from the worker's core logic to the dashboard's UI rendering.

Fixed

  • Job Distribution: Fixed a critical bug where the dashboard would incorrectly report the job queue as "paused", preventing workers from receiving jobs.
  • Progress Bar: Fixed an issue where the progress bar on worker nodes was not displaying or updating during a transcode.
  • UI State & Rendering:
    • The "Pause Queue" button now correctly updates to "Resume Queue" to reflect the current state.
    • The "Node" and "Codec" columns in the History table now display correct information instead of "undefined".
    • Fixed a bug causing "undefined" to appear on idle node cards.
    • The live FPS and Speed metrics have been re-implemented and are now correctly displayed in the node card footer.
  • Job Queue Sorting: The job queue is now correctly sorted to always show "Encoding" jobs at the top for better visibility.

[0.10.2] - 2025-11-24 - Cluster Control

This release focuses on massive stability improvements, extensive bug fixing, and adding critical quality-of-life features for queue and cluster management.

Added

  • Manual Plex Scan: A "Manual Scan" button has been added to the Job Queue page, allowing users to trigger a library scan on demand for immediate feedback.
  • Force Rescan: A "Force" checkbox was added next to the manual scan button. When checked, the scanner will ignore the existing job and history lists, re-queueing any non-HEVC files it finds.
  • Pause/Resume Job Queue: A "Pause Queue" button has been added to the UI. When paused, the dashboard will stop distributing new jobs to workers, allowing the cluster to gracefully finish its current work.
  • Clear Job Queue: A "Clear Queue" button was added to instantly and permanently delete all jobs from the pending queue.
  • Configurable Auto-Scan: A "Rescan Delay" setting has been added to the Options page. This allows users to define how many minutes the system should wait between automatic scans. Setting it to 0 disables automatic scanning entirely.
  • Job Queue Pagination: Implemented a full, smart pagination system for the Job Queue page. This prevents the UI from locking up when loading thousands of jobs and makes navigation easy.
  • Centralized Settings API: Added a new /api/settings endpoint to the dashboard, allowing workers to fetch their configuration centrally.

Changed

  • Asynchronous Scanning: The manual scan process is now fully asynchronous. The API endpoint immediately returns a response to the UI while the actual scan runs in the background, fixing all Gunicorn worker timeout errors.
  • UI Layout: The Plex settings on the Options page have been reorganized into a cleaner two-column layout.

Fixed

  • Critical Scanner Bugs:
    • Resolved a series of AttributeError and TypeError crashes that prevented the scanner from correctly reading video codec information from the Plex API.
    • The scanner now correctly calls video.reload() to fetch full media details, fixing an issue where all codecs were reported as N/A.
    • The scanner now correctly iterates through all of a video's "parts", ensuring it finds the correct video stream even in libraries with optimized versions.
    • The library filter was fixed to correctly identify and scan "Music Videos" and "Other Videos" (e.g., YouTube) libraries.
  • Job Queue Failures:
    • Fixed a bug where the UI would show "Failed to fetch job queue" because the /api/jobs endpoint was missing.
    • Fixed a database commit issue where the scanner would identify files but fail to save them to the job queue.
  • Background Thread Stability: Fixed a RuntimeError: Working outside of request context crash that occurred when the automatic scanner tried to access web request data.
  • UI Auto-Refresh Bug: The Job Queue page no longer reverts to page 1 on auto-refresh and now correctly stays on the user's currently selected page.
  • Job Queue Rendering: Fixed a UI rendering bug where a "ghost" job from a previous page would sometimes appear at the bottom of the current page.
  • Standalone Worker Execution: The worker script now defaults to connecting to localhost, fixing a DNS error and allowing it to be run outside of Docker for development and testing.
  • Worker Startup Crash: Fixed an AttributeError that caused the worker script to crash immediately on startup due to an incorrect method name.
  • Form Resubmission Error: Implemented the Post-Redirect-Get (PRG) pattern for the Options page, eliminating the browser warning on page refresh after saving settings.

[0.10.1] - 2025-11-23 - The Scanner Awakens

This is a stability release that ensures the new Plex integration features from v0.10.0 run correctly in a production Docker environment.

Changed

  • Database Initialization: The database initialization logic is now handled by a dedicated init_db.py script. The docker-compose.yml file has been updated to run this script before starting the web server, ensuring the database is ready and preventing race conditions.

Fixed

  • Plex Scanner in Docker: Corrected a critical bug where the background Plex scanner thread would not start when the application was run with Gunicorn inside a Docker container. The scanner now initializes correctly, allowing for automated job creation in production.

[0.10.0] - 2025-11-23 - User-Friendly Plex Integration

Added

  • In-App Plex Authentication: Implemented a secure, PIN-based OAuth flow directly within the dashboard. Users can now link their Plex account by visiting plex.tv/link and entering a code, eliminating the need to handle authentication tokens manually.
  • Dynamic Plex Library Selection: Once authenticated, the "Options" tab now dynamically fetches and displays a list of the user's available Plex libraries, allowing them to be selected for monitoring via checkboxes.
  • Plex Login/Logout: Added "Link Plex Account" and "Unlink Plex Account" buttons to the UI for managing the authentication state.

Changed

  • Configuration Storage: All Plex-related settings (URL, Token, and Monitored Libraries) are now stored securely in the database and managed via the UI, not in environment files.
  • Options UI: The "Options" tab was redesigned to support the new Plex authentication flow and dynamic library list.

Removed

  • Plex Environment Variables: Removed the requirement for PLEX_URL, PLEX_TOKEN, and PLEX_LIBRARIES in the .env file, simplifying the initial setup process.