1.4 KiB
1.4 KiB
| id | title | status | assignee | created_date | updated_date | labels | milestone | dependencies | parent_task_id | priority | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-118.3 | Add multiplayer sync to rswag (collaborative swag design) | Done | 2026-03-16 00:05 | 2026-03-16 00:50 |
|
Multiplayer Everything | TASK-118 | low |
Description
rswag is a client-side design canvas. Add Automerge sync so multiple space members can collaborate on swag designs.
New files:
modules/rswag/schemas.ts— SwagDoc with designs, assets, selectedTemplatemodules/rswag/local-first-client.ts— CRUD: saveDesign, updateCanvas, addAsset
Schema design:
SwagDoc {
meta: { module: 'swag', collection: 'designs', version: 1 }
designs: Record<string, { id, name, templateId, canvasState: string, createdBy, updatedAt }>
activeDesignId: string
}
Component updates:
- Init local-first client on connectedCallback
- Debounced save of canvas state changes
- Live cursor/selection indicators for collaborators (stretch)
Acceptance Criteria
- #1 Design state syncs between participants in real-time
- #2 Canvas changes debounced and saved via Automerge
- #3 Design list shared across space members
- #4 Demo mode works locally
Implementation Notes
schemas.ts + local-first-client.ts created