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
- Snapshots - Captures: The UI now labels “Snapshots” as Captures.
- Captures Compare (Advanced): Side-by-side A/B diff viewer. Select two Captures, then click Advanced. Ref: https://wiki.crosswatch.app/crosswatch/tools/captures/capture-compare-advanced
🔧 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
mindateusage) 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 writingwatched_attimestamps 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.