Oppdater dokumentasjon: notater feature-doc, kalender/notater i arkitektur

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
vegard 2026-03-15 03:29:50 +01:00
parent 7e83292abe
commit fef4e537fd
3 changed files with 72 additions and 1 deletions

View file

@ -161,7 +161,7 @@ Detaljerte spesifikasjoner ligger i `docs/concepts/` (brukeropplevelser) og `doc
* **Den Asynkrone Gjesten:** Tidsbegrenset lenke til gjester for asynkrone lydopptak som lander i redaksjonens arbeidsflyt. * **Den Asynkrone Gjesten:** Tidsbegrenset lenke til gjester for asynkrone lydopptak som lander i redaksjonens arbeidsflyt.
### Features (byggeklosser) ### Features (byggeklosser)
Chat (channels), Kanban, Whiteboard, Live transkripsjon, Live AI (faktoid + referent), Visuell graf, AI Research-Klipper, Lydmeldinger & Diktering, Podcast-statistikk, Kunnskaps-Bridge (cross-workspace), Prompt-Laboratorium. Chat (channels), Kanban, Kalender, Notater/Scratchpad, Whiteboard, Live transkripsjon, Live AI (faktoid + referent), Visuell graf, AI Research-Klipper, Lydmeldinger & Diktering, Podcast-statistikk, Kunnskaps-Bridge (cross-workspace), Prompt-Laboratorium.
## 8. Bygge-rekkefølge (Avhengighetskart) ## 8. Bygge-rekkefølge (Avhengighetskart)
@ -185,6 +185,7 @@ Chat (channels), Kanban, Whiteboard, Live transkripsjon, Live AI (faktoid + refe
- [~] Chat med channels (PG-adapter + SpacetimeDB hybrid-adapter ferdig, sync-worker gjenstår) - [~] Chat med channels (PG-adapter + SpacetimeDB hybrid-adapter ferdig, sync-worker gjenstår)
- [~] Kanban (PG-adapter ferdig med drag & drop, redigeringsmodal, CRUD API. SpacetimeDB-sync gjenstår) - [~] Kanban (PG-adapter ferdig med drag & drop, redigeringsmodal, CRUD API. SpacetimeDB-sync gjenstår)
- [~] Kalender (PG-adapter ferdig med månedsvisning, fargekoder, heldags/tidshendelser. SpacetimeDB-sync gjenstår) - [~] Kalender (PG-adapter ferdig med månedsvisning, fargekoder, heldags/tidshendelser. SpacetimeDB-sync gjenstår)
- [~] Notater/Scratchpad (PG-adapter ferdig med auto-save, debounce, tittel+innhold. Rich text og SpacetimeDB-sync gjenstår)
- [ ] Lydmeldinger & Diktering (opptak + Whisper + AI-opprydding) - [ ] Lydmeldinger & Diktering (opptak + Whisper + AI-opprydding)
- [ ] Prompt-Laboratorium (prompt-testing mot egne data) - [ ] Prompt-Laboratorium (prompt-testing mot egne data)
- [ ] Promptfoo testsett for første jobbtyper (norsk testdata) - [ ] Promptfoo testsett for første jobbtyper (norsk testdata)

View file

@ -31,6 +31,7 @@ Self-hosted på Hetzner VPS med full datakontroll.
- `kunnskaps_bridge.md` — Cross-workspace discovery via vector embeddings - `kunnskaps_bridge.md` — Cross-workspace discovery via vector embeddings
- `prompt_lab.md` — Internt verktøy for testing og deploy av LLM-prompts - `prompt_lab.md` — Internt verktøy for testing og deploy av LLM-prompts
- `kalender.md` — Redaksjonell kalender med abonnementsmodell og ICS-eksport - `kalender.md` — Redaksjonell kalender med abonnementsmodell og ICS-eksport
- `notater.md` — Scratchpad/notatblokk med auto-save og debounce
- `docs/infra/` — Infrastruktur (ikke brukersynlig): - `docs/infra/` — Infrastruktur (ikke brukersynlig):
- `jobbkø.md` — Felles PostgreSQL-basert køsystem for alle bakgrunnsjobber - `jobbkø.md` — Felles PostgreSQL-basert køsystem for alle bakgrunnsjobber
- `synkronisering.md` — PostgreSQL ↔ SpacetimeDB dataflyt og eierskapsmodell - `synkronisering.md` — PostgreSQL ↔ SpacetimeDB dataflyt og eierskapsmodell
@ -41,6 +42,7 @@ Self-hosted på Hetzner VPS med full datakontroll.
- `svelte5_reaktivitet.md` — $state-getters, SSR-feller, polling-mønster - `svelte5_reaktivitet.md` — $state-getters, SSR-feller, polling-mønster
- `spacetimedb_integrasjon.md` — SDK-konvensjoner, BigInt, Rust borrow-feller - `spacetimedb_integrasjon.md` — SDK-konvensjoner, BigInt, Rust borrow-feller
- `adapter_moenster.md` — Hybrid PG+SpacetimeDB, anti-patterns, anbefaling for neste komponent - `adapter_moenster.md` — Hybrid PG+SpacetimeDB, anti-patterns, anbefaling for neste komponent
- `authentik_oidc.md` — Sub-claim er SHA256, @auth/sveltekit JWT-quirks, redirect URI
## Stack ## Stack
- **Backend/Automasjon:** Rust - **Backend/Automasjon:** Rust

68
docs/features/notater.md Normal file
View file

@ -0,0 +1,68 @@
# Feature: Notater (Scratchpad)
**Filsti:** `docs/features/notater.md`
## 1. Konsept
Et enkelt notatverktøy med automatisk lagring. Brukes som scratchpad i ulike kontekster — show notes, møtenotater, research-notater. Notater er nodes i kunnskapsgrafen og kan kobles til andre noder.
## 2. Status
**PG-adapter ferdig og deployet (mars 2025).** Rich text og SpacetimeDB-sync gjenstår.
### Implementert
- Migrering `0004_notes.sql`: `notes`-tabell (FK→nodes)
- Notater er nodes — arver workspace-isolasjon automatisk
- Auto-save med 500ms debounce (visuell feedback: "Lagrer..."/"Lagret")
- REST API: GET og PATCH (tittel + innhold)
- PG polling-adapter med 10 sek intervall (tregere enn chat/kanban — notater endres sjeldnere)
- NotesBlock.svelte: tittel-input + fritekst-textarea med auto-save
- Polling pauses mens brukeren skriver (unngår overskriving av egne endringer)
### Gjenstår — Fase 2
- Markdown-editor (rich text med forhåndsvisning)
- Versjonering / undo-historikk
- Kobling til andre noder (temaer, episoder, aktører)
- Flerbruker-redigering (conflict resolution)
- SpacetimeDB-modul + hybrid-adapter
- Eksport (Markdown, PDF)
## 3. Datamodell (implementert)
```sql
CREATE TABLE notes (
id UUID PRIMARY KEY REFERENCES nodes(id) ON DELETE CASCADE,
parent_id UUID NOT NULL REFERENCES nodes(id),
title TEXT NOT NULL DEFAULT '',
content TEXT NOT NULL DEFAULT '',
created_by TEXT REFERENCES users(authentik_id),
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
```
`updated_at` oppdateres automatisk ved PATCH og brukes til "Lagret [tidspunkt]"-visning.
## 4. API-endepunkter
| Metode | Sti | Beskrivelse |
|---|---|---|
| GET | `/api/notes/[noteId]` | Hent notat |
| PATCH | `/api/notes/[noteId]` | Oppdater tittel og/eller innhold |
## 5. Brukes av
| Konsept | Bruk |
|---|---|
| Redaksjonen (Sidelinja) | Show notes for episoder |
| Foreningen Liberalistene | Møtenotater |
| Møterommet (fremtidig) | Scratchpad under møter |
## 6. Auto-save-mønster
- Bruker skriver → 500ms debounce → PATCH til server
- Under lagring vises "Lagrer..." (gul)
- Etter vellykket lagring vises "Lagret [dato]" (grå)
- Polling (10 sek) henter siste versjon, men hopper over overskriving mens `saving`-flagget er satt
## 7. Instruks for Claude Code
* Notater er workspace-scopet via node-modellen
* Auto-save bruker debounce — ikke send PATCH ved hvert tastetrykk
* `updated_at` brukes til UI-feedback, ikke til conflict resolution (ennå)
* Sjekk `docs/erfaringer/adapter_moenster.md` for hybrid-strategi