feat: initial scaffold kanban_cpp v0.1.0

C++ ImGui kanban for steering LLM agents. Six panels (Board, Calendar,
Dashboard, Agent runs, Worktrees, DoD inspector) wired to registry
functions http_request, kpi_card, sparkline, agent_runs_timeline,
dod_evidence_panel. Backend Go on :8403 (independent operations.db from
kanban_web).
This commit is contained in:
Egutierrez
2026-05-18 18:46:09 +02:00
commit a76ec74338
42 changed files with 5922 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
// panel_dod.cpp — DoD evidence inspector wrapping the registry panel.
//
// MVP: uses a synthetic in-memory DodPanelState so the panel renders without
// the agent_runner_api wired up. When that API exposes /api/dod_items +
// /api/dod_evidences endpoints, this will fetch them like panel_agent_runs.
#include "panels.h"
#include "core/icons_tabler.h"
#include "viz/dod_evidence_panel.h"
#include <imgui.h>
namespace kanban_cpp {
namespace {
fn_viz::DodPanelState& state_singleton() {
static fn_viz::DodPanelState st;
static bool inited = false;
if (!inited) {
st.run_id = "(none)";
// Empty until wired to backend. Helpers count zeros gracefully.
inited = true;
}
return st;
}
} // namespace
void draw_dod(AppState& /*s*/, bool* p_open) {
if (!ImGui::Begin(TI_LIST_CHECK " DoD inspector", p_open)) {
ImGui::End();
return;
}
auto& st = state_singleton();
ImGui::TextDisabled("run_id: %s (TODO: wire to agent_runner_api)", st.run_id.c_str());
ImGui::Separator();
fn_viz::render_dod_evidence_panel(st);
ImGui::End();
}
} // namespace kanban_cpp