---
id: TASK-118.11
title: 'Add space-scoped linking for external wrappers (rdesign, rdocs, rmeets)'
status: Done
assignee: []
created_date: '2026-03-16 00:06'
updated_date: '2026-03-16 00:50'
labels:
  - multiplayer
  - tier-4
milestone: Multiplayer Everything
dependencies: []
parent_task_id: TASK-118
priority: low
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
These 3 modules wrap external services (Affine, Docmost, Jitsi) via iframes. We can't sync their internal state, but we can add Automerge docs for space-scoped metadata: which projects/docs/rooms are linked to this space, access history, and meeting scheduling.

## rdesign (Affine)
- Schema: `DesignDoc { linkedProjects: Record<id, { url, name, addedBy }> }`
- Component: Show linked Affine projects, allow adding/removing

## rdocs (Docmost)
- Schema: `DocsDoc { linkedDocuments: Record<id, { url, title, addedBy }> }`
- Component: Show linked Docmost docs, allow adding/removing

## rmeets (Jitsi)
- Schema: `MeetsDoc { meetings: Record<id, { roomName, title, scheduledAt, hostDid, participants[] }>, meetingHistory[] }`
- Component: Schedule meetings, show history, quick-join links

Each needs: schemas.ts, local-first-client.ts, component integration.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [ ] #1 Linked external projects/docs/rooms sync across space members
- [ ] #2 Meeting scheduling syncs in real-time
- [ ] #3 Adding/removing links requires authentication
- [ ] #4 Demo mode shows placeholder data
<!-- AC:END -->

## Implementation Notes

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