v0.3.9

Version 0.3.9

  • Tag: v0.3.9

  • Published: 2025-11-15T13:01:49Z

  • GitHub: https://github.com/cenodude/CrossWatch/releases/tag/v0.3.9

CrossWatch – v0.3.9

Analyzer has been improved and rewritten to be more helpful in finding issues. It now focuses on items that have not been synced and surfaces best-effort reasons why. It still can’t magically restore missing items for every setup, but Analyzer should at least point you in the right direction and give you concrete ideas on what to fix. I’m happy to help users with CrossWatch bugs (crashes, failed runs, weird planner output), but I just can’t support to hunt down every missing item in everyone’s libraries. That’s exactly why Analyzer exists: it gives you a focused list of unsynced items plus likely root causes so you can fix IDs and metadata in Plex/Jellyfin/Emby/Trakt/Simkl/mdblist yourself.

What’s new

  • Analyzer backend rewritten.

    • Fresh /api/analyzer/* stack focused on unsynced items instead of generic counts.

    • Problems now classify:

      • missing_peer — item exists at source but not at any active target pair.

      • missing_ids / key_missing_ids / key_ids_mismatch / invalid_id_format.

    • Pairs, features and enabled modes are taken into account, so “issues” are pair-aware.

  • Pair-aware Analyzer UI.

    • New pair strip at the top: PLEX ⇄ JELLYFIN, PLEX → SIMKL, PLEX → MDBLIST, PLEX → TRAKT, etc.

    • Clicking a chip limits the grid and issues to only that pair’s scope.

    • Scope toggle:

      • Scope: issues → only items with missing_peer for active pairs.

      • Scope: all → all items in state.json within the selected pairs.

  • Better issue detail panel.

    • For each issue, Analyzer shows:

      • Provider, feature, title/year/type.

      • A best-effort explanation of what’s likely wrong and where to fix it (Plex/Jellyfin/Emby vs Trakt/Simkl/mdblist).

      • Suggestions pulled from:

        • Peers (same title/year/type).

        • TMDB external IDs and search.

        • Trakt search (de-emphasised when only Trakt data is available).

    • Extra hints for language / alt-title mismatches on media servers (e.g. Dutch vs English episode titles) when IDs look fine but peers still fail.

  • Manual ID editing inside Analyzer.

    • New “Manual IDs” block per item with inline fields for:

      • imdb, tmdb, tvdb, trakt, plex, simkl, emby, mdblist.

    • Save IDs:

      • Normalises values (e.g. tt1234567, numeric TMDB/TVDB/etc).

      • Optionally rekeys the item based on IDs.

      • Re-evaluates pair presence so the item can drop out of the issues list after a fix.

    • Reset restores the original IDs from state.json for that item.

  • Cleaner grid and footer.

    • Pair-filtered item list: if you select PLEX → MDBLIST, the grid shows only items relevant for that pair.

    • Compact footer with a quick overview per provider, e.g.: PLEX 1.4k | JF 1.3k | SIMKL 2 | MDB 2 | TRAKT 2.

    • Split-pane between list and issue detail is resizable again and remembered per browser.

Fixes

  • False positives reduced.

    • Missing-peer detection now respects:

      • Enabled pairs only.

      • Direction and feature (history/watchlist/ratings).

    • Items with peers on some targets but not others are scoped correctly instead of being flagged everywhere.

  • Stale suggestion mismatches reduced.

    • Suggestions are deduplicated on ID signature, so TMDB/Trakt/peer candidates that resolve to the same IDs are collapsed into a single line.

    • Trakt-only hits no longer dominate results when better TMDB/peer IDs are available.

  • Ignore flag respected.

    • Items with _ignore_missing_peer set in state are excluded from missing_peer problems and from Analyzer’s issues view.

If Analyzer still shows a lot of “missing peer” items after this release, you probably have real ID gaps now instead of Analyzer mismatches.

Last updated