load_messages satte alle meldinger til nåtidspunkt. Parser nå PG-timestamp
til SpacetimeDB Timestamp slik at created_at bevares korrekt.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Utvider SpacetimeDB-modulen med metadata, edited_at og MessageRevision-tabell.
Worker skriver via reducers (set_ai_processing, ai_update_message) i stedet for
direkte PG-skriving. Frontend-adapteren leser alt fra SpacetimeDB — null fetch()-kall.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
SvelteKit (web/):
- Komplett app-skjelett med Authentik SSO (dev-bypass lokalt)
- Workspace-modell med cookie-basert switching og RLS-kontekst
- Komponerbare sider (PageGrid + BlockShell + block registry)
- Chat med adapter-mønster: PG-polling og SpacetimeDB hybrid-adapter
- Brukeridentitet fra Authentik/dev-login flyter til chat-meldinger
- API-ruter for channels, messages og health
SpacetimeDB (spacetimedb/):
- Rust WASM-modul med ChatMessage og SyncOutbox-tabeller
- send_message reducer med sync outbox for fremtidig PG-persistering
- Genererte TypeScript-bindings for klient-integrasjon
Infra:
- SpacetimeDB lagt til i docker-compose.dev.yml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>