From 4c49c1dac2f5d9f43c60f7313bf29a44e8c048bb Mon Sep 17 00:00:00 2001 From: Egutierrez Date: Tue, 19 May 2026 00:31:31 +0200 Subject: [PATCH] chore: auto-commit (3 archivos) - app.md - appicon.ico - data_factory.db-shm Co-Authored-By: Claude Opus 4.7 (1M context) --- app.md | 12 +++++++++++- appicon.ico | Bin 9348 -> 10661 bytes data_factory.db-shm | Bin 32768 -> 32768 bytes 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app.md b/app.md index 4592f0f..a4ad1aa 100644 --- a/app.md +++ b/app.md @@ -2,12 +2,12 @@ name: data_factory lang: cpp domain: tools +version: 0.1.0 description: "Factorio-style data pipeline factory: extractors, transformers, databases, sinks. Live updates via WS pubsub." tags: [imgui, dashboard, data-pipeline, factory, http, websocket] uses_functions: - empty_state_cpp_core - badge_cpp_core - - data_table_cpp_viz uses_types: [] uses_modules: [data_table_cpp] framework: "imgui" @@ -75,3 +75,13 @@ Apunta a `http://127.0.0.1:8484` (sqlite_api). Endpoints consumidos: - `GET /api/datafactory/databases` - `GET /api/functions/{id}` (registry metadata para FnInfo) - `GET /api/ws/datafactory` (snapshot + delta runs cada 250ms) + + +## 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 898e727fad5d0c08d863e31214a9a997a7c22373..bbb6c39d54b83d70095abd64f4c564a9d1901434 100644 GIT binary patch literal 10661 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 literal 9348 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 a#!J`h;Ioo+qS(N$x)k!@;<^9#lKekkwNt|Y diff --git a/data_factory.db-shm b/data_factory.db-shm index d6e924c6384d82b5c5ee4d4833d043fbfcbdd8fe..ff65dd6fe62f1c22424398c0ba53a100af5b69a9 100644 GIT binary patch delta 57 ucmZo@U}|V!;*@x#%K!!wIpqbXTG&m!|Ia}XS&$tnI5A$4v2SBzeLVoU+Yvzk delta 57 vcmZo@U}|V!;*@x#%K!p`6FKDti!AM?x-d8jA`7xZ1t-QUGMa2`tgi