server/docs/proposals/personlig_workspace.md
vegard 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

117 lines
6.1 KiB
Markdown

# Forslag: Personlig workspace
## Idé
Hver bruker får et personlig workspace som fungerer som en individuell produktivitetssuite. Alle verktøyene et delt workspace har — kanban, kalender, notater, graf-koblinger — men privat og selvorganisert. I tillegg: en personlig publiseringskanal ("blogg") der tekster kan deles med omverdenen.
## Hvorfor er dette interessant?
### Individuell produktivitet
Redaksjonsmedlemmer trenger et sted å jobbe uforstyrret:
- Personlige oppgavelister (kanban)
- Egen kalender (deadlines, påminnelser)
- Kladder og research-notater
- Graf-koblinger til temaer og aktører de følger
`visibility = 'private'` på meldingsbokser innenfor delte workspaces dekker noe av dette, men gir ikke en *egen arbeidsflate*. Et personlig workspace gir:
- Eget kanban-brett for personlige oppgaver (ikke synlig for andre)
- Egen kalender (kan overlappes med delt kalender i UI)
- Egne notater uten støy fra fellesrommet
- Egne graf-koblinger og research
### Personlig publisering
Med tekst-primitiven (se `tekst_primitiv.md`) og publiseringsmodellen (se `artikkel_publisering.md`) kan personlig workspace også være utgangspunkt for en personlig blogg/feed:
- Skriv en tekst i personlig workspace
- Publiser den → tilgjengelig på en personlig URL (`sidelinja.org/@vegard/...`)
- Teksten kan også plukkes opp av en felles publikasjon (se artikkel-publisering)
## Hva bygger den på?
- **Workspace-modellen** (RLS, workspace_members) — et personlig workspace er bare et vanlig workspace med én member
- **Meldingsboks** — alt er allerede workspace-scopet
- **Tekst-primitiv** (proposal) — gir notater en skikkelig editor
- **Artikkel-publisering** (proposal) — gir publiseringskanalen
## Skisse
### Verktøy i personlig workspace
| Verktøy | Hva det er | Bygger på |
|---|---|---|
| Oppgaver | Personlig kanban-brett | `kanban_card_view` |
| Kalender | Personlig kalender | `calendar_event_view` |
| Notater/kladder | Meldinger med rich text editor | Tekst-primitiv |
| Research | Editor AI-knapp + graf-koblinger | Kunnskapsgraf, AI gateway |
| Personlig feed | Publiserte tekster med egen URL | Artikkel-publisering |
Alle disse er eksisterende features brukt i en personlig kontekst. Ingen ny funksjonalitet — bare et eget workspace å bruke dem i.
### Opprettelse
Automatisk ved brukerregistrering. Workspacet er implisitt — det dukker opp i workspace-switcheren med et visuelt skille (ikon, farge, eller plassering).
Slug: `personal-{authentik_id}` (intern), visningsnavn: brukerens display_name.
### Workspace-switcher
```
┌─────────────────────┐
│ 👤 Mitt workspace │ ← alltid øverst, visuelt adskilt
├─────────────────────┤
│ 📻 Sidelinja │
│ 🏛️ Foreningen │
│ ... │
└─────────────────────┘
```
### Flytt mellom workspaces
Tre strategier, rangert etter pragmatisme:
1. **Del, ikke flytt** (enklest) — endre `visibility` fra `'private'` til `'workspace'`. Krever at meldingen allerede bor i mål-workspacet. Fungerer for "jobbe privat i fellesrommet", men ikke for å flytte fra personlig workspace til et delt.
2. **Kopier, ikke flytt** (anbefalt) — opprett ny node i mål-workspace, behold original i personlig. Lenke mellom dem med `COPIED_FROM`-edge. Enkelt, trygt, ingen referanseproblemer.
3. **Flytt atomisk** — endre `workspace_id` på node + alle avhengigheter i én transaksjon. Komplekst: `graph_edges`, `reply_to`-kjeder, `kanban_card_view`-referanser til kolonner i kilde-workspace. Ikke verdt kompleksiteten initialt.
**Anbefaling:** Start med (2). "Kopier til fellesrom" er en tydelig handling. Originalen forblir i personlig workspace som referanse.
### Personlig publisering (avhenger av artikkel-publisering)
Hvert personlig workspace har en implisitt publikasjon (feed). Når en tekst publiseres fra personlig workspace:
- Den får en `article_view` med slug og status
- Den blir tilgjengelig på `sidelinja.org/@brukernavn/slug`
- Den dukker opp i brukerens personlige Atom-feed
- En redaktør i en felles publikasjon kan kuratere den derfra (se `artikkel_publisering.md`)
## Åpne spørsmål
### Grense mot delte workspaces
- Kan et personlig workspace ha flere medlemmer (f.eks. invitere en kollega til å se kanban-brettet)? Eller er det strengt personlig?
- Pragmatisk: start strengt personlig (1 member). Utvid later hvis behov oppstår.
### Kvoter og vekst
- Eget lagringsbudsjett per personlig workspace?
- TTL-policy: samme som delte workspaces, eller mer liberal (personlig innhold slettes ikke automatisk)?
- Trolig: ingen TTL på personlig workspace som default. Brukeren styrer selv.
### Dashboard / startside
- Bør personlig workspace ha et dashboard? F.eks.:
- Siste notater
- Kommende kalenderhendelser
- Kanban-kort med deadline
- Siste aktivitet i delte workspaces brukeren er med i
- Eller er det overkill — bare vis verktøyene?
### Alternativ: "Visibility er nok"
Det kan fortsatt hende at `visibility = 'private'` i delte workspaces dekker 80% av behovet. Et personlig workspace er da mest relevant for:
- Innhold som ikke hører til noe delt workspace
- Personlig publisering
- Et "hjem" i appen
Verdt å evaluere etter at visibility og tekst-primitiven er på plass.
## Innsats: Lav (opprettelse) / Middels (med publisering og dashboard)
Workspace-opprettelse ved registrering er trivielt. Publiseringslaget avhenger av tekst-primitiv og artikkel-publisering. Dashboard er eget arbeid.
## Wow-faktor: Middels-Høy
Alene er det "et privat workspace". Med publisering blir det en personlig plattform — Substack-aktig, men integrert i redaksjonsverktøyet.
## Relasjon til andre proposals
- **Tekst-primitiv** — gir notater og kladder en skikkelig editor
- **Artikkel-publisering** — gir publiseringsmodellen (publikasjoner, kuratorer, feeds)
- Personlig workspace er *konteksten* der tekst-primitiven og publisering møtes for individet