Kobler kommunikasjonsnoder til LiveKit for sanntidslyd.
Bruker sender join_communication-intensjon, maskinrommet validerer
tilgang og returnerer signert LiveKit JWT-token + rom-URL.
Nye komponenter:
- maskinrommet/src/livekit.rs: JWT token-generering (HS256-signert
med LIVEKIT_API_SECRET, 1-times TTL, publisher/subscriber-roller)
- POST /intentions/join_communication: validerer deltaker-edge,
genererer token, oppretter rom i STDB, oppdaterer node-metadata
- POST /intentions/leave_communication: fjerner deltaker fra STDB
- POST /intentions/close_communication: stenger rom (krever owner)
- SpacetimeDB: live_room + room_participant tabeller for sanntids
deltakerliste (frontend abonnerer via WebSocket)
SpacetimeDB-modul publisert som synops-v2 (ny identitet etter
at den opprinnelige ikke lenger var tilgjengelig). .env oppdatert.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Visibility-filtrering (oppgave 4.3, del 1/2):
- Ny node_access-tabell i STDB-modulen som speiler PG
- Reducers: upsert_node_access, delete_node_access, delete_node_access_for_subject
- STDB-klient i maskinrommet: metoder for node_access
- Warmup synker node_access fra PG til STDB ved oppstart
- Tilgangsgivende edges synker node_access til STDB etter PG-commit
- clear_all tømmer også node_access
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Oppretter SpacetimeDB Rust-modul som speiler PG-skjema:
- Node-tabell (id, node_kind, title, content, visibility, metadata, timestamps)
- Edge-tabell (id, source_id, target_id, edge_type, metadata, system flag)
- CRUD-reducers: create/update/delete for begge tabeller
- clear_all reducer for warmup-reset
- Cascade-delete av edges ved node-sletting
Deployet til SpacetimeDB-instans på server (database: synops).
SpacetimeDB lagt til i docker-compose på serveren.
Verifisert med spacetime sql og call: tabeller fungerer,
CRUD-operasjoner fungerer, cascade-delete fungerer.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>