Initial commit: watch-together phases 0-4 + presence hardening, internet-tested

This commit is contained in:
foxyz committed 2026-09-12 00:13:43 +03:00
commit 427d851a5b
101 files changed
+11326

No files matched your search

+28
View File
@@ -0,0 +1,28 @@
# sync_relay_project
Watch-together desktop app (working title). One binary, three modes:
- **Client** — GUI Join, sync WS + mpv. No server code runs.
- **Server+Client (Host)** — GUI Host starts `packages/server` in-process,
listens on a port, self-connects via loopback. Host must open ports.
Clients never open ports.
- **Headless** — `watch.exe --headless`, same server package, no window.
v1 order: links support (shared http(s) media URL, Syncplay-style sync)
first, file relay (server-proxied bytes, whitelist case) after.
Jellyfin native + auto-update are deferred as their own undertakings.
Layout:
```
/packages/core protocol, sync engine, messages (pure Dart, no Flutter)
/packages/server room + media HTTP endpoint (pure Dart, no Flutter)
/apps/desktop Flutter app embedding packages/server (the ONE binary)
/tool spikes + harnesses (range_logger, shaper, fake_viewer, e2e_check)
/deploy systemd unit, notes
/docs PROTOCOL.md, ARCHITECTURE.md, mpv-http-contract.md, ROADMAP.md
```
Phases + status: `docs/ROADMAP.md`. Session handoff: `HANDOFF.md` (root).
Enforcement: `core` and `server` must have zero Flutter imports (tested).