- PlayerHost port (MediaKitHost): players by role, pins, hwdec policy,
render probe, log routing, disposal order; the only media_kit user.
- MediaPipeline: plan (one pure switch over state, origin, caps,
presence) -> resolve -> open (prepared player promoted, else fresh)
-> ready; commands queued during a switch apply once (P15); viewers
play the buffer and wait for a dropped source without seek loops (D6).
- Every web page resolved by our yt-dlp into an EDL with headers and
cookies (danmaku excluded); mpv's ytdl_hook no longer used (ytdl=no).
- D11: sign-in errors say which cookies were used and whether they hold
any for the site.
- Relay: 256 KiB slices read as they fill, superseded pulls released
(seek-to-play ~4.2 s -> ~2.8 s, P29); own Jellyfin relay channel only
when someone needs it (P28).
- STARSYNC_SMOKE run and a Windows CI smoke step after the build.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Linux app id dev.foxyz.starsync, binary starsync; Windows starsync.exe,
company foxyz; server starsync-server; Dart package starsync; archives
starsync-<ver>-*.
- 1.2.x compatibility: watch_together and watch-together-server
launchers (Linux) / copies (Windows) in the archive; the updater
accepts both names and relaunches the new binary; update.sh/.bat use
whichever server exists.
- First start copies (never moves) the old support folder and this
app's Hive boxes out of ~/Documents into <support>/hive; a marker
makes it run once; AppDirs is a port; settings schema version with
ordered migrations.
- Launcher entry dev.foxyz.starsync.desktop; the old one removed.
- Repository name and URLs unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Tests: the four known failures fixed (test-side causes), one duplicate
file and four detail-pinning cases removed, every test that pins
behaviour the restructure changes tagged with its step.
- Every toast, sound and activity-log line goes through Notifier.notify
(AppEvent), mapped one-to-one to today's behaviour.
- Platform ports (shell, URLs, folders, link resolver, system
notifications) with desktop implementations; window_manager, Process
and file_picker now live only in platform/desktop/.
- ROADMAP: protocol 16 planned; app id dev.foxyz.starsync.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- serve(Map config, events) is the one server entrypoint: the app
hosts it via Isolate.spawn (crash surfaced on the Host card, logs
forwarded as [server]); bin/server.dart is the dedicated server,
compiled into the bundle as watch-together-server. --headless gone.
- Host identity via a per-hosting hostKey in hello, replacing the
loopback heuristic.
- Rename room -> server across code, files and wire (t:"state",
/health name); protocol bumped to 5.
- CI compiles the server binary; isolate smoke tests in server and
desktop suites. Docs updated.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Player + VideoController per session; Reload video (Ctrl+R) and a
frozen-picture watchdog that reloads automatically.
- Shortcuts no longer fire while typing; empty swap disabled;
hwdec setting/env actually applied.
- Idle unready measured from real inactivity; cancellable reconnects
and setup; ready restored from server state; kicked/failed host
stops its server; graceful leave on window close; no URLs with
keys in display names.
- Welcome + connect screens replaced by one Home screen with Join and
Host cards, recent servers, Settings, Integrations and About.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>