Commit graph

21 commits

Author SHA1 Message Date
8ca9832248 Legg til ops/ (vedlikeholdsjobber) og docs/retninger/ (arkitektoniske teser)
Ny mappe ops/ med repeterbare vedlikeholdsjobber:
- ryddejobb.md — full prosjektrevisjon
- doc-audit.md — docs vs kode
- drift-sjekk.md — prod vs lokal vs docs

Ny mappe docs/retninger/ med arkitektoniske teser:
- status_quo.md — hva Sidelinja er i dag
- rom_ikke_forum.md — opplevelse-først, to-lags-modell, administrativ opplevelse
- universell_input.md — tre primitiver (input, mottak, kommunikasjon), noder+edges
- maskinrommet.md — Rust-orkestrator, edge-drevet ressursorkestrering, CAS+pruning
- bruker_ikke_workspace.md — brukeren er sentrum, workspaces er samlings-noder
- datalaget.md — PG+Apache AGE, SpacetimeDB som sanntidslag, lagmodell

Oppdatert CLAUDE.md og proposals/README.md med referanser.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 04:54:17 +01:00
17b2c44bdd Oppdater docs etter SpacetimeDB-loven-implementering
synkronisering.md: oppdater implementeringsstatus, marker PG-lekkasjer som fikset
spacetimedb_integrasjon.md: nye lærdommer om timestamps, reducer-params,
schema-migrering og AI-worker-flyt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 02:29:43 +01:00
7babafc65f Storyboard-spec, canvas-primitiv og universell overføring
Tre nye/omskrevne dokumenter som definerer fritt-canvas arkitekturen:
- Canvas-primitiv: felles underlag for whiteboard og storyboard (pan, zoom, drag, viewport culling)
- Universell overføring: message_placements-tabell og blokk-til-blokk drag-and-drop
- Storyboard: full spec med episode-sekvens, LiveKit-kobling, inter-board overføring

Inkluderer også storyboard-relaterte mini-proposals (ghost cards, pinboard mode,
flow meter, emotion tags, card chaining, collaborative cursors, card heat map).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 18:10:31 +01:00
1e065b827d Dokumenter SpacetimeDB-loven: aldri PG-lekkasje i frontend/workers
CLAUDE.md: Ny seksjon med fire eksplisitte regler for data som frontend viser.
synkronisering.md: §9 Workers som endrer synlig data — riktig vs feil flyt.
adapter_moenster.md: §5 Anti-pattern enrichFromPg — gjentatt 3+ ganger.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 17:19:57 +01:00
89a8f99766 Docs: oppdater CLAUDE.md arbeidsflyt, ai_gateway og chat-docs
- CLAUDE.md: lagt til standard arbeidsmodus, testmiljø og browser-testing
- ai_gateway.md: PG-eier-config arkitektur, datamodell, config-generering, admin-panel
- chat.md: trådvisning, meldingskollaps, AI-behandling, konvertering

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 09:18:50 +01:00
88a22e131b SpacetimeDB: subscription-erfaringer, refresh med enrichFromPg, whitespace-fiks
- Dokumentert at subscriptions ikke støtter JOINs (feiler stille)
- refresh() kaller enrichFromPg() for å hente fersk metadata fra PG
- Whitespace-normalisering i autogenererte module_bindings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 09:18:45 +01:00
af8f6f97c2 Docs: oppdater alle dokumenter til ny SpacetimeDB-cache-arkitektur
- synkronisering.md: ~5s → ~1s, trådbasert warmup med per-kanal config
- adapter_moenster.md: omskrevet — dokumenterer nåværende arkitektur + historiske anti-patterns
- chat.md: implementeringsstatus oppdatert til mars 2026
- spacetimedb_integrasjon.md: trådbasert warmup og admin-UI dokumentert

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 02:48:15 +01:00
8b58d434e9 SpacetimeDB som cache foran PG: arkitekturendring
PG er autoritativ, SpacetimeDB er varm cache. Frontend snakker
kun med SpacetimeDB, worker håndterer toveissynk.

Fase 1 — SpacetimeDB-modul:
- delete_message med SyncOutbox-event
- edit_message reducer
- MessageReaction tabell + add/remove_reaction reducers
- load_messages med JSON-parsing (erstatter pipe-format)
- clear_channel reducer for duplikat-fri warmup
- load_reactions reducer

Fase 2 — Worker:
- warmup.rs: PG→ST oppvarming ved oppstart (100 msg/kanal)
- sync.rs: håndter delete/update/reaction actions
- Sync-intervall redusert til 1s

Fase 3 — Frontend:
- spacetime.svelte.ts: ren SpacetimeDB-adapter, ingen PG-hybrid
- ChatConnection interface med edit/delete/react metoder
- ChatBlock bruker chat.edit/delete/react direkte
- PG-adapter som readonly fallback

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 02:09:33 +01:00
74110e842c Dokumentasjon: oppdatert arkitektur, nye proposals og konsepter
Oppdatert basert på ekstern tilbakemelding. Nye proposals for
kildevern, podcasting 2.0, web clipper, waveforms, editor,
tekst-primitiv og avisvisning. Oppdatert meldingsboks med
slette-semantikk, entity resolution i kunnskapsgrafen, og
AI gateway med kildevern-modus.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 21:45:24 +01:00
82ee710b47 Flytt ARCHITECTURE.md til docs/, CLAUDE.md som eneste startdokument
- ARCHITECTURE.md → docs/arkitektur.md
- CLAUDE.md: ny arbeidsflyt-seksjon (commit/push fritt, deploy krever ok)
- CLAUDE.md: dokumentasjonstre med alle docs/-referanser
- Alle interne referanser oppdatert (6 filer)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 15:50:49 +01:00
1faef972dd Meldingsboks-migrasjon: universell diskusjonsprimitiv + entities
Migrering 0005 samler kanban-kort, kalenderhendelser, faktoider og
notater til én felles messages-tabell med view-config-tabeller.
Actors og topics erstattes av unified entities-tabell.

- 0005_meldingsboks.sql: messages utvides med title/pinned/visibility,
  kanban_card_view + calendar_event_view + message_reactions opprettes,
  entities erstatter actors+topics, gamle tabeller droppes
- seed_dev.sql: oppdatert til meldingsboks-modell + 5 test-entiteter
  med graf-relasjoner
- API-ruter: kanban/kalender/notater bruker messages + view-config
- Dokumentasjon: meldingsboks feature-spec, oppdatert arkitektur,
  kunnskapsgraf, jobbkø, konseptdokumenter og proposals

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 15:32:15 +01:00
024a91e1b3 Dokumentasjon: arkitekturvurdering — sikkerhet, backup, kostnad, nye forslag
Oppdaterer dokumentasjon basert på tre eksterne arkitekturvurderinger:

- RLS Leak Hunter med CI-test og audit-trigger (migration_safety.md)
- pgvector-migrasjon flyttet til Lag 2, WAL-arkivering med pgBackRest (ARCHITECTURE.md, produksjon.md)
- Off-site backup med rclone, Docker cgroups for workers (ARCHITECTURE.md, produksjon.md)
- Kostnadskontroll i AI Gateway: workspace-budsjett, auto-fallback (ai_gateway.md)
- Gjeste-token sikkerhetsdybde: ClamAV, rate limiting, auto-revoke (den_asynkrone_gjesten.md)
- SpacetimeDB fase 1-vurdering: PG LISTEN/NOTIFY som mellomsteg (synkronisering.md)
- Kritiske events (Aha-markører) flushes umiddelbart (synkronisering.md)
- Ekstern helsesjekk, observability-utvidelser (ARCHITECTURE.md)
- Tre nye forslag: Contradiction Detector, Auto-Highlight Reel, Audience Voice Memo

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 03:56:21 +01:00
fef4e537fd Oppdater dokumentasjon: notater feature-doc, kalender/notater i arkitektur
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 03:29:50 +01:00
7397c8ad93 Oppdater dokumentasjon: kalender implementert, Lag 2 status
- ARCHITECTURE.md: Kalender markert [~] i Lag 2
- docs/features/kalender.md: Oppdatert med implementert status, API-docs, tidssone-håndtering

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 02:59:09 +01:00
87eb2d4919 Oppdater dokumentasjon: kanban status, erfaringslogg, multi-workspace
- ARCHITECTURE.md: Kanban markert [~] i Lag 2, authentik_oidc lagt til erfaringslogg
- docs/features/kanban.md: Full rewrite med implementert status, API-docs, datamodell

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 02:38:11 +01:00
3e163b8d1c Oppdater verifiseringsliste: Authentik og chat bekreftet i prod
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 02:01:13 +01:00
9867bda949 Fiks Authentik OIDC: bruk sub-claim som bruker-ID, fjern debug-logging
Authentik sin OIDC sub-claim er en SHA256-hash, ikke PostgreSQL UUID.
@auth/sveltekit sin interne user.id er en annen UUID som ikke matcher.
Løsning: lagre profile.sub som authentik_sub i JWT-tokenet og bruk
den som session.user.id.

Ny erfaringsfil: docs/erfaringer/authentik_oidc.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 02:00:11 +01:00
ccb29e843a Oppdater fremdrift: SvelteKit deployet til produksjon
- ARCHITECTURE.md: SvelteKit+Authentik merket ferdig i Lag 1, prod docker-compose dokumentert
- CLAUDE.md: Oppdatert prod-status
- produksjon.md: Lag B-C verifiseringsliste oppdatert med deploy-dato

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 01:52:32 +01:00
a5985ef3f8 Dokumentasjon, erfaringslogg, migrasjoner og infra-oppdateringer
- Omorganiser docs/: konsepter, features, infra og proposals i egne mapper
- Ny docs/erfaringer/ med lærdommer fra chat-implementering (Svelte 5, SpacetimeDB, adapter-mønster)
- Oppdater ARCHITECTURE.md: Lag 1 status, ny §10 Erfaringslogg, SpacetimeDB i lokal dev
- Oppdater synkronisering.md med implementeringsstatus og designvalg
- Oppdater lokal.md med SpacetimeDB og AI Gateway
- Utvid PG-skjema med channels, messages, media_files, message_revisions
- Legg til seed_dev.sql, migration_safety.md, .env.example
- Nye feature-specs: chat, kanban, whiteboard, live_ai, lydmeldinger m.fl.
- Nye konsept-specs: studioet, møterommet, redaksjonen, den asynkrone gjesten m.fl.
- SpacetimeDB og AI Gateway i docker-compose.dev.yml
- collect-docs.sh inkluderer erfaringer/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 01:40:14 +01:00
4b56560bf9 Lokalt utviklingsmiljø, Whisper-benchmark, AI Gateway og repostruktur
- Sett opp docker-compose.dev.yml med PostgreSQL, Redis, Caddy og Whisper
- Benchmarket faster-whisper (small/medium/large-v3) med norsk tale
- Besluttet medium + initial_prompt som standard, SRT som master-format
- Ny feature-spec: AI Gateway (LiteLLM) med BYOK og Promptfoo-testing
- Definert dataklassifisering (kritisk/gjenskapbar/avledet/flyktig)
- Konkretisert backup-strategi med pg_dump, rsync og restore-prosedyre
- Splittet repos: sidelinja/server (kode) + sidelinja/sidelinja (innhold)
- Oppdatert lokal.md: utviklingsmiljø for kode, ikke prod-replika
- Dokumentert transkripsjonspipeline: Whisper SRT → Git → PG (avledet)
- Live AI-assistent: small-modell, flyktig logg med 30d TTL

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 14:51:15 +01:00
290a1e398d Initial commit: arkitekturdokumentasjon og feature-specs 2026-03-13 04:51:26 +01:00