1.4 KiB
1.4 KiB
| id | title | status | assignee | created_date | labels | milestone | dependencies | parent_task_id | priority | ||
|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-118.12 | Add persistent map annotations to rmaps via Automerge | To Do | 2026-03-16 00:06 |
|
Multiplayer Everything | TASK-118 | low |
Description
rmaps already has ephemeral WebSocket rooms for live location sharing. Add an Automerge doc layer for persistent map annotations (pins, notes, routes, areas) that survive room disconnection.
New files:
modules/rmaps/schemas.ts— MapsDoc with annotations, savedRoutes, meetingPointsmodules/rmaps/local-first-client.ts— CRUD: addAnnotation, saveRoute, setMeetingPoint
Schema:
MapsDoc {
meta: { module: 'maps', collection: 'annotations', version: 1 }
annotations: Record<string, { id, type: 'pin'|'note'|'area', lat, lng, label, authorDid, createdAt }>
savedRoutes: Record<string, { id, name, waypoints[], authorDid }>
savedMeetingPoints: Record<string, { id, name, lat, lng, setBy }>
}
Ephemeral room sync (live location) remains unchanged.
Acceptance Criteria
- #1 Persistent annotations survive room disconnection
- #2 Saved routes and meeting points sync via Automerge
- #3 Ephemeral live location sharing still works unchanged
- #4 Demo mode works locally