server/docs/features/notater.md
vegard 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

2.6 KiB

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)

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