synops/frontend/src/routes/+layout.svelte
vegard e8a1a80652 Valider fase 22: STDB-migrering fullført, ingen rester i aktiv kode
Validering av fase 22 (SpacetimeDB-migrering) bekrefter:

1. WebSocket-sanntid fungerer:
   - maskinrommet lytter på PG NOTIFY-kanaler (node_changed, edge_changed,
     access_changed, mixer_channel_changed)
   - Enrichment av events med fulle rader fra PG
   - Broadcast via tokio::broadcast til WebSocket-klienter
   - Tilgangskontroll filtrerer events per bruker
   - Frontend kobler til /ws med JWT, mottar initial_sync + inkrementelle events

2. PG LISTEN/NOTIFY-triggere verifisert i database:
   - 4 notify-funksjoner: notify_node_change, notify_edge_change,
     notify_access_change, notify_mixer_channel_change
   - 4 triggere: nodes_notify, edges_notify, node_access_notify,
     mixer_channels_notify

3. Ingen STDB-rester i aktiv kode/konfig:
   - maskinrommet/src/: rent
   - Cargo.toml: ingen spacetimedb-avhengigheter
   - docker-compose.yml: ingen spacetimedb-tjeneste
   - Caddyfile: ingen spacetimedb-proxy
   - Eneste funn: frontend/src/lib/spacetime/ katalognavn —
     omdøpt til frontend/src/lib/realtime/ (32 filer oppdatert)
   - Historiske referanser i docs/arkiv og scripts/synops.md er OK
2026-03-18 16:31:16 +00:00

24 lines
698 B
Svelte

<script lang="ts">
import '../app.css';
import { page } from '$app/stores';
import { wsConnect, wsDisconnect } from '$lib/realtime';
import { browser } from '$app/environment';
import SystemAnnouncements from '$lib/components/SystemAnnouncements.svelte';
let { children } = $props();
// Koble til portvokterens WebSocket når autentisert og i browser
$effect(() => {
const session = $page.data.session as Record<string, unknown> | undefined;
const accessToken = session?.accessToken as string | undefined;
if (browser && accessToken) {
wsConnect(accessToken);
}
return () => {
if (browser) wsDisconnect();
};
});
</script>
<SystemAnnouncements />
{@render children()}