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

1.5 KiB

id title status assignee created_date updated_date labels milestone dependencies parent_task_id priority
TASK-118.12 Add persistent map annotations to rmaps via Automerge Done
2026-03-16 00:06 2026-03-16 00:50
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

Implementation Notes

schemas.ts + local-first-client.ts created