v0.1.4

Crosswatch v0.1.4

  • Tag: v0.1.4

  • Published: 2025-09-25T01:34:24Z

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

Version v0.1.4

🐞 Short summary of issues users hit

  • History timestamps: first sync didn’t carry original watched_at → Trakt saw plays as “today”, creating same-day duplicates.

  • Jellyfin fields: not always requesting UserData caused us to miss LastPlayedDate.

  • Watcher: some improvements when re-watching the same movie/show/episode.

  • Watchlist noise: unresolved items (esp. episodes) could keep suppressing diffs indefinitely.


🔧 Fixes & Improvements

  • History / Timestamps

    • Always read and propagate source play time:

      • Plex: viewedAt

      • Jellyfin: UserData.LastPlayedDate (fallback DateLastPlayed)

    • Normalize to UTC; no more silent “now” backfills when a timestamp is missing (we flag instead).

    • History query (Jellyfin) uses Fields=UserData,ProductionYear + EnableUserData=true and sorts by DatePlayed.

    • We’ve temporarily disabled the History feature for SIMKL because it isn’t working correctly.

  • Jellyfin connector

    • All features enabled (except playlists) - Watchlists, Ratings, History.

    • Watchlist:

      • “Favorites” (Movies/Series) or named Playlist, as Jellyfin doesn’t have any native Watchlist.

      • Ignore items without cross IDs to avoid churn.

  • Unresolved/backoff system

    • Track failures with exponential backoff (default base 6h, cap 30d) or virtual policy.

    • TTL purge (default 90d) + stats by reason/type.

    • Auto-reset a slice on large library growth to retry fresh matches.

  • State & Shadows

    • Rolling ratings and history shadows to stabilize snapshots and quick re-runs.

    • Cursor fingerprints guard against noisy reindexes.

  • Apply paths

    • Favorites add/remove uses dedicated endpoints; verified via UserData.IsFavorite, falls back to /Items/{id}/UserData when needed.

    • Ratings write/unrate coerces to Trakt-style 10-scale (with 5-star inputs doubled).

  • DX & Ops

    • Lightweight HTTP stats (status, bytes, latency).

    • Runtime debug toggles structured debug logs.

    • Manifest + config schema updated (watchlist modes, unresolved policy).


circle-exclamation

Last updated