synops/docs/proposals/personlig_workspace.md
vegard 00bf5d27ce Arkitekturbeslutninger: noder er sentrum, edges definerer alt
Grunnleggende arkitekturbeslutninger tatt og dokumentert:

- Alt er noder (brukere, team, innhold, mediefiler, samlings-noder)
- Edges definerer hva en node er (freeform typer, metadata i JSONB)
- Materialisert tilgangsmatrise (node_access) erstatter workspace-RLS
- Visibility (hidden/discoverable/readable/open) på noder
- Aliaser via usynlige system-edges
- Maskinrommet eier all skriving (SpacetimeDB først, PG asynk)
- SpacetimeDB holder hele grafen, PG er persistent backup
- Node- og edge-skjema spesifisert (docs/primitiver/)

Fjernet workspace-konseptet fra hele dokumentasjonen (~40 filer).
Fem retninger besluttet, én åpen (rom, ikke forum).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 10:29:54 +01:00

6.4 KiB

Forslag: Personlig workspace

Superseded (v2): Dette forslaget er erstattet av retningen "noder er sentrum" (se docs/retninger/bruker_ikke_workspace.md). I v2 finnes det ingen workspaces. Privat rom oppstår naturlig: noder uten edges til andre brukere er ditt private rom. Personlig kanban, kalender og notater er bare noder du eier uten delte edges. Dokumentet er bevart som historisk referanse.

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