Files
kanban_cpp/app.md
T

79 lines
2.8 KiB
Markdown

---
name: kanban_cpp
lang: cpp
domain: tools
version: 0.1.0
description: "Clon C++ ImGui de kanban_web — tablero pensado para conducir agentes LLM con DoD evidence"
tags: [kanban, cpp, agents, imgui]
icon:
phosphor: "columns"
accent: "#a855f7"
uses_functions:
- http_request_cpp_core
- sse_client_cpp_core
- dod_evidence_panel_cpp_viz
- agent_runs_timeline_cpp_viz
- kpi_card_cpp_viz
- sparkline_cpp_viz
uses_types: []
framework: "imgui"
entry_point: "main.cpp"
dir_path: "apps/kanban_cpp"
repo_url: "https://gitea.organic-machine.com/dataforge/kanban_cpp"
e2e_checks:
- id: build
cmd: "cmake --build cpp/build/linux --target kanban_cpp -j"
timeout_s: 300
- id: self_test
cmd: "./cpp/build/linux/apps/kanban_cpp/kanban_cpp --self-test"
timeout_s: 30
- id: backend_build
cmd: "cd apps/kanban_cpp/backend && CGO_ENABLED=1 go build -tags fts5 -o kanban_cpp_backend ."
timeout_s: 180
---
# kanban_cpp
Clon C++ ImGui de kanban_web — tablero pensado para conducir agentes LLM con DoD evidence.
Backend Go propio en `backend/` (puerto 8403 por defecto) con `operations.db` independiente del kanban_web original. NO sincroniza datos con `apps/kanban` a proposito.
## Panels
| Panel | Funcion del registry | Notas |
|---|---|---|
| Board | inline | columnas + cards, drag con ImGui::IsItemActive |
| Calendar | inline | vista mensual estatica (MVP) |
| Dashboard | `kpi_card_cpp_viz` + `sparkline_cpp_viz` | KPIs (total, by_status, by_priority) |
| Agent runs | `agent_runs_timeline_cpp_viz` | populated por HTTP poll a agent_runner_api:8486 |
| Worktrees | inline | `git worktree list --porcelain` via popen |
| DoD inspector | `dod_evidence_panel_cpp_viz` | inspecciona DoD items + evidencias |
## Build
```bash
# Backend
cd apps/kanban_cpp/backend && CGO_ENABLED=1 go build -tags fts5 -o kanban_cpp_backend .
./kanban_cpp_backend --port 8403 --db operations.db
# Frontend ImGui
cd cpp && cmake -B build/linux && cmake --build build/linux --target kanban_cpp -j
./build/linux/apps/kanban_cpp/kanban_cpp
```
## Cuando usarla
Cuando quieras un kanban dedicado a conducir agentes LLM (arrastrar card a `Doing (agent)` → arranca workflow) sin abrir browser. Para uso humano puro, `kanban_web` (Mantine) sigue siendo mejor.
## Gotchas
- 2 services + 2 sqlite locks: kanban_web :8095/8401 y kanban_cpp :8403 NUNCA comparten `operations.db`.
- `agent_runner_api` (puerto 8486) puede no estar corriendo — el panel `Agent runs` muestra `connection_status="disconnected"` en ese caso. No bloquea el resto de paneles.
- Calendar es MVP estatico — TODO: integrarlo con cards filtradas por `due_date`.
- Dashboard usa datos sinteticos hasta wire-up del backend stats endpoint (TODO).
- Auth: cada app tiene sus propios usuarios. NO compartir cookies entre kanban_web y kanban_cpp.
## Capability growth log
(v0.1.0 baseline — sin crecimiento aun)