Legg til fase 19 (spatial canvas) og 20 (universell overføring + panelrework)

Arkitekturskiftet fra "vertikalt stablede traits" til "spatial canvas
med verktøy-paneler" krever:

Fase 19 — Arbeidsflaten:
- Canvas-primitiv (pan/zoom/viewport)
- BlockShell wrapper for alle paneler
- Collection-side rewrite til spatial layout
- Kontekst-header med node-velger
- Snarveier og personlig flate

Fase 20 — Universell overføring:
- message_placements tabell + STDB
- source_material edge-type
- BlockReceiver interface i alle traits
- Transfer service (innholdstransfer + triage)
- Panelrework for Chat, Kanban, Kalender, Editor, Studio

Ref: docs/retninger/arbeidsflaten.md, docs/features/universell_overfoering.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
vegard 2026-03-18 01:28:24 +00:00
parent ee5a971af5
commit 7eeee34c74
2 changed files with 32 additions and 2 deletions

View file

@ -29,19 +29,22 @@ declare -A PHASE_DEPS=(
[9]="3" [9]="3"
[10]="2" [10]="2"
[11]="5 6 7" [11]="5 6 7"
[12]="1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17" [12]="1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20"
[13]="3 4" [13]="3 4"
[14]="6 13" [14]="6 13"
[15]="3 10" [15]="3 10"
[16]="11 13" [16]="11 13"
[17]="" [17]=""
[18]="10 13"
[19]="3 13"
[20]="19"
) )
# --- Finn blokkerte faser --- # --- Finn blokkerte faser ---
# En fase er blokkert hvis den har en [?], [!] eller [~] oppgave # En fase er blokkert hvis den har en [?], [!] eller [~] oppgave
blocked_phases() { blocked_phases() {
local phases="" local phases=""
for phase in $(seq 1 17); do for phase in $(seq 1 20); do
if grep -qP "^\- \[(\?|!|~)\] ${phase}\." "$TASKS" 2>/dev/null; then if grep -qP "^\- \[(\?|!|~)\] ${phase}\." "$TASKS" 2>/dev/null; then
phases="$phases $phase" phases="$phases $phase"
fi fi

View file

@ -38,6 +38,8 @@ Fase 3 + 10 → Fase 15 (adminpanel)
Fase 11 + 13 → Fase 16 (lydmixer) Fase 11 + 13 → Fase 16 (lydmixer)
Fase 17 (lydstudio-utbedring) — ingen avhengigheter, kan kjøres parallelt Fase 17 (lydstudio-utbedring) — ingen avhengigheter, kan kjøres parallelt
Fase 10 + 13 → Fase 18 (AI-verktøy) Fase 10 + 13 → Fase 18 (AI-verktøy)
Fase 3 + 13 → Fase 19 (arbeidsflaten — spatial canvas)
Fase 19 → Fase 20 (universell overføring + panelrework)
Alt → Fase 12 (herding) Alt → Fase 12 (herding)
``` ```
@ -206,6 +208,31 @@ Ref: `docs/features/ai_verktoy.md`, `docs/retninger/arbeidsflaten.md`
- [ ] 18.5 Drag-and-drop integrasjon: node → verktøy (ny node), verktøy → node (in-place revisjon). Drop-sone feedback med verktøyets farge. Inkompatibilitet for lyd/bilde-noder med forklaring. - [ ] 18.5 Drag-and-drop integrasjon: node → verktøy (ny node), verktøy → node (in-place revisjon). Drop-sone feedback med verktøyets farge. Inkompatibilitet for lyd/bilde-noder med forklaring.
- [ ] 18.6 Egendefinerte presets: brukere kan opprette egne AI-preset-noder med custom prompt. Dele via edges til samling/team. Modellprofil satt av admin. - [ ] 18.6 Egendefinerte presets: brukere kan opprette egne AI-preset-noder med custom prompt. Dele via edges til samling/team. Modellprofil satt av admin.
## Fase 19: Arbeidsflaten — Spatial Canvas
Ref: `docs/retninger/arbeidsflaten.md`, `docs/features/canvas_primitiv.md`
- [ ] 19.1 Canvas-primitiv Svelte-komponent: pan/zoom kamera med CSS transforms, viewport culling, pointer events (mus + touch), snap-to-grid (valgfritt), fullskjermsmodus. Ref: `docs/features/canvas_primitiv.md`.
- [ ] 19.2 BlockShell wrapper-komponent: header med tittel + fullskjerm/resize/lukk-knapper, drag-handles for repositionering, resize-handles, drop-sone rendering (highlight ved drag-over). Responsivt (min-size, max-size).
- [ ] 19.3 Arbeidsflaten layout: skriv om `/collection/[id]` fra vertikal stack til Canvas + BlockShell. Last brukerens lagrede arrangement eller bruk defaults fra samlingens traits. Persist arrangement i bruker-edge metadata. Desktop: spatial canvas, mobil: stacked/tabs. Ref: `docs/retninger/arbeidsflaten.md` § "Tre lag".
- [ ] 19.4 Kontekst-header: header tilhører flaten, viser gjeldende node som nedtrekksmeny/kontekst-velger. Mest brukte noder øverst (frekvens/recency), søkbart. Verktøymeny for å instansiere nye paneler. Ref: `docs/retninger/arbeidsflaten.md` § "Kontekst-header".
- [ ] 19.5 Snarveier: paneler kan minimeres til kompakt ikon/fane. Dobbeltklikk → minimer/gjenopprett. Bevarer posisjon og størrelse. Ref: `docs/retninger/arbeidsflaten.md` § "Snarveier".
- [ ] 19.6 Personlig flate: brukerens standard arbeidsflate (node_kind: 'workspace'). Vises når ikke koblet til en annen node. Persistent layout.
## Fase 20: Universell overføring + panelrework
Ref: `docs/features/universell_overfoering.md`, `docs/retninger/arbeidsflaten.md` § "Kompatibilitetsmatrise"
- [ ] 20.1 message_placements tabell: PG-migrasjon + SpacetimeDB-modul med `place_message`, `remove_placement`, `move_on_canvas` reducers. Synk STDB→PG. Ref: `docs/features/universell_overfoering.md` § 2.
- [ ] 20.2 source_material edge-type: legg til i edge-skjema + maskinrommet-validering. Støtt kontekst-metadata (quoted, summarized, referenced) og excerpt-felt. Ref: `docs/retninger/arbeidsflaten.md` § "source_material-edge".
- [ ] 20.3 BlockReceiver interface: implementer `canReceive()`, `receive()`, `renderDropZone()` i alle trait-komponenter (Chat, Kanban, Kalender, Editor, Studio). Kompatibilitetsmatrise bestemmer godkjente drops. Ref: `docs/features/universell_overfoering.md` § 45.
- [ ] 20.4 Transfer service: `innholdstransfer`-modus (ny node + source_material edge) og `lettvekts-triage` (eksisterende node + ny edge/placement). Bestem modus fra verktøy-par. Shift-modifier for override. Ref: `docs/features/universell_overfoering.md` § 1, 3.
- [ ] 20.5 Panelrework — Chat: gjør ChatTrait til fullverdig BlockShell-panel med BlockReceiver, fullskjerm-toggle, og responsivt design innenfor begrenset container.
- [ ] 20.6 Panelrework — Kanban: gjør KanbanTrait til BlockShell-panel med drag-and-drop aksept fra andre paneler, fullskjerm, responsivt.
- [ ] 20.7 Panelrework — Kalender: gjør CalendarTrait til BlockShell-panel med drop-aksept for scheduling, fullskjerm, responsivt.
- [ ] 20.8 Panelrework — Editor/Artikkelverktøy: gjør artikkelverktøy til BlockShell-panel med source_material mottak fra andre paneler. Ref: `docs/features/artikkelverktoy.md`.
- [ ] 20.9 Panelrework — Studio: gjør StudioTrait til BlockShell-panel med drop-aksept for lydfiler, fullskjerm, responsivt.
## Fase 12: Herding ## Fase 12: Herding
- [ ] 12.1 Observerbarhet: strukturert logging, metrikker (request latency, queue depth, AI cost). - [ ] 12.1 Observerbarhet: strukturert logging, metrikker (request latency, queue depth, AI cost).