# 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