synops/docs/concepts/studioet.md
vegard b5aa5bb243 Fjern SpacetimeDB komplett (oppgave 22.4)
SpacetimeDB er nå helt fjernet fra Synops. Sanntid håndteres av
PG LISTEN/NOTIFY + WebSocket i portvokteren (maskinrommet).

Kode fjernet:
- spacetimedb/ Rust-modul og spacetime.json
- maskinrommet/src/stdb.rs (HTTP-klient for STDB-reducers)
- frontend module_bindings/ (23 auto-genererte filer)
- spacetimedb npm-avhengighet fra package.json
- scripts/test-sanntid.sh (testet STDB-flyt)

Infrastruktur:
- Docker-container stoppet og fjernet fra docker-compose.yml
- Caddy: fjernet /spacetime/* reverse proxy
- maskinrommet-env.sh: fjernet STDB_IP og SPACETIMEDB_*-variabler
- .env.example: fjernet SpacetimeDB-seksjoner

Dokumentasjon oppdatert:
- CLAUDE.md: stack, lagmodell, kjerneprinsipper, driftsmodell
- docs/arkitektur.md: skrivestien, lesestien, datalag, teknologivalg
- docs/retninger/datalaget.md: migrasjonshistorikk, status "fjernet"
- 37 andre docs oppdatert (features, concepts, infra, ops, retninger)
- Alle kode-kommentarer med STDB-referanser oppdatert

Verifisert: maskinrommet bygger og starter OK, frontend bygger OK,
helsesjekk returnerer 200. Caddy reloadet.
2026-03-18 13:39:09 +00:00

2.2 KiB

Konsept: Studioet (Podcast-innspilling)

Filsti: docs/concepts/studioet.md

1. Konsept

Det virtuelle podcast-studioet er Sidelinjas innspillingsmiljø. LiveKit håndterer WebRTC for flerbruker lyd/video, mens AI-assistenten lytter med og dytter relevante faktoider til programlederne i sanntid.

2. Brukeropplevelse

  1. Programlederne åpner studioet i SvelteKit (PWA) og kobler seg til et LiveKit-rom.
  2. Høykvalitetslyd streames mellom deltakerne via WebRTC.
  3. I bakgrunnen transkriberer Whisper lydstrømmen i chunks (~5 sek) via live transkripsjonspipelinen (se docs/features/live_transkripsjon.md).
  4. AI-assistenten analyserer transkripsjonen for entiteter (NER) og slår opp i Kunnskapsgrafen. Relevante faktoider popper lydløst opp på skjermen (se docs/features/live_ai.md, studio-modus).
  5. Programlederne kan trykke Aha-markør for å markere viktige øyeblikk. Tidsstempelet lagres i PG og synkes til frontend via WebSocket, koblet til episoden.
  6. Etter innspilling skyves lydfilen inn i Podcastfabrikken for full transkripsjon og publisering (se docs/concepts/podcastfabrikken.md).

3. Komponenter

Feature Rolle i Studioet
LiveKit WebRTC lyd/video mellom deltakere
Lydmixer Volumslidere, mute, sound pads, stemmeeffekter, EQ (se docs/features/lydmixer.md)
Live transkripsjon Whisper small for lav latens, ~1s forsinkelse (se docs/features/live_transkripsjon.md)
Live AI (studio-modus) NER + faktoid-oppslag fra Kunnskapsgrafen (se docs/features/live_ai.md)
Aha-markør Manuell markering av viktige øyeblikk, lagres i PG

4. Avgrensning

  • Studioet er for innspilling, ikke redigering. Klipping/postproduksjon skjer utenfor Sidelinja.
  • Live-transkripsjonen her er flyktig (TTL 30 dager) — den endelige transkripsjonen lages via Podcastfabrikken med medium + initial_prompt.
  • Aha-markøren deles med Møterommet (se docs/concepts/møterommet.md), men i studio-konteksten brukes den primært til klippepunkter.

5. Utviklingsfaser

  1. Bygg WebSocket-lytter i frontend + dummy faktoid-push for å verifisere UI.
  2. Koble Whisper til et offline lydopptak, kjør NER/oppslag mot PostgreSQL.
  3. Koble LiveKit-strømmen til Whisper for sanntid.