|
| 1 | +# Kanban Board View fuer Plan-Tasks |
| 2 | + |
| 3 | +## Summary |
| 4 | + |
| 5 | +Ergaenze im bestehenden Plans-Panel eine schnell umschaltbare Kanban-Ansicht fuer alle Plan-Tasks eines Workspaces. Die Datenquelle bleiben die Markdown-Plaene unter `.agents/plans/*.md`; `PLANS.md` ist weiter der geschuetzte Index und wird fuer Kanban-Tasks ignoriert. |
| 6 | + |
| 7 | +Die Kanban-Spalten sind fest an die vorhandenen Task-Statuswerte gebunden: pending, in progress, blocked, completed und cancelled. User koennen Spalten per Drag and Drop umsortieren und leere Spalten ausblenden oder wieder einblenden. Task-Karten koennen per Drag and Drop zwischen Spalten verschoben werden; das aktualisiert den Task-Status und schreibt den passenden Marker zurueck in die jeweilige Plan-Markdown-Datei. |
| 8 | + |
| 9 | +## Decisions |
| 10 | + |
| 11 | +- Es gibt keine frei definierbaren neuen Statuswerte. |
| 12 | +- "Boards anlegen/entfernen/bewegen" wird als Spaltenverwaltung interpretiert, nicht als mehrere unabhaengige Boards. |
| 13 | +- Kanban zeigt alle Tasks aus Nicht-Index-Plaenen im aktiven Workspace. |
| 14 | +- Freie Tasks ohne `planPath` bleiben ausserhalb dieser Kanban-View. |
| 15 | + |
| 16 | +## Implementation Notes |
| 17 | + |
| 18 | +### Backend |
| 19 | + |
| 20 | +- Neues fokussiertes Kanban/Plan-Task-Modul anlegen, statt `plans.rs` weiter wachsen zu lassen. |
| 21 | +- Workspace-Konfiguration unter `.blxcode/kanban/index.json` speichern: |
| 22 | + - `version` |
| 23 | + - `columnOrder: TaskStatus[]` |
| 24 | + - `hiddenColumns: TaskStatus[]` |
| 25 | + - `cardOrder: { cardKey: string, rank: u32 }[]` |
| 26 | +- Neue Tauri-Kommandos ergaenzen: |
| 27 | + - `kanban_settings_get(workspaceCwd)` |
| 28 | + - `kanban_settings_save(workspaceCwd, settings)` |
| 29 | + - `plan_task_list_all(workspaceCwd)` |
| 30 | + - `plan_task_create(workspaceCwd, planPath, status, title)` |
| 31 | + - `plan_task_update(workspaceCwd, planPath, planTaskId, patch)` |
| 32 | + - `plan_task_delete(workspaceCwd, planPath, planTaskId)` |
| 33 | +- Plan-Task-Mutationen muessen die vorhandenen Parser/Rewriter aus `plans.rs` nutzen, damit Markdown-Syntax und Statusmarker konsistent bleiben. |
| 34 | +- Wenn ein Kanban-Task bereits im `.blxcode/tasks`-Store gespiegelt ist, soll der Store best-effort mit aktualisiert werden. |
| 35 | + |
| 36 | +### Frontend |
| 37 | + |
| 38 | +- `PlansPanel` um einen View-Mode `Editor | Preview | Kanban` erweitern. |
| 39 | +- Kanban als eigenen Komponentenordner unter `src/workbench/plans_panel/kanban/` umsetzen, inklusive eigener CSS-Datei. |
| 40 | +- Typed IPC-Wrappers und Wire-Typen in `tauri_bridge.rs` ergaenzen. |
| 41 | +- Kanban-Toggle in die bestehende Plans-Toolbar setzen. |
| 42 | +- Board-Layout: |
| 43 | + - horizontale Status-Spalten mit Scroll bei schmalem Right-Panel |
| 44 | + - moderne, dichte Workspace-UI im bestehenden dunklen Theme |
| 45 | + - Statusfarben: blau aktiv, gelb blocked, gruen completed, rot/gedaempft cancelled |
| 46 | + - Karten zeigen Task-Titel, Plan-Badge/Pfad und Status-Akzent |
| 47 | +- Spaltenverwaltung: |
| 48 | + - Spalten-Drag-and-Drop persistiert `columnOrder` |
| 49 | + - Ausblenden ist nur fuer leere Spalten erlaubt |
| 50 | + - Wiedereinblenden erfolgt ueber ein kleines Columns-Menue |
| 51 | +- Task-Management: |
| 52 | + - Quick-add pro Spalte erstellt eine Task im Zielplan |
| 53 | + - Zielplan-Auswahl im Kanban-Header |
| 54 | + - Default-Zielplan: aktuell gewaehlter Nicht-Index-Plan, sonst `activePlanPath`, sonst erster Nicht-Index-Plan |
| 55 | + - Karten-Drop in andere Spalte aktualisiert den Status im Plan-Markdown |
| 56 | + - Karten-Drop innerhalb derselben Spalte aktualisiert nur die Kanban-Reihenfolge |
| 57 | + |
| 58 | +## Public Interfaces |
| 59 | + |
| 60 | +- Neue IPC-Typen: |
| 61 | + - `KanbanSettings` |
| 62 | + - `KanbanColumnStatus` |
| 63 | + - `PlanTaskCard` |
| 64 | + - `PlanTaskCreateInput` |
| 65 | + - `PlanTaskUpdatePatch` |
| 66 | +- Bestehende `TaskStatus`-Werte bleiben unveraendert. |
| 67 | +- Bestehende `plan_load`, `plan_sync_from_tasks` und `tasks_update` bleiben kompatibel. |
| 68 | +- I18n-Keys fuer Kanban-Toggle, Columns-Menue, Empty-State, Zielplan-Auswahl, Add/Delete und Drag-Fehler in allen Locale-Tabellen ergaenzen. |
| 69 | + |
| 70 | +## Tests |
| 71 | + |
| 72 | +- Backend: |
| 73 | + - Kanban-Settings werden initial mit Default-Spalten erzeugt und persistiert. |
| 74 | + - `plan_task_list_all` liest Tasks aus mehreren Nicht-Index-Plaenen und ignoriert `PLANS.md`. |
| 75 | + - Status-Update schreibt korrekte Marker: `[ ]`, `[>]`, `[!]`, `[x]`, `[-]`. |
| 76 | + - Task-Erstellung erzeugt stabile eindeutige `planTaskId`s und haengt an `## Tasks` an. |
| 77 | + - Task-Loeschung entfernt nur die passende Task-Zeile und erhaelt andere Markdown-Abschnitte. |
| 78 | + - Pfad-Sandboxing verhindert absolute Pfade, `..` und Nicht-Markdown-Ziele. |
| 79 | +- Frontend: |
| 80 | + - `cargo check -p blxcode-ui --target wasm32-unknown-unknown` |
| 81 | + - `cargo check -p blxcode` |
| 82 | + - Manuelle UI-Pruefung in Tauri/Trunk: Toggle Editor/Kanban, Karten-DnD, Spalten-DnD, Spalten aus-/einblenden, Quick-add. |
| 83 | + |
| 84 | +## Tasks |
| 85 | + |
| 86 | +- [ ] `backend-kanban-store` - Workspace Kanban settings store unter `.blxcode/kanban/index.json` implementieren. |
| 87 | +- [ ] `backend-plan-task-api` - Plan-Task IPC fuer Listen, Erstellen, Aktualisieren und Loeschen ergaenzen. |
| 88 | +- [ ] `backend-sync-tests` - Parser/Rewriter-, Sandbox- und Markdown-Writeback-Tests fuer Kanban-Mutationen abdecken. |
| 89 | +- [ ] `frontend-kanban-module` - Kanban-Komponentenordner, typed IPC-Wrappers und View-Mode im Plans-Panel ergaenzen. |
| 90 | +- [ ] `frontend-dnd-columns` - Spaltenreihenfolge, Ausblenden und Wiedereinblenden mit Drag and Drop und persistierter Config bauen. |
| 91 | +- [ ] `frontend-dnd-cards` - Karten zwischen Status-Spalten und innerhalb von Spalten verschiebbar machen. |
| 92 | +- [ ] `frontend-task-actions` - Quick-add, Zielplan-Auswahl und Delete/Edit-Aktionen fuer Kanban-Karten anbinden. |
| 93 | +- [ ] `i18n-docs` - I18n-Keys und User/Developer-Dokumentation zur Kanban-View ergaenzen. |
| 94 | +- [ ] `verification` - Cargo-Checks und manuelle UI-Pruefung durchfuehren. |
0 commit comments