a3f75d61ec
Reorganizacion de dev/issues en subcarpetas (completed/, cpp/, gamedev/, kanban/, trading/, imagegen/, matrix/) y cambios acumulados en cmd/fn/pyrunner, .claude/commands y settings. Trabajo de otro LLM/sesion, commiteado a peticion del usuario para desbloquear el working tree. Excluido logs/ardour_mcp_server.log (ruido).
3.1 KiB
3.1 KiB
id, title, status, type, domain, scope, priority, depends, blocks, related, created, updated, tags, flow
| id | title | status | type | domain | scope | priority | depends | blocks | related | created | updated | tags | flow | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0130c | Frontend C++ ImGui kanban_cpp v2: board + flows + filtros + detalle | pendiente | app |
|
app-scoped | alta |
|
|
2026-05-22 | 2026-05-22 |
|
0130 |
0130c — Frontend C++ ImGui kanban_cpp v2
Status: pendiente
Por que
UI nativa sobre el backend 0130b. Aprovecha el framework fn::run_app (menubar, layouts, settings, about, log) y los componentes del registry (data_table, kpi_card, http_request, sse_client).
Estructura
apps/kanban_cpp/
app.md
appicon.ico
CMakeLists.txt
main.cpp # fn::run_app + cfg.panels
data.h / data.cpp # http client + state global (issues, flows, filters)
panel_board.cpp # 4 columnas + drag-drop
panel_flows.cpp # tabla via data_table_cpp_viz
panel_filters.cpp # Aside con multi-select
panel_detail.cpp # form editable del issue seleccionado
panels.h
Trio obligatorio (app.md)
description: "Kanban C++ v2 para gestionar dev/issues y dev/flows del registry"
icon:
phosphor: "kanban"
accent: "#a855f7"
Paneles
- Board (
TI_KANBAN " Board") — 4 columnas (pendiente / in-progress / bloqueado / completado). Cada card: id + title (trunc 60) + priority badge + first domain chip. Drag-drop conImGui::BeginDragDropSource/Target-> PATCH status. - Flows (
TI_FLOW " Flows") —data_table_cpp_vizcon columnas id/title/status/kind. Click fila → carga detail. - Filters (
TI_FUNNEL " Filters") — AppShell.Aside-equivalente (panel lateral fijo). Multi-select por domain, scope, priority, tags. Estado local; rebuild request query. - Detail (
TI_INFO " Detail") — modal/panel lateral con form: status (combo), priority (combo), scope (combo), tags (chips editables), depends/blocks (listas), body (read-only multiline).
HTTP client (data.cpp)
fetch_issues(filters)→ GET con query string → parse JSON → vector.fetch_flows()→ similar.patch_issue(id, partial)→ PATCH JSON → recibe issue actualizado.subscribe_sse()thread aparte → push events a queue mutex → consumir en main loop → re-fetch afectados.
Usa http_request_cpp_core + sse_client_cpp_core. JSON via nlohmann/json (ya en cpp/vendor o sacar al header-only).
DoD
cmake --build cpp/build/linux --target kanban_cpp -jverde../cpp/build/linux/apps/kanban_cpp/kanban_cpp --self-testexit 0:- inicializa contexto ImGui sin display.
- parsea respuesta JSON sintetica.
- no toca red salvo si
--backend http://...se pasa.
- e2e_checks en
app.md: build + self_test + backend_health (corre backend en background) + smoke (drag-drop reescribe MD). - Captura screenshot board con 4 columnas pobladas → guardar en
dod_evidence/board_screenshot.png.
Anti-scope
- Sin grafo de dependencias (epic 0130 lo describe como anti-scope v1).
- Sin crear issues nuevos (solo editar existentes).
- Sin edicion de body MD (solo frontmatter).
- Sin syntax highlighting markdown.