🎉 Milestone Reached: v0.1.0
We’ve hit version 0.1.0 — a big step forward. The core modules are stable, and the Watchlist is now fully functional and polished. That means we’re ready to start lighting up the currently disabled features and growing the experience.
What’s solid in 0.1.0
- Reliable core foundation (auth,metadata and sync modules) and data flow
- Bi-directional sync across multiple pairs (e.g., Plex ↔ SIMKL, Trakt ↔ Plex).
- Live Trakt scrobbling — no webhooks required.
- Advanced Scheduling - If/else statements
What’s next (in early 0.x roadmap)
- Ratings (first-class, with cross-service sync)
- Watchlist automation Automatically removes titles from your (Plex) Watchlist once you’ve watched them
- Performance & reliability (telemetry, error recovery)...basically ongoing business
Thanks for sticking with me at this stage. v0.1.0 gets the essentials right. Now we can move faster on the exciting bits like ratings and discovery. Onward!
- A fast, refined Watchlist:
- Posters & List views with saved preferences
- Compact detail bar with score, trailer, and provider badges
- Powerful filters (including Released/Genre) and a “More…” panel
- Sortable List headers and tidy layout
What’s next (in early 0.x roadmap)
- Ratings (first-class, with cross-service sync)
- Watchlist automation Automatically removes titles from your (Plex) Watchlist once you’ve watched them
- Performance & reliability (telemetry, error recovery)...basically ongoing business
Thanks for sticking with us at this stage. v0.1.0 gets the essentials right—now we can move faster on the exciting bits like ratings and discovery. Onward!
🐳 Run CrossWatch with Docker
Latest stable
docker run -d \
--name crosswatch \
-p 8787:8787 \
-v /path/to/config:/config \
-e TZ=Europe/Amsterdam \
ghcr.io/cenodude/crosswatch:latestPrevious versions
🔧 Critical Fixes
- Watcher autostart after reboot — Startup hook always bound; watcher auto-starts when Scrobble → Mode: Watch
- SIMKL Sync Mod now supports Anime
- Watchlist deletes that “came back” — True server fan-out (PLEX/SIMKL/TRAKT), correct ID resolution, immediate state prune
- Trakt “Now Playing” — Start events clamped (≥1%), Plex progress aligned,
ratingKeycarried → reliable now playing for movies & shows. - SIMKL freshness (no spam) — Present PTW snapshot force-refreshes only when activities move; otherwise cached → fast propagation with minimal calls.
- Faster posters — First screen eager, rest lazy; cache-control enables instant re-show + silent revalidate.
🧩 UX Polish
- Delete feedback — Spinner + progress bar during multi-deletes so you can see it working.
✅ Reduced SIMKL & TRAKT API calls
- Smarter snapshot caching — Refresh only when activity timestamps change.
- Cursor-aware deltas — Fetch just new/changed items, not whole lists.
🧩 Watchlist UX
- Instant delete refresh — Posters vanish immediately on delete.
- Accurate snackbar — Shows the real number of items removed.
🔧 Critical Fixes
- Watcher autostart — Startup hook always bound; watcher auto-starts when Scrobble → Watch + Autostart are on.
- Pairs preserved on Save — Saving Settings no longer wipes Pairs; manage them only via Synchronization → Pairs.
🔄 Sync & Pairing
- Smarter two-way syncs — Reliable across mixed pairs (e.g., SIMKL ↔ TRAKT, PLEX ↔ SIMKL).
- Delete once → gone everywhere — Deletions cascade across services within the same run.
- Safe first run — Removals suppressed to avoid accidental wipes.
- Fewer mismatches — Better ID/alias matching across services.
- Stable SIMKL snapshots — Shadow + cursor keep deltas predictable.
📺 Watcher / Scrobble
- Progress accuracy — No more bogus 100% spikes.
- Seek handling — Scrubbing updates correctly.
- Restart detection — Proper reset at 0%.
- Cleaner logs — Reduced Plex progress/activity noise.