From 7eeee34c7439e8afd239bcd3acce8fc0ea218062 Mon Sep 17 00:00:00 2001 From: vegard Date: Wed, 18 Mar 2026 01:28:24 +0000 Subject: [PATCH] =?UTF-8?q?Legg=20til=20fase=2019=20(spatial=20canvas)=20o?= =?UTF-8?q?g=2020=20(universell=20overf=C3=B8ring=20+=20panelrework)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- scripts/run-next-task.sh | 7 +++++-- tasks.md | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/scripts/run-next-task.sh b/scripts/run-next-task.sh index 7714db8..5aa6325 100755 --- a/scripts/run-next-task.sh +++ b/scripts/run-next-task.sh @@ -29,19 +29,22 @@ declare -A PHASE_DEPS=( [9]="3" [10]="2" [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" [14]="6 13" [15]="3 10" [16]="11 13" [17]="" + [18]="10 13" + [19]="3 13" + [20]="19" ) # --- Finn blokkerte faser --- # En fase er blokkert hvis den har en [?], [!] eller [~] oppgave blocked_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 phases="$phases $phase" fi diff --git a/tasks.md b/tasks.md index a497027..9b4b6df 100644 --- a/tasks.md +++ b/tasks.md @@ -38,6 +38,8 @@ Fase 3 + 10 → Fase 15 (adminpanel) Fase 11 + 13 → Fase 16 (lydmixer) Fase 17 (lydstudio-utbedring) — ingen avhengigheter, kan kjøres parallelt 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) ``` @@ -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.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` § 4–5. +- [ ] 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 - [ ] 12.1 Observerbarhet: strukturert logging, metrikker (request latency, queue depth, AI cost).