SpacetimeDB er nå helt fjernet fra Synops. Sanntid håndteres av PG LISTEN/NOTIFY + WebSocket i portvokteren (maskinrommet). Kode fjernet: - spacetimedb/ Rust-modul og spacetime.json - maskinrommet/src/stdb.rs (HTTP-klient for STDB-reducers) - frontend module_bindings/ (23 auto-genererte filer) - spacetimedb npm-avhengighet fra package.json - scripts/test-sanntid.sh (testet STDB-flyt) Infrastruktur: - Docker-container stoppet og fjernet fra docker-compose.yml - Caddy: fjernet /spacetime/* reverse proxy - maskinrommet-env.sh: fjernet STDB_IP og SPACETIMEDB_*-variabler - .env.example: fjernet SpacetimeDB-seksjoner Dokumentasjon oppdatert: - CLAUDE.md: stack, lagmodell, kjerneprinsipper, driftsmodell - docs/arkitektur.md: skrivestien, lesestien, datalag, teknologivalg - docs/retninger/datalaget.md: migrasjonshistorikk, status "fjernet" - 37 andre docs oppdatert (features, concepts, infra, ops, retninger) - Alle kode-kommentarer med STDB-referanser oppdatert Verifisert: maskinrommet bygger og starter OK, frontend bygger OK, helsesjekk returnerer 200. Caddy reloadet.
66 lines
2.4 KiB
Markdown
66 lines
2.4 KiB
Markdown
# Feature: Dagbok (Privat journal)
|
|
**Filsti:** `docs/features/dagbok.md`
|
|
|
|
## 1. Konsept
|
|
En personlig dagbok-visning som samler brukerens private noder — innhold
|
|
som ikke er delt med andre via edges. Fungerer som en kronologisk logg
|
|
over tanker, notater og idéer som kun er synlige for eieren.
|
|
|
|
## 2. Status
|
|
**Implementert med nodes+edges (mars 2026).** Sanntid via PG LISTEN/NOTIFY + WebSocket.
|
|
|
|
### Implementert
|
|
- Frontend: `/diary` route med dagbok-visning
|
|
- Filtrering: viser kun noder som er opprettet av brukeren og ikke har
|
|
delte edges (ingen non-system edges til andre brukere/noder)
|
|
- Ekskluderte node-typer: `communication`, `agent`, `person`, `team`
|
|
- Gruppering etter dato med norske datoetiketter ("I dag", "I går", ellers fullt format)
|
|
- Kronologisk sortering (nyeste først)
|
|
- Tidsstempel per innlegg
|
|
- Inline oppretting av nye dagbokinnlegg (tittel + innhold)
|
|
- Nye innlegg får `visibility: 'hidden'` og `owner`-edge fra bruker
|
|
- Dagbok-lenke med tellebadge i mottak-siden
|
|
- Responsivt design (max-w-3xl, mobilklar)
|
|
|
|
### Gjenstår
|
|
- Redigeringsmodus for eksisterende innlegg
|
|
- Rik tekst-editor (gjenbruk NodeEditor-komponenten)
|
|
- Sletting av innlegg
|
|
- Søk/filtrering i dagboken
|
|
- Eksport-funksjon
|
|
|
|
## 3. Datamodell
|
|
|
|
Dagboken bruker ingen egne tabeller eller edge-typer. Den er en
|
|
**visning** (query) over eksisterende noder og edges.
|
|
|
|
### Hva er et dagbokinnlegg?
|
|
En node som oppfyller alle tre kriterier:
|
|
1. `created_by = <brukerens node-ID>`
|
|
2. `node_kind` er ikke `communication`, `agent`, `person` eller `team`
|
|
3. Ingen non-system edges der den andre enden er en annen bruker/node
|
|
(kun `owner`-edge fra bruker, system-edges, og selv-refererende edges er tillatt)
|
|
|
|
### Oppretting
|
|
```
|
|
POST /intentions/create_node
|
|
{ node_kind: "content", title: "...", content: "...", visibility: "hidden" }
|
|
POST /intentions/create_edge
|
|
{ source_id: <bruker>, target_id: <ny_node>, edge_type: "owner" }
|
|
```
|
|
|
|
## 4. Frontend
|
|
|
|
### Route
|
|
`/diary` → `frontend/src/routes/diary/+page.svelte`
|
|
|
|
### Datakilde
|
|
WebSocket-sanntidsdata via `nodeStore` og `edgeStore`.
|
|
Ingen backend-query — all filtrering skjer i frontend basert på
|
|
data mottatt via initial sync + WebSocket.
|
|
|
|
### UI-struktur
|
|
- Header med tilbake-lenke til mottak og innlegg-teller
|
|
- Ny-innlegg-knapp (utvides til skjema med tittel + tekstfelt)
|
|
- Innlegg gruppert per dato, sortert nyeste først
|
|
- Hvert innlegg viser tidsstempel, tittel, og innholdsutdrag
|