50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
---
|
|
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 -->
|