server/docs/proposals/personlig_workspace.md
vegard 1faef972dd Meldingsboks-migrasjon: universell diskusjonsprimitiv + entities
Migrering 0005 samler kanban-kort, kalenderhendelser, faktoider og
notater til én felles messages-tabell med view-config-tabeller.
Actors og topics erstattes av unified entities-tabell.

- 0005_meldingsboks.sql: messages utvides med title/pinned/visibility,
  kanban_card_view + calendar_event_view + message_reactions opprettes,
  entities erstatter actors+topics, gamle tabeller droppes
- seed_dev.sql: oppdatert til meldingsboks-modell + 5 test-entiteter
  med graf-relasjoner
- API-ruter: kanban/kalender/notater bruker messages + view-config
- Dokumentasjon: meldingsboks feature-spec, oppdatert arkitektur,
  kunnskapsgraf, jobbkø, konseptdokumenter og proposals

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 15:32:15 +01:00

47 lines
2.8 KiB
Markdown

# Forslag: Personlig workspace
## Ide
Hver bruker får et implisitt, privat workspace med alle verktøyene et vanlig workspace har — kanban, kalender, notater, graf-koblinger. Alt kan kladdes privat og flyttes til et delt workspace når det er klart.
## Hvorfor er dette interessant?
- Redaksjonsmedlemmer trenger et sted å jobbe uforstyrret — research, kladder, oppgavelister
- `visibility = 'private'` på meldingsbokser løser private notater *innenfor* et workspace, men gir ikke en egen arbeidsflate med egne kanban-brett, kalendere og graf
- Et personlig workspace gir full fleksibilitet: private kanban-brett for personlige oppgaver, privat kalender, private research-notater med graf-koblinger — alt med eksisterende infrastruktur
## Hva det bygger på
- Workspace-modellen (RLS, workspace_members)
- Meldingsboks (alt er allerede workspace-scopet)
## Åpne spørsmål
### Opprettelse
- Automatisk ved brukerregistrering, eller on-demand?
- Navnekonvensjon for slug: `user-{authentik_id}` eller `personal-{display_name}`?
### Flytt mellom workspaces
Hovedutfordringen. En meldingsboks som flyttes fra personlig til delt workspace krever:
- `nodes.workspace_id` endres
- `graph_edges` som refererer til noden — flyttes med, eller brytes?
- Svar (`reply_to`-kjeden) — følger med, eller forblir i kilde?
- `kanban_card_view` / `calendar_event_view` — peker på strukturer (kolonner, kalendere) i kilde-workspacet
Mulige strategier:
1. **Kopier, ikke flytt** — opprett ny node i mål-workspace, behold original i personlig. Lenke mellom dem med edge.
2. **Flytt atomisk** — flytt noden og alle avhengigheter i én transaksjon. Komplekst men rent.
3. **Del, ikke flytt** — endre `visibility` fra `'private'` til `'workspace'` uten å bytte workspace. Krever at personlige og delte meldinger kan sameksistere i samme workspace (allerede støttet).
Strategi 3 er enklest og allerede implementert via `visibility`-kolonnen. Et personlig workspace trengs da bare hvis brukeren vil ha *helt separerte* verktøy (eget kanban-brett, egen kalender).
### Workspace-switcher
- Vises personlig workspace i workspace-switcheren?
- Visuelt skille mellom personlige og delte workspaces?
### Kvoter og TTL
- Eget disk-/lagringsbudsjett per personlig workspace?
- Strengere TTL for å unngå at personlige workspaces vokser ubegrenset?
### Alternativ: "Visibility er nok"
Det kan hende at `visibility = 'private'` på meldingsbokser innenfor delte workspaces dekker 90% av behovet. Et personlig workspace er da overkill — brukeren jobber bare privat i det delte workspacet og deler når klar. Verdt å evaluere etter at visibility er i bruk en stund.
## Innsats: Lav (workspace-opprettelse) / Middels (flytt-mellom-workspaces)
## Wow-faktor: Middels