github cenodude/CrossWatch v0.9.6
Update 0.9.6

7 hours ago

CrossWatch v0.9.6

Big changes: the Plex adapter (history and ratings) was refactored for better accuracy and much faster history syncs.
First run may still be slow, but follow-up runs should be way faster.

For users still on v0.8.x, now’s the perfect time to upgrade to v0.9.6.

⚠️ Warning possible breaking update for Trakt History pairs

Trakt is rolling out a change that rounds watched_at to minute precision
I've changed the Trakt adapter following that same principle now.
If you have a pair with Trakt using History then either recreate the pair or even better:
Go to maintenance tools to clean everything. Ref: https://wiki.crosswatch.app/crosswatch/faq

✨ Highlights

🔧 Fixes & Improvements

  • Trakt: minute precision: Changed the Trakt adapter to follow-up the new minute precision approach.
  • Plex: Home token reliability: History writes now use the active Plex session token (prevents “sometimes only season 1” / random unresolved writes when Plex Home switching is involved).
  • Plex: Strict IDs-only matching: History sync is now fixed and can run in strict ID mode using Plex GUIDs (TMDB/IMDb/TVDB) without title/search fallbacks. This reduces mismatches and makes “IDs-only” actually work.
  • Plex: history capture: Plex history capture is now incremental (watermark and correct mindate usage) instead of re-scanning the entire server history every run.
  • Plex: Persistent GUID index: Uses a per-pair, on-disk GUID→ratingKey index to speed up strict matching.
  • Plex: ratings strict matching improved: Episode/season ratings resolution now also uses show IDs (TMDB/IMDb/TVDB) when matching in Plex, improving accuracy and reducing “unresolved” ratings in strict ID mode.
  • Editor: timestamps: “Watched At” display/editing now matches the UI. Manual edits are interpreted in local time and stored consistently (prevents timezone shifts).
  • Captures - Compare: Compare is now limited to same provider and same feature to prevent misleading diffs. Ref: #97
  • Captures - Compare: Smarter diffing (including timestamp normalization) to avoid false “updates” caused by tiny time differences. Ref: #97
  • Plex: history timestamps: Fixed a potential timezone offset issue by reading Plex history using Plex’s native epoch format for consistent results. Ref: #103
  • Pair-config - One-Way Remove mode UI toggle: Added a new switch in pair-config under Allow mass delete to control one-way deletion behavior:
    • Enabled (default): Deletions are based on source matches — items are only deleted when a match exists between source and destination.
    • Disabled: Mirror mode (mirror) - always follows source (destructive; use with care).
    • NB: The logics was already available in v0.9.5, i only added the UI toggle.
    • Ref: https://wiki.crosswatch.app/crosswatch/configure-pairs/global-settings

Some Important reminders:
Plex does not support writing watched_at timestamps back into Plex.
If you wipe your Plex history and then sync history from another provider to Plex, Plex will record those plays using the current server time — not the original watch dates.

If you’re using a reverse proxy, snapshots/captures may time out, because some operations can take a while.
You’ll typically see a 504 Gateway Timeout (or similar). Increase the timeout in your reverse proxy (often ~3 minutes by default), or run snapshots via your internal IP to avoid the proxy path.

It’s covered in the wiki - please read it. If anything’s unclear, ask in Discussions. Happy to help.

Don't miss a new CrossWatch release

NewReleases is sending notifications on new releases.