chore: snapshot WIP previo + flow 0008 + 7 sub-issues (0112-0119)

Snapshot de WIP acumulado de sesiones previas antes de merge wave 1
del flow 0008 (kanban_cpp + agent_runner_api + DoD schema).

Incluye:
- dev/flows/0008-kanban-cpp-and-agent-workflows.md
- dev/issues/0112-0119*.md (7 sub-issues)
- WIP previo en cmd/fn/doctor.go, registry/*, modules/, cpp/, etc.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-18 18:17:08 +02:00
parent ddb5366884
commit b9716a7cd6
119 changed files with 14929 additions and 3084 deletions
+79
View File
@@ -0,0 +1,79 @@
#pragma once
// data_table_viz_panels — paneles de visualizacion lateral de la tabla TQL.
// Sub-funcion extraida de modules/data_table/data_table.cpp (issue 0107c).
//
// Responsabilidad:
// - draw_table_toggle: boton de toggle entre modo tabla y ultimo modo viz.
// - draw_extra_panel: render de un panel de viz adicional (VizPanel) con su
// toolbar mini (titulo, pin/close, selector de chart).
// - draw_viz_config_popup: popup de configuracion de visualizacion (columnas
// x/y, modo, config del grafico activo).
// - draw_viz_selector: selector de modo de viz (iconos/grid de ViewMode).
// - maybe_recompute_stats: recalcula las estadisticas de columna si cambiaron
// los datos visibles (para el stats overlay en headers y config popup).
//
// Rangos del fuente original:
// - draw_table_toggle : lineas 1527-1552
// - draw_extra_panel : lineas 1553-1638
// - draw_viz_config_popup : lineas 1640-1815
// - draw_viz_selector : lineas 1816-1892
// - maybe_recompute_stats : lineas 2474-2502
//
// Dependencias: data_table_types.h, viz_render.h (viz::render), imgui.h.
#include "core/data_table_types.h"
#include "imgui.h"
#include <vector>
#include <string>
namespace data_table {
// ---------------------------------------------------------------------------
// draw_table_toggle
// Boton que cambia display entre ViewMode::Table y el ultimo modo viz no-tabla.
// `id_suffix` diferencia multiples toggles en la misma ventana.
// `st_ptr` si no null se usa para actualizar `st.display` directamente;
// si null usa display/last_non_table pasados por ref.
// ---------------------------------------------------------------------------
void draw_table_toggle(ViewMode& display, ViewMode& last_non_table,
const char* id_suffix,
State* st_ptr = nullptr);
// ---------------------------------------------------------------------------
// draw_extra_panel
// Dibuja un VizPanel adicional (child window con toolbar mini + chart).
// Retorna true si el usuario cerro el panel (el caller debe borrar el entry).
// ---------------------------------------------------------------------------
bool draw_extra_panel(State& st, VizPanel& p, int idx,
const StageOutput& so,
const std::vector<ColumnSpec>* col_specs);
// ---------------------------------------------------------------------------
// draw_viz_config_popup
// Popup de configuracion de visualizacion: columnas x/y, modo de chart,
// colores, histogramas bins, pie radius, etc. Mutates st.viz_config y
// st.extra_panels.
// ---------------------------------------------------------------------------
void draw_viz_config_popup(State& st);
// ---------------------------------------------------------------------------
// draw_viz_selector
// Selector de modo de visualizacion: grid de iconos con ViewMode disponibles.
// Se abre via boton "Ask AI" o desde draw_viz_config_popup.
// ---------------------------------------------------------------------------
void draw_viz_selector(State& st);
// ---------------------------------------------------------------------------
// maybe_recompute_stats
// Recalcula st.stats_cache si el snapshot de datos ha cambiado
// (se detecta por hash de visible_rows + filtros). Solo recalcula si
// st.stats_mode == true.
// ---------------------------------------------------------------------------
void maybe_recompute_stats(State& st,
const char* const* cells,
int row_count, int orig_cols, int eff_cols,
const std::vector<Filter>& active_filters,
const std::vector<int>& visible_rows,
const std::vector<int>& src_for_eff);
} // namespace data_table