---
id: TASK-118.9
title: Add lightweight sync to rtube (shared playlists/watch parties)
status: Done
assignee: []
created_date: '2026-03-16 00:06'
updated_date: '2026-03-16 00:50'
labels:
  - multiplayer
  - tier-3
milestone: Multiplayer Everything
dependencies: []
parent_task_id: TASK-118
priority: low
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
rtube is a community video hosting UI. Add Automerge sync for shared playlists and watch party queue state.

## New files:
- `modules/rtube/schemas.ts` — TubeDoc with playlists, watchParty, queue
- `modules/rtube/local-first-client.ts` — CRUD: createPlaylist, addToPlaylist, updateQueue

## Schema:
```
TubeDoc {
  meta: { module: 'tube', collection: 'playlists', version: 1 }
  playlists: Record<string, { id, name, videoIds[], createdBy, updatedAt }>
  watchParty: { active: boolean, currentVideoId, position, hostDid, participants[] }
  queue: string[]
}
```
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [ ] #1 Playlists sync across space members
- [ ] #2 Watch party state (current video, position) syncs in real-time
- [ ] #3 Demo mode works with local-only state
<!-- AC:END -->

## Implementation Notes

<!-- SECTION:NOTES:BEGIN -->
schemas.ts + local-first-client.ts created
<!-- SECTION:NOTES:END -->
