From 61d21cc1ff3ead16d5c091cbe20855aa2bccc9ee Mon Sep 17 00:00:00 2001 From: Egutierrez Date: Tue, 19 May 2026 00:31:32 +0200 Subject: [PATCH] chore: auto-commit (4 archivos) - app.md - appicon.ico - playground/tables/data_table_logic.h - playground/tables/DEPRECATED.md Co-Authored-By: Claude Opus 4.7 (1M context) --- app.md | 11 +++++++ appicon.ico | Bin 10023 -> 12914 bytes playground/tables/DEPRECATED.md | 41 +++++++++++++++++++++++++++ playground/tables/data_table_logic.h | 27 ++---------------- 4 files changed, 55 insertions(+), 24 deletions(-) create mode 100644 playground/tables/DEPRECATED.md diff --git a/app.md b/app.md index a079fc0..876bd9f 100644 --- a/app.md +++ b/app.md @@ -2,6 +2,7 @@ name: primitives_gallery lang: cpp domain: gfx +version: 0.1.0 description: "Visual catalog de primitivas C++ UI del fn_registry. Demos por categoria (charts, controls, layout, gl_info). Soporta modo --capture para regresion visual." tags: [imgui, gallery, gfx, demo, capture] uses_functions: [] @@ -38,3 +39,13 @@ Renderiza cada demo offscreen y guarda PNGs en `/`. Permite gate visual - `auto_dockspace = false` — usa `fullscreen_window` que ocupa todo el viewport. - `init_gl_loader = true` — necesario para demos de OpenGL 4.3 core (compute, SSBOs). + + +## 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. diff --git a/appicon.ico b/appicon.ico index e9bdbfe1894a32ea0c3ad569186caf731807fda4..44161ec2177ea6372a9f85e838fb7315c24691cb 100644 GIT binary patch literal 12914 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 JzyD+KzW_Of0YLx& literal 10023 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 cn{)(L& visible_rows); // ---------------------------------------------------------------------------- -// Column statistics (no movido todavia al registry). +// Column statistics — desde v1.5.0, ColStats + HIST_BINS + compute_column_stats +// viven en core/compute_column_stats.h (transitivamente via data_table_types.h). +// El playground los reutiliza directo, sin redefinir. // ---------------------------------------------------------------------------- -struct ColStats { - int total = 0; - int empty_count = 0; - int unique_count = 0; - bool unique_capped = false; - bool numeric = false; - int numeric_count = 0; - double min = 0; - double max = 0; - double sum = 0; - double mean = 0; - double p25 = 0; - double p50 = 0; - double p75 = 0; - std::vector hist; - std::vector> top_categories; -}; - -constexpr int HIST_BINS = 24; - -ColStats compute_column_stats(const char* const* cells, int rows, int cols, - int col, int unique_cap = 100000, - const int* indices = nullptr, int n_indices = 0); } // namespace data_table