Skip to content

Releases: Moonfin-Client/Plugin

2.0.1

Choose a tag to compare

@RadicalMuffinMan RadicalMuffinMan released this 23 Jul 20:20

Moonbase Server Plugin 2.0.1 Release Notes github

Features

Server

  • Added password-less Seerr sign in through a Quick Connect bridge, so users who log in with Quick Connect get signed into Seerr silently without entering separate credentials.
  • Added a server-side Radarr and Sonarr calendar proxy, letting clients pull upcoming release calendars through the plugin, with the calendar reachable for non-admin accounts.
  • Settings sync grew a lot. New settings profile properties back the client's expanded sync coverage, which now spans 207 settings instead of 87.
  • Game metadata matching was hardened, with accent normalization and fuzzy suffix matching so ROMs line up with the right artwork and details more often.
  • On Emby, Moonfin web assets are now served with an explicit content type, so the frontend loads correctly instead of being handed back with the wrong MIME type.

Moonfin Web

The bundled web client picks up everything from the latest Moonfin release. The highlights:

  • A music overhaul, with a new Songs sublibrary on the Audio page that has its own sorting and A to Z letter filtering, Shuffle and Shuffle All buttons on artist and album pages, correct resume positions, and playlist resume that shows watched state on individual tracks.
  • A rebuilt downloads experience. Downloads now run on the native background_downloader engine for reliability, with a download location setting, the two download settings screens merged into one, a clear Finalizing state instead of a stuck 99 percent, external sidecar subtitles fetched in the background, and a dedicated Downloaded Games screen.
  • A retro games library browser, with a game system and games navigation hierarchy that follows Moonfin's other library screens, viewport-ahead artwork loading, an artwork load scheduler that prioritizes the focused row, and respect for global preferences like poster size, UI scale, and backdrop settings.
  • Emby Skip Intro support driven by chapter markers.
  • Wider settings sync, moving from 87 synced settings to 207, so far more of your preferences follow you across devices, including new external list and calendar row toggles that follow the pushed Moonbase default row config.
  • More detail and home layout controls, including a background opacity slider for modern detail screens, customizable padding settings with better TV row peeking, series posters for episodes in poster rows, and defaults tuned per platform such as mobile starting on classic rows.
  • A media bar toggle for YouTube trailer captions, and the media bar dots now hide while a trailer plays.
  • Playback gained HEVC transcode targets when the server allows HEVC encoding, and audio track selection now persists its index, title, and language across episodes. Audio routing and TrueHD gating were also reworked so lossless and multichannel output behaves correctly.

Bug Fixes

Server

  • Fixed profile corruption by writing user data atomically, and added a healing pass that repairs profile files corrupted before atomic writes shipped.
  • Fixed Since You Watched rows for non-admin accounts by adding the server-wide API key fallback and stripping, mirrored into the Emby settings service.
  • Content hiding preferences now merge into the global profile instead of overwriting it, so per-device hiding no longer wipes the shared profile.
  • Fixed the Rotten Tomatoes critics rating mismatch coming from MDBList.
  • Fixed Seerr sessions being evicted on 403 Forbidden responses, and stopped a failed auto-login leaving Seerr stuck as unavailable.

Moonfin Web

  • Fixed the letter filter dropping folded titles in non-song browses, and fixed the music library backdrop showing the wrong library and ignoring hover.
  • Fixed Web UI subtitle rendering and OSD track sorting, and rendered non-Latin subtitles correctly.
  • Fixed wrong version playback on remux items with multiple versions, and stopped AV1 and HEVC Dolby Vision streams tagged as invalid from always transcoding.
  • Multi-server library browse now routes to the owning server, hidden library folders match their views by name, and the library visibility and Recently Added toggles work correctly.
  • Fixed the empty media bar on small libraries, restored its retry action, and optimized the media bar launch queries so they no longer strain server CPU and memory.
  • Fixed classic rows rendering with the banner media bar and info overlay, along with an initState crash and redundant rebuilds in the classic rows info overlay.
  • Seerr fixes: request refusals now show a real reason, request cancellation is restricted correctly, the 4K versus non-4K request toggle logic is fixed, and sub-library pages navigate properly.
  • Fixed backspace closing dialogs while you are editing text.
  • Fixed item deletion navigation, confirmations, and localized error reporting.
  • Fixed remote networking, concurrency, and caching issues, and only request CORS when the stream is actually cross origin.
  • Fixed the Emby Connect server URL gaining a trailing "?#", improved TV shows shuffle performance, and preserved home row content, scroll, and focus when returning from a details page.

Contributors

Thanks to everyone who contributed to the server and web changes in this release:

Thanks as well to the Weblate translators who keep Moonfin localized.

2.0.0

Choose a tag to compare

@RadicalMuffinMan RadicalMuffinMan released this 16 Jul 20:04

Moonbase Server Plugin 2.0.0 Release Notes github

Moonbase 2.0.0 is a big one on two fronts. The plugin now runs on Emby servers in addition to Jellyfin, and the bundled Moonfin Web client has been rebuilt with an EXTENSIVE amount of updates.

Features

Emby Support

  • Moonbase now ships as an Emby plugin, bringing settings sync, the Seerr proxy, custom rows, and the rest of the plugin's backend to Emby servers. The clients pick up live server events over the Emby websocket.

Active Downloads Dashboard

  • A new Active Downloads tab on the plugin dashboard shows every running download with live transcode metrics and who is downloading, and lets admins cancel jobs the same way the server does (#187).
  • Transcoded downloads are now also reported as server activity.

Seerr

  • Seerr push notifications are here. The plugin provisions webhooks and fans out notifications to your devices, and the Moonfin apps deliver them, so request updates, approvals and denials, issue reports, and added to library notices reach you on Android and iOS as system notifications and in-app banners in other platforms. Approvals can even be handled straight from the notification, and automatic webhook re-provisioning keeps delivery reliable.
  • Everything was renamed from Jellyseerr to Seerr and the proxy is more reliable, with proper handling for redirects, reverse proxies, and domains. The old /Moonfin/Jellyseerr endpoint stays alive so existing clients don't break.

Retro Games

  • Added a retro games backend, including support for compressed ROM archives and extracting ROMs from them.
  • A new games thumbnail endpoint fetches and caches libretro cover art server side, so game libraries get artwork everywhere, including on web.

Home Rows and Lists

  • Custom rows gained a server-side cache and proxy endpoints (#174), and the IMDb lists sync task with its cached custom rows API is back (#185).
  • MDBList official lists are now cached and synced server side, enriched with TMDB posters.
  • The full home layout can now sync as sections (#172), and Recently Released joined the configurable rows while Latest was renamed to Recently Added (#158).

Settings Sync

  • Many more settings sync through the plugin now, including detail screen style, detail expanded tabs, hidden items, Show Rating Labels, theme music looping, detailed subheadings, expanded home rows, Seerr home rows, and the media bar trailer option, along with general sync housekeeping and the missing rows filled into the default config (#182, #183).
  • Applying settings to users now autosaves (#149).

Server API

  • A server-side TMDB studio logo cache with endpoints and a sync task keeps studio logos fast and consistent for every client.
  • New collection order endpoints let clients persist a per-user custom order for a collection's items.
  • Added a library write-access check endpoint (#168), moved Jellyfin connections to the ApiKey parameter for Jellyfin 12 compatibility, and directory index requests now redirect properly.

Moonfin Web

The bundled web client picks up everything that landed in the Moonfin-Core repo since 2.1.0. The highlights:

  • The new Modern details screen style, with configurable tabs, a Show Technical Details option, special features and extras, collections on detail pages, TMDb episode rating pills, and studio logos pulled from the plugin's server-side cache. Clicking a studio opens a global library of that studio's items.
  • Fully custom home rows, with external sources like IMDb lists, MDBList, and TMDB charts, new core rows like Recently Released and more Since You Watched types, animated row reordering, and settings screens that sort enabled rows to the top.
  • A Seerr overhaul. Seerr now signs in through the plugin's SSO so the app no longer stores a Seerr URL or API key, and gains a requests screen with collections, issue reporting, request quotas, download progress on requests and detail pages, a Crew Contributions row, and sorting and filters on people pages.
  • A full admin panel makeover, with restyled screens, a dashboard running tasks widget, library settings pages, expanded Live TV tuner, provider, and recording options, a user editor exposing parental controls, per-device access, and lockout options, more networking and transcoding fields, metadata Identify, branding splashscreen upload, a severity filter on the activity log, and bulk device deletion.
  • Themes grew a Theme Store, the Glass theme was unified into liquid, frost, sheen, and solid tiers with a quality setting, a new 8-Bit Hero theme landed, and navbar icons can cycle through your theme's accent colors.
  • TV Mode now works on the web UI, alongside universal UI scaling, an artwork selector on long press or secondary click, and smarter genre artwork with a context action to change it.
  • Music and books both got real attention, with an updated music library and player UI, favorites as real tabs backed by actual library browsing, a navbar embedded mini player, a redesigned book library, an ebook reader that handles MOBI, AZW, AZW3, and KF8, EPUB image rendering, and a refined audiobook UI.
  • Search gained an All tab with segmented styling, better scoping of results, and the Seerr tab placed before All.
  • Settings are now scoped per user account and were reorganized under clear section headers with a Personalization group.
  • Playback improvements include hardened track switching during transcoding, a subtitle preference refactor with smarter SDH prioritization, explicit maximum audio channels and fallback codec settings, an Advanced Playback menu on details pages, Next Up carrying between seasons, and accurate play method labels.
  • Live TV got an updated EPG with lazy loaded guide data, remux support, and expanded playback handling.
  • Performance improved across the board, with much faster opening and browsing of large libraries, home screen performance passes, fewer redundant rebuilds on detail screens, and media bar trailers reusing one player layer instead of rebuilding it per slide.

Bug Fixes

Plugin

  • Empty API keys sent by old clients no longer wipe stored keys during a settings merge.
  • Fixed Seerr session cookie detection and a build manifest corruption bug (#184).
  • Fixed Linux embedded-resource naming and added packaging verification so broken bundles get caught at build time.
  • Fixed the null user list when overwriting all user profiles (#163).
  • Fixed the Rotten Tomatoes Audience rating source mismatch (#148).
  • Fixed the manifest.json structure (#176).

Moonfin Web

  • Media bar YouTube trailers on web now respect the preview audio setting instead of always staying muted.
  • Fixed the grey screen navigation crash in the web client.
  • Fixed trickplay previews showing neighbouring tiles, infinite loading loops in paginated lists and grids, and horizontal row pagination when using touch or a trackpad.
  • Overview text now strips formatting tags properly and keeps characters like ampersands and apostrophes intact.
  • Emby fixes: Emby Connect login crashes, integer ID cast crashes, resuming a TV item no longer resets its progress, and the Latest Items issue.
  • Fixed Live TV playback, routing, and search across both Jellyfin and Emby, and live stream paths now rebase to the connected base URL so reverse proxies work.
  • Fixed HTTP 500 errors on transcoded streams by emitting one canonical audio stream index.
  • Track selection now resolves to real player ids, fixing playback errors when switching tracks during transcoding, along with series language overrides.
  • Fixed external subtitles playing the wrong language and improved subtitle prioritization when SDH is off.
  • Rating source casing is now normalized during plugin sync so rating labels stay consistent across devices.
  • Connections now use the ApiKey query parameter on Jellyfin, since Jellyfin 12 removes legacy auth.
  • The app now respects your 24-hour clock preference throughout and seeds the clock format from your system locale.
  • Fixed Auto-Logon Current User behavior and stopped re-requesting access denied libraries.
  • Seerr fixes: people found in search route to their person details screen, and the play button links through the Jellyfin id from Seerr.
  • Next Up fixes: the countdown no longer runs fast on scaled animation settings, the minimal and disabled display settings work, and Cinema Mode intros no longer advance when autoplay is off.
  • Localization fixes for hyphenated locale files and missing labels in regional locales.
  • Collections keep their native order instead of forcing sort by name, with a per-user custom order persisted through the plugin.
  • Theme and focus fixes across Neon Pulse and the sidebar, so focused text, buttons, and toggles stay readable.

Contributors

Thanks to everyone who contributed to the plugin and web changes in this release:

Thanks as well to the Weblate translators who keep Moonfin localized.

v1.9.1

Choose a tag to compare

@RadicalMuffinMan RadicalMuffinMan released this 09 Jun 03:17

Moonbase Server Plugin 1.9.1 Release Notes github

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

Choose a tag to compare

@RadicalMuffinMan RadicalMuffinMan released this 01 Jun 02:49

Moonfin Server Plugin 1.9.0 Release Notes github

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

image

This is also where you upload your custom themes for all your Moonfin clients to use:

image

WAIT WHAT? CUSTOM THEMES?!?!

Yes dear reader, you read right. Custom. Themes.

image

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!

image image image

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/Discovery and /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/src overlay build pipeline in favor of bundled Moonfin web assets from Moonfin-Core.

v1.8.2

Choose a tag to compare

@RadicalMuffinMan RadicalMuffinMan released this 19 Apr 20:08

Moonfin Server Plugin 1.8.2 Release Notes github

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

Choose a tag to compare

@RadicalMuffinMan RadicalMuffinMan released this 07 Apr 18:10

Moonfin v1.8.1 Release Notes github

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

Choose a tag to compare

@RadicalMuffinMan RadicalMuffinMan released this 01 Apr 16:05

Moonfin v1.8.0 Release Notes github

Features

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
image

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

Choose a tag to compare

@RadicalMuffinMan RadicalMuffinMan released this 16 Mar 18:03

Moonfin v1.7.1 github

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

Choose a tag to compare

@RadicalMuffinMan RadicalMuffinMan released this 15 Mar 03:23
5ccdaaf

Moonfin v1.7.0 github

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

Choose a tag to compare

@RadicalMuffinMan RadicalMuffinMan released this 07 Mar 18:51

Moonfin v1.6.0 Release Notes github

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/replaceState and handles Request objects passed to fetch().
  • 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