chore: auto-commit (23 archivos)

- CMakeLists.txt
- app.md
- appicon.ico
- main.cpp
- perf_tests.cpp
- perf_tests.h
- qa_panel.cpp
- qa_panel.h
- qa_state.cpp
- qa_state.h
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-19 00:31:32 +02:00
commit b15106fc09
23 changed files with 2536 additions and 0 deletions
+86
View File
@@ -0,0 +1,86 @@
---
name: tables_qa
lang: cpp
domain: tools
version: 0.1.0
description: "Testbed agresivo del modulo data_table — multi-tabla, menu QA toggleable, inyector eventos, counters live, version selector"
tags: [imgui, dashboard, qa, testing, data-table, regression]
uses_functions: []
uses_modules:
- data_table_cpp
uses_types: []
framework: "imgui"
entry_point: "main.cpp"
dir_path: "apps/tables_qa"
repo_url: "https://gitea.organic-machine.com/dataforge/tables_qa"
icon:
phosphor: "test-tube"
accent: "#f59e0b"
---
# tables_qa
Testbed agresivo del modulo `data_table_cpp` (v2.0.0+). Sustituye al `tables_playground` legacy (issue 0108).
Provee un panel de control QA con toggles, inyector de eventos, counters live y version selector para ejercer todas las capacidades del modulo en runtime.
## Capacidades cubiertas
Cada tab demuestra UNA capacidad del modulo. Toda capacidad listada en `docs/MODULES_API.md::Capability matrix consolidada` tiene su tab.
| Tab | Capacidad |
|---|---|
| `basic` | Text default + sort + filter chips |
| `renderers` | 1 columna por cada CellRenderer (Badge, Progress, Duration, Icon, Button, Dots, CategoricalChip, ColorScale) |
| `buttons` | Click events: Retry, Cancel, Inspect (consumido en `events_out`) |
| `color_rules` | ColorScale numerico + CategoricalChip configurado |
| `dots` | Status timeline sparkline |
| `joins` | 2 tablas + JoinStrategy Left/Inner/Right/Full toggleable |
| `tql` | Pipeline TQL completo + Ask AI panel |
| `drill` | Drill-down stages con breadcrumb |
| `events` | Inyector de eventos via worker thread (RowDoubleClick, RowRightClick, ButtonClick) |
| `compat` | Version selector + side-by-side con downgrade |
## Panel QA superior
Barra de control con:
- Toggles por feature (15+ checkboxes que mutan ColumnSpec en runtime).
- Inyector de eventos (4 botones que disparan TableEvents via worker).
- Counters live (`data_table::internal::*` — pendiente implementar en modulo).
- Version dropdown (2.0.0 / 1.5.0 compat / 1.4.0 compat).
- Boton "Run --self-test" (suite headless).
- Boton "Export golden" (regenera PNGs baseline).
## Build
```bash
cd cpp && cmake --build build --target tables_qa -j
```
## Run
```bash
./cpp/build/apps/tables_qa/tables_qa
```
## Headless self-test
```bash
./cpp/build/apps/tables_qa/tables_qa --self-test
# Exit 0 = todas las capacidades verde
# Exit 1 = algun TableEvent no se emite o renderer crash
```
## Relacion con `tables_playground` (deprecado)
`apps/primitives_gallery/playground/tables/` queda como **legacy archive** post-0108. Su `self_test.cpp` (603 checks contra logica legacy) NO se reemplaza directo — los tests aplicables a logica pura del registry ya viven en `cpp/tests/` (Catch2). Los tests aplicables a `data_table::render` viven aqui en `tables_qa --self-test`.
## Capability growth log
Una linea por bump SemVer. Bump-type segun `.claude/commands/version.md`:
- `major`: breaking observable (CLI args, schema BBDD propia, formato wire).
- `minor`: feature aditiva (nuevo panel, endpoint, opcion).
- `patch`: bugfix sin cambio observable.
- v0.1.0 (2026-05-18) — baseline.