3.2.1 (2026-09-26)
Bug Fixes
- publicmetadb: skip episodes already listed as watched when a season is marked (98eed17)
- recommendations: fill the anime row whatever language the configuration uses (aea27e3)
- simkl: check only the Plan to Watch shelf, anime films included, before removing a watchlist title (98eed17)
- watch-tracking: retry a Simkl write refused by its write lock instead of dropping it (98eed17)
- watch-tracking: send Simkl and MDBList the TMDB id alongside an IMDb id (f3bd175)
- watch-tracking: send tracker writes one at a time per account and retry them until they land (98eed17)
- watch-tracking: stop treating Trakt as a tracker, so a Trakt sign-in for catalogs no longer hides watched state (98eed17)
Performance Improvements
- jellyfin: answer watched state from an index built from the tracker mirror, a page at a time (98eed17)
- jellyfin: bound the playstate sync by active users, time and concurrency, and log event loop stalls (98eed17)
- jellyfin: keep each tracker library in the database and queue tracker writes (98eed17)
- jellyfin: read paused titles again only when a tracker's activity shows playback moved (98eed17)
- mdblist: read hide-watched and recommendations from the watch mirror instead of the whole history (98eed17)
- simkl: read list catalogs, Up Next, hide-watched and recommendations from the watch mirror (98eed17)