Version 0.2

Version 0.2.0

  • Tag: v0.2.0

  • Published: 2025-10-10T17:06:29Z

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

CrossWatch v0.2.0 — Big, refactored, and yes… probably many new bugs 🙂

Faster syncs, safer writes, cleaner UI. Two-way flows are steadier, SIMKL + Jellyfin behave better, Trakt refreshes itself, progress bar is sane, scheduler is actually useful. Breakage risk is low but back up /config anyway.


Highlights

  • Big refactor: FastAPI split into lean routers; providers + orchestrator modules cleaned up for speed and reliability.

  • Safer syncs: Mass-delete guard rails, health status and “suspect shrink” protection; additions/updates chunked; smarter delta reuse.

  • Two-way sync that sticks: Less flip-flop from weak IDs; better source-of-truth handling across mixed pairs.

  • Scheduling 2.0: Hourly / every-N-hours / daily time, per-timezone, optional jitter, manual “run now”, resilient loop.

  • Debug levels: Off · On · On + MOD debug · On (full HTTP) best is On + MOD debug

  • Auth mod Plex improvement: in authentication providers there is now a new settings menu for Plex (server settings, user settings and whitelisting of libraries)

  • Sync mod Jellyfin improvement: many fixes, should work better now. Also watchlist can now sync to favorites, Playlist and Collections

  • Watchlist: new GUID normalizations will provide better results


What’s new (user-visible)

UI/UX

  • Progress bar partly fixed: No early jump to 90%. “Apply” phase is shown only after all snapshots complete.

  • Run safety: Start/stop visuals are guarded (no more startRunVisuals is not defined).

  • Troubleshoot panel: One-click Clear cache, Reset stats, Reset state.

  • Auth flows: Plex PIN and SIMKL OAuth are smoother; clearer status + error toasts.

  • Wiki surfaced: Help links right in the app (Getting Started, Config, FAQ).

Providers

  • Plex

    • Server URL is sticky: Suggestions won’t override a value already saved in config.

    • Better library scoping and discovery hints.

  • SIMKL

    • Fresh “present” snapshots when activity changes (bypasses stale ETag/304). Fewer “why didn’t my add propagate?” moments.

  • Trakt

    • Auto token refresh before/after calls; 401/403 retries wired in.

  • Jellyfin

    • Capability reporting cleaned up; fewer re-add loops via smarter ID/shadow handling.

Orchestrator

  • Faster snapshots; smarter enrichment ordering; fewer duplicate passes.

  • Safer writes with chunking + tiny pauses to avoid API spikes.

  • Telemetry (opt-in) trimmed and less noisy.

Scheduling

  • Modes: disabled | hourly | every_n_hours | daily_time.

  • Timezone-aware start; optional jitter_seconds to avoid herd starts.

  • Visible “next run at” + last result in the UI.

Config (still JSON, still simple)

  • New debug trio: runtime.debug, runtime.debug_mods, runtime.debug_http.

  • Stability knobs: snapshot_ttl_sec, apply_chunk_size, apply_chunk_pause_ms, and mass-shrink guards (suspect_min_prev, suspect_shrink_ratio).


Fixed (the greatest hits)

  • Watchlist delete (SIMKL/Trakt): actually removes items and stays removed.

  • Endless re-adds from weak/agent IDs reduced (IMDb/TMDb/TVDb priority).

  • Insight/List noise reduced (hide disconnected providers).

  • UI errors from timing/race conditions hardened.


Breaking/behavior changes

  • Internal API/routers were refactored; external endpoints remain the same for normal use.

  • If you see odd counts after upgrade: use Maintenance → Clear cache and hard-refresh the UI.


Upgrade notes

Back up your CrossWatch config folder before upgrading.

After upgrading, open Settings and verify your connections.

Run one pair first before re-enabling Scheduling.


Known rough edges (being honest)

  • Stats can be off in edge cases (work in progress).

  • Some UI sections don’t auto-refresh perfectly (do manual refresh).

  • SIMKL & Jellyfin are still maturing; report weirdness with logs.

  • see WIKI for more issues: https://github.com/cenodude/CrossWatch/wiki


Last updated