rspace-online/backlog/tasks/task-118.12 - Add-persisten...

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
tier-5
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, meetingPoints
  • modules/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