Sync robustness + a resync escape hatch for viewers who drift from the room.
New
- Resync (self-only). When your player drifts from the room clock you get a prominent, dismissible "You're N s ahead/behind — Resync me" pill over the video (plus a top-bar button and a button on your own row in Members). Resync snaps only you back to the room — it never moves anyone else. For own-tab (
site) sources the pill also shows inside the streaming tab, even with the widget minimized/closed. - Who's where. Each viewer now shows their live playback position, with an "out of sync" chip when they've drifted — in the Members list and in the widget's new Activity tab.
- Widget reorg. GIF search moved above its results; tabs grouped into Chat · GIF (interaction) and Subs · Activity (player); the Activity tab shows who's watching, their positions, and the room's event feed.
Fixed
- Genuine play/pause on slow custom players (which resolve a click into playback asynchronously) were being dropped and never reached the room — the gesture window was widened to catch them.
- A viewer could silently detach from the room clock (a site auto-resuming a paused video, or a dropped cross-tab message) with nothing to correct it. A reconcile heartbeat now re-asserts the room's position, and a site that auto-resumes a paused video is re-paused locally the instant it happens — so it reads as "paused" instead of a play-then-snap loop.
Web + server are already deployed. Update the extension for the in-tab features; older installs keep working (the sync protocol is additive).