Changes since last release:
-
This was the RAM week, and Floppy uses dramatically less memory now — The investigation started after seeing Floppy climb above 5 GB of active memory, including one web worker using more than 3 GB by itself. Historical container usage had even peaked above 10 GB. After this week's changes, the same full application setup has been measured at roughly 500–600 MB of active application memory. Floppy can also now tell the difference between memory actually being used by the app and temporary Linux file caching, which previously made some memory spikes look much worse than they really were.
-
Huge History pages no longer need huge amounts of RAM — One particularly bad History request could previously add about 1.9 GB of memory when processing 18,230 matching plays and could take more than 20 seconds to finish. The new version stays around 3–6 MB of additional memory even as History gets larger, and the same large request now finishes in roughly half a second.
-
Large libraries and imports use less memory too — Lists no longer load far more information than the page actually needs, and Talent Statistics can now finish large jobs that previously ran out of memory. CLZ and IMDb imports were also changed to process large files a little at a time instead of loading everything into memory at once. In a 100,000-row test, CLZ dropped from about 274 MB to 130 MB, while IMDb dropped from about 414 MB to 144 MB.
-
Background jobs are less likely to pile up and slow everything else down — Statistics refreshes are now broken into smaller pieces instead of running as one very long job. Floppy also avoids repeating work when nothing has changed, prevents duplicate copies of expensive jobs from running at the same time, and no longer rebuilds History, Statistics, and Calendar data after an import that made no changes. User-triggered background work still gets its own faster lane so scheduled maintenance does not hold it up.
-
Floppy can now send your current playback state through a webhook — External tools can receive updates about what you are currently playing instead of having to wait until playback finishes and a scrobble is recorded.
-
Appearance settings are here — You can now choose from theme presets and change how detail pages are laid out. French has also been added as a full interface language alongside German.
-
Stremio works better with TV seasons — Series catalogs can now be created from smart lists containing TV seasons, and season-only smart watchlists no longer appear empty in the Stremio add-on.
-
Plex, Jellyfin, Trakt, and Yamtrack all got another round of fixes — Plex matching works in more edge cases, Jellyfin no longer double-records some TV watches, Trakt imports no longer create fake unwatched seasons dated today, bulk rewatches can inherit episode ratings, and Yamtrack imports now preserve repeat watches while warning you about invalid source values.
-
A bunch of smaller things work properly again — TVDB season pages no longer crash, episode lists no longer occasionally appear as episode counts, bulk-saving episode plays works again, Home Screen filters save correctly, MangaUpdates respects the NSFW setting, Redis rate-limit failures have a fallback, and pop-up windows no longer get stuck inside media cards.
The GLaDOS personality leak believes a potato is still more capable than the free model that originally drafted this release.
What's Changed
- Support Stremio series catalogs from TV-season smart lists by @albertok in #1101
- push current playback state via webhook by @elemated in #1107
- Pin the scrobble Now Playing card to the AniDB-mapped cour by @Deigue in #1149
- Add theme presets and configurable detail layouts by @PreciselyWrong in #1155
- Add French user interface localization by @sephrat in #1164
- Fix 500 on every TVDB show's season page by @daften in #1165
- Never render an episode list as an episode count by @Deigue in #1167
- Fix match: move season items with the show, stop persisting search results by @daften in #1168
- Drop colliding NULL-season provider links when merging items by @daften in #1169
- reject and warn invalid source values in Yamtrack CSV import by @johan456789 in #1173
- Refactor memory sampling and add runtime preflight check by @dannyvfilms in #1175
- Add media_type_status to detail endpoints by @dannyvfilms in #1179
- Eliminate converged work in backfill and sync loops by @dannyvfilms in #1180
- Fix Home Screen filter save failing for every media type (#1177) by @dannyvfilms in #1185
- Fix Plex collection scan not matching TV shows with only a plex:// list guid by @dannyvfilms in #1186
- Fall back to an unrated request when Redis breaks the shared limiter mid-run by @dannyvfilms in #1187
- Fix Method Not Allowed error when bulk-saving episode plays by @dannyvfilms in #1188
- Fix Stremio addon showing season-only smart watchlists as empty by @dannyvfilms in #1189
- fix: preserve repeat watches during Yamtrack CSV import by @dannyvfilms in #1190
- Fix Jellyfin webhook + history import double-logging TV watches by @dannyvfilms in #1191
- Inherit episode ratings for bulk-logged rewatches by @dannyvfilms in #1193
- Fix Trakt import fabricating unwatched seasons dated today (#1178) by @dannyvfilms in #1194
- Fix Plex scrobble dedup when show resolved via title search by @dannyvfilms in #1196
- fix: gate MangaUpdates NSFW filtering on MU_NSFW by @smasher6081 in #1197
- Rebuild Statistics as a resumable run instead of one long task by @dannyvfilms in #1200
- Make Floppy's largest memory excursions attributable and structurally smaller by @dannyvfilms in #1206
- Fix modal overlays rendering embedded/mispositioned inside media cards by @dannyvfilms in #1208
New Contributors
- @albertok made their first merged pull-request contribution to Floppy in #1101
- @johan456789 made their first merged pull-request contribution to Floppy in #1173
- @sephrat made their first merged pull-request contribution to Floppy in #1164
- @smasher6081 made their first merged pull-request contribution to Floppy in #1197
Known Issues:
-
There is still some memory work left to do. One Trakt maintenance job can temporarily climb to around 800 MB while running before dropping back to roughly 130 MB afterward. That is now a specific task we can target rather than an unexplained application-wide memory spike. The new backup behavior and a future one-web-worker configuration also still need more production testing.
-
Backups can temporarily make container memory look much higher than the app is actually using. Linux keeps recently accessed database data in memory as a file cache because it can make future reads faster. Floppy can now recognize this separately from application memory, and the backup process has been changed to encourage Linux to release that cache sooner.
-
There are still many open issues we are continuing to catch up on. Please keep letting us know what is broken or can be improved.
A Note About Floppy
I'm still not a professional developer; I'm an enthusiastic maintainer using AI coding tools to build the media tracker I want to use. Floppy is a standalone project based on the incredible work of FuzzyGrim/Yamtrack, independently maintained and supported by @dannyvfilms. Yamtrack import and documented compatibility paths remain supported, but users install Floppy directly rather than treating an upstream container replacement as a migration plan.
Docker Updates: You can pull the canonical Floppy image at any time:
ghcr.io/dannyvfilms/floppy:latest
The legacy ghcr.io/dannyvfilms/yamtrack:latest image path remains available during the transition for existing Floppy installations. Please use the supported import path when moving data from upstream Yamtrack, preserve the original database, and test on a copy first. A container image swap is a one-way migration, so if you are coming from upstream Yamtrack test in parallel and import your data. Changing your container image runs migrations you cannot roll back.
Contributing: Floppy-specific bug reports, feature requests, integration ideas, and pull requests are welcome in this repository. Thanks to this week's first-time contributors — @albertok, @johan456789, @sephrat, and @smasher6081 — plus @daften, @Deigue, @elemated, @PreciselyWrong, and everyone who reported problems or helped surface the edges that needed repair.
If you have time to help answer questions in the [Discord](https://discord.gg/QrCpS2rd8j), that would be appreciated. I’ll try to be active there, but GitHub is still keeping most of my attention, so additional support from contributors will help. There's also an extremely underdeveloped [Website](https://dannyvfilms.github.io/floppy/) if anybody wants to share the project.
Thanks for understanding, and happy tracking!
Full Changelog: v26.9.10...v26.9.17