Releases: Moonfin-Client/Plugin
v1.9.1
Moonbase Server Plugin 1.9.1 Release Notes 
Features
- The web theme editor gained a random theme generator that builds a complete, coherent palette from a random base and accent hue, while keeping your theme id, name, and description. The theme id validation message was also clarified.
Bug Fixes
- Media Bar trailers on web were reworked so YouTube trailer playback and advancing to the next slide now work correctly.
- Web playback sessions are now reported as stopped when you close or navigate away from the browser tab, using a page exit beacon, so they no longer linger as active on the server.
- The sidebar now follows desktop behavior in desktop browsers, instead of using the mobile layout #348.
- Preferences are now parsed and type coerced more robustly for web compatibility, fixing settings that could fail to load or save when stored as browser strings #322.
- The refresh rate switching and audio output mode settings are now hidden on the web build, where they do not apply.
- ASS and PGS subtitles now render correctly on web, with the necessary fonts bundled.
Contributors
Thanks to everyone who contributed to the web changes in this release:
v1.9.0
Moonfin Server Plugin 1.9.0 Release Notes 
Note
We now have a Moonfin Discord Community! Come hang out, ask questions, and share feedback!
This is hands down THE biggest update the plugin has EVER seen. Short version: The old overlay on top of Jellyfin Web? Gone. It will never again interfere with your plugins, themes, or anything you like again. It has instead been replaced by a proper Moonfin Web client, accessed the same way: press the Moonfin icon next to SyncPlay. On first load it will take a moment to fully load the interface and log you in but once it does, you're in for a fun time. It's the same Moonfin experience you enjoy on other clients, but on web AND it doesn't interfere with your Jellyfin Web UI.
Now to the fun stuff:
The Plugin admin panel has been completely revamped. You can now fully customize the settings you set up for all your Moonfin users
This is also where you upload your custom themes for all your Moonfin clients to use:
WAIT WHAT? CUSTOM THEMES?!?!
Yes dear reader, you read right. Custom. Themes.
You can access it from Moonfin Web. Go to Settings -> Theme Editor. Create a totally kickass theme then export the json and upload it to your admin panel and BAM, it's available on ALL Moonfin clients instantly.
Have you ever wanted to send a message to all your users at the same time but didn't know how? Well now you can! Within the admin panel you have a new feature to message all your users at once and tell them to grab you a drink, go to sleep, or better yet: prepare for battle!
This is pretty much all the new cool stuff with the plugin update. Now for the technical part of the release notes.
Features
- Refreshed the Moonbase plugin experience with the Moonfin Flutter web app, now served from
/Moonfin/Web/. - Replaced the older JavaScript overlay frontend with bundled Moonfin web and theme assets for a smoother setup.
- Added a built-in theme editor at
/Moonfin/Web/theme/, including admin-managed custom theme uploads and validation. - Added discovery endpoints for plugin web startup:
/Moonfin/Discoveryand/Moonfin/Discovery/discover. - Added custom theme APIs and services for listing, retrieving, uploading or replacing, deleting, and validating themes.
- Improved settings sync and admin tools with better global/profile behavior and admin broadcast support.
- Added media bar fallback.
Breaking Changes
- Removed the old
frontend/srcoverlay build pipeline in favor of bundled Moonfin web assets from Moonfin-Core.
v1.8.2
Moonfin Server Plugin 1.8.2 Release Notes 
Note
We now have a Moonfin Discord Community! Come hang out, ask questions, and share feedback!
Features
- Media Bar Enhanced is now available as an option in the desktop media bar settings. (#98)
- Clicking a row item now navigates to the correct library, and playback from the Continue Watching row works properly again. (#60)
Bug Fixes
- Details page buttons were too large on some screens (allegedly), they've been resized to something more reasonable. (#100)
- Clicking items from third-party home screen section plugins no longer incorrectly triggers Moonfin's custom detail page. (#96)
- Admin default settings now correctly propagate to existing users when changed. (#101)
- The Jellyseerr/Seerr discover page was crashing to an error screen because the proxy was wrapping responses in an unexpected JSON envelope. That's fixed now. (#108)
- The global profile now saves reliably, the media bar state persists correctly across Moonfin and Paradox themes, and users no longer see genres or library sections they don't have access to. (#87)
v1.8.1
Moonfin v1.8.1 Release Notes 
Bug Fixes
- Fixed Moonfin UI not loading on Jellyfin instances deployed under a reverse proxy sub-path
- Fixed Moonfin login detection using private Jellyfin API internals that could return falsy values depending on Jellyfin version, causing the plugin to never initialize
- Fixed Jellyseerr proxy (cookies, HTML/CSS rewrites, injected script) using hardcoded root-relative paths that broke under reverse proxy sub-path deployments
- Fixed Letterboxd ratings showing doubled values for entries cached prior to v1.7.0
v1.8.0
Moonfin v1.8.0 Release Notes 
Features
- Added compatibility with @IAmParadox27 's media bar and Home Screen Sections rows
- Added support for @ranaldsgift 's KefinTweaks rows
Note
The rows are not yet implemented in the other clients. This is a manual method that will take time but the framework for implementation is done. The media bar compatibility is for web UI only under the desktop profile
- Media bar went full screen like other clients
- Added sync mode clarity dialog box
- Added trailer overlay in details screen
- Added details blur/opacity controls and new endpoints so it syncs with clients
- Added special features, chapters, and collections in details
- Added back button and fixed details tint behavior
- Added favorite button for people details
- Added favorite/watched indicators in details and library
- Updated libraries UI
- Updated collections to display contents in release order
- Updated Moonfin plugin logo
- Also updated the Moonfin UI entry point. It's still under user settings --> Moonfin but now it's also here, next to the SyncPlay button
Bug Fixes
- Fixed details tint behavior that was causing the original jellyfin ui's backdrop image to look black
- Fixed header bar glitch that was causing the library title to scroll with users in the library
- Fixed plugin and UI not applying correctly (#60, #66, #76)
- Fixed removed media bar items that did not have a backdrop and removed items that users did not have access to.
- Fixed HDR badge truthy logic and expanded HDR range handling
- Fixed trailer button forwards to home page
- Fixed special features not showing with new details page
- Fixed Seerr invalid CSRF token (#53, #63)
- Fixed Seerr icon not showing on toolbar
- Fixed Seerr integration slowness
- Fixed /Moonfin/Settings returns 404 via reverse proxy
Contributors
v1.7.1
Moonfin v1.7.1 
New Features:
- Media Bar Genre Exclusions - exclude specific genres from the media bar so items from those genres won't appear, configurable per-user and as admin defaults
- GET /Moonfin/Genres endpoint - returns all genre IDs and localized names for the genre picker
Bug Fixes:
- Fixed Jellyseerr CSRF token errors causing failed authentication and proxy requests
- Fixed Jellyseerr button not appearing when navbar/sidebar initializes after config is dispatched
- Fixed media bar showing loading state indefinitely when no items are returned
- Fixed media bar active class being added when there are no items to display
- Fixed unnecessary Content-Type header on GET requests
- Fixed duplicate event listeners on collection/library picker re-renders
Improvements:
- CSRF tokens are now fetched and sent for all Jellyseerr write operations with a fallback for IP-based URLs
- Media bar loading class is now removed in error and empty states
Contributors
v1.7.0
Moonfin v1.7.0 
New Features
- Home Screen Row Ordering - drag and drop to reorder or hide home screen sections like Continue Watching, Next Up, and Latest Media
- Media Bar Library Filtering - choose specific collections, libraries, or playlists to show in the media bar instead of pulling from all libraries
- MDBList rating source labels can now be shown or hidden
New Endpoint
GET /Moonfin/MediaBar- returns media bar items based on user settings
Note
PLEASE NOTE: NEW FUNCTIONALITY IN THE MEDIA BAR HAS NOT BEEN IMPLEMENTED IN TV CLIENTS YET
Bug Fixes
- Fixed playback not working from the details page
- Fixed media bar showing on pages other than the home screen
- Fixed Jellyseerr button not appearing after settings sync
- Fixed settings not resetting when switching between users on the same device
- Fixed details page interfering with media selection dialogs
- Fixed incorrect Letterboxd rating values
Improvements
- Reusable drag-and-drop sortable list component
CI/CD
- GitHub Actions build workflow with PR reporting
- Fixed workflow permissions for fork PRs
Contributors
v1.6.0
Moonfin v1.6.0 Release Notes 
What's New
Bug Fixes
- Fixed Seerr/Jellyseerr proxy navigation — Search, sidebar links, and in-app navigation in the Seerr/Jellyseerr iframe no longer load indefinitely. The proxy script now intercepts
history.pushState/replaceStateand handlesRequestobjects passed tofetch(). - Fixed user settings not saving correctly — Refactored settings mapping in the admin config page and frontend storage for consistency, fixing issues with undefined values not being handled properly.
- Fixed navbar background — Changed navbar background to use a gradient.
- Fixed admin config page visibility — Moonfin config page now correctly appears in the Jellyfin admin sidebar.
Improvements
- Versions on details screen — Media version/quality information is now displayed on the details overlay.
- Passwordless user authentication — Authentication now requires only a username for Jellyfin users that don't have passwords set.
- MDBList memory optimization — Batch task refactored to improve memory management; cache service now uses stream-based JSON I/O.
Contributors
- @coredev-uk — navbar gradient fix (#35)
- @enyineer — admin config page sidebar fix (#25)
v1.5.1
v1.5.0
Moonfin v1.5.0 
Features
- Device-Specific Settings Profiles - Configure separate settings for desktop, mobile, and TV. Each device profile inherits from a shared global base, so you only need to override what differs per device. Profiles sync across clients alongside your global settings.
- Admin Default Settings - Admins can now set server-wide default values for any user setting from the plugin config page. Users who haven't customized a setting will automatically inherit the admin default.
- Sync Toggle - Users can now enable or disable settings synchronization to the server from the settings panel.
Improvements
- Season posters now fall back to the series poster when a season-specific poster isn't available
- Trailer fetching is now lazy - trailers are loaded per displayed media bar item instead of bulk-querying
RemoteTrailersfor all candidates, which was causing timeouts on large libraries
Bug Fixes
- Fixed media bar auto-advance timer and trailer playback continuing in the background after navigating away from the home page
- Fixed media bar not stopping on admin dashboard pages and the video player