foxyzandClaude Opus 5.5 beae87b0cc Updater: real-layout apply with rollback, in-app update + restart
- Strip the tarball's top-level folder; stage inside the install root
  (same filesystem) and swap with full rollback; keep file modes.
- Semver prerelease ordering (1.2.3-rc1 < 1.2.3).
- UpdateController: background check, download with progress, apply,
  restart; required-update wording for newer protocols; Check now.
- update.sh/update.bat in the bundle; Windows apply path (untested).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 00:41:02 +03:00

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).

S
Description
No description provided
Readme
9.2 MiB
0 Stars 1 Watchers 1 Forks
v1.4.0
Latest
2026-10-18 16:36:32 +01:00
Languages
Dart 79.9%
GLSL 18%
C++ 0.8%
Shell 0.5%
CMake 0.5%
Other 0.3%