CrossWatch v0.9.10
🔧 Fixes & Improvements
- Scrobble: Suppressed
user=Noneplayback alerts to reduce filter-log noise when no one is actively watching. - Scrobble: Fixed non-default scrobble watchers missing playback events when Plex alert payloads omit the account/user field.
- Scrobble: Added a debug log entry before dropping unresolved-user alerts to make it clearer why an event was ignored.
- Scrobble: Improved support for Plex shared-server tokens by using the configured profile username for that watcher.
- Scrobble UI: Fixed route filter settings leaking into the default profile due to cached provider presets while editing routes.
- Captures: Fixed history-restore gaps when two entries share the same watch timestamp.
- Captures: Fixed an edge case where items can return multiple distinct items with the same IMDb ID.
- Sync Engine: Improved bulk sync completion performance by batching internal blackbox/flap bookkeeping instead of updating it item-by-item.
- Fixed an issue where large sync runs, especially history imports, could appear to stall after the write phase while CrossWatch was still processing internal retry/unresolved tracking.
- Reduced post-sync overhead for large add/remove operations so runs can finish and report completion more reliably.
- Sync Engine: Improved sync result reporting for large one-way runs.
- Added clearer accounting for provider-confirmed adds versus internally deduplicated items.
- Improved skipped-item reporting so inferred remainder skips are tracked more transparently during bulk syncs.
- Added better visibility into duplicate canonical-key collapse during apply/reporting, which helps explain mismatches between provider-reported adds and final run totals.
- MDBList: Updated the MDBList adapter to v4.1.0.
- Improved sync compatibility with the current MDBList API blueprint across history, ratings, watchlist, and scrobble flows.
- Fixed watched-history sync handling for show-level and season-level updates/removals.
- Improved ratings sync support for additional MDBList-supported IDs, including Trakt, MDBList, and Kitsu where applicable.
- Hardened watchlist parsing for unified responses and aligned internal health checks/activity tracking with MDBList sync behavior.
- SIMKL: Updated the SIMKL adapter to v4.1.0.
- Improved compatibility with the current SIMKL API blueprint across history, ratings, watchlist, and scrobble flows.
- Fixed anime scrobble handling by sending the correct SIMKL payload shape and supporting additional anime IDs where available.
- Improved history and ratings sync matching by preserving a broader set of SIMKL-supported IDs.
- Fixed an anime ratings sync issue where SIMKL anime library data could be parsed incorrectly, causing weaker item matching.
- Hardened Plan to Watch sync by correctly accepting successful SIMKL removals even when the API returns an empty response body.
- Fixed history season sync handling by sending season entries using SIMKL's documented season payload shape instead of treating them like plain show-level writes.
- Improved SIMKL history write accounting so successful season-level additions are counted correctly during bulk imports.
- Trakt: Updated the Trakt adapter to v4.4.0.
- Improved compatibility with the current Trakt API blueprint across history, ratings, watchlist, and scrobble flows.
- Fixed watched-history sync handling for show-level and season-level updates/removals, and improved support for removing entries by Trakt history ID.
- Improved watchlist sync support for movies, shows, seasons, and episodes to better match Trakt's supported payloads.
- Fixed scrobble behavior that could create multiple watched dates when stopping near the end and finishing later (configurable via
stop_pause_threshold). - Improved scrobble logging by downgrading Trakt
422pause rejections near the scrobble cutoff to WARN (no longer treated as hard errors). - Hardened scrobble handling for duplicate/recent playback conflicts to better align with Trakt responses.