docs: 2026-05-04 changelog + diary
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
# 2026-05-04
|
||||
|
||||
## 01:26 — Auditoria FP de apps C++, estandarizacion de mds y extension del indexer a `<lang>/apps/`
|
||||
|
||||
Sesion para verificar que las 5 apps C++ del registry usan programacion funcional limpia y que las funciones que enlazan estan correctamente registradas para que apps nuevas puedan reusar todo. Tres hallazgos: 3 `.cpp` huerfanos sin `.md` (rompen reuso), drift entre `CMakeLists.txt` y `app.md` en las 2 apps con `app.md`, y 2 apps sin `app.md` (`chart_demo`, `shaders_lab`).
|
||||
|
||||
- Hecho: auditoria FP de los 5 mains C++. Resultado: `chart_demo`, `text_editor_smoke`, `registry_dashboard` limpios; `shaders_lab` borderline (16 globales, justificado por retained-mode); `graph_explorer` fuera de convencion (2471 lineas, 24 globales, 23 helpers en `main.cpp` — split parcial pero `main` sigue siendo saco). Helpers candidatos a extraer al registry documentados pero no extraidos en esta sesion.
|
||||
- Hecho: 3 `.md` nuevos para TUs huerfanos del registry — `cpp/functions/viz/{graph_labels_select,graph_viewport_selection,graph_types}.md`. Todos `purity: pure`. `graph_labels.md` y `graph_viewport.md` recortan su `signature` y declaran las nuevas entradas en `uses_functions`.
|
||||
- Hecho: `cpp/apps/chart_demo/app.md` creado (`chart_demo_cpp_viz`, 4 deps).
|
||||
- Hecho: `cpp/apps/shaders_lab/app.md` creado (`shaders_lab_cpp_gfx`, 19 deps). Antes habia entrada legacy en BD sin `.md` en disco.
|
||||
- Hecho: `projects/osint_graph/apps/graph_explorer/app.md` `uses_functions` sincronizado con `CMakeLists.txt`. De 15 a 23 deps. Añadidas: `graph_viewport_selection`, `graph_labels_select`, `graph_types`, `graph_spatial_hash`, `button`, `icon_button`, `badge`, `empty_state`.
|
||||
- Hecho: `projects/fn_monitoring/apps/registry_dashboard/app.md` `uses_functions` sincronizado. De 9 a 21 deps. Removido `fps_overlay` (vive en `fn_framework`).
|
||||
- Bug + fix: `./fn index` no recogia `chart_demo` ni `shaders_lab` aunque tenian `app.md` correcto. Raiz: `registry/indexer.go` solo escaneaba `apps/*/app.md` y `projects/*/apps/*/app.md`, NO `<lang>/apps/`. Fix: añadir loop sobre `<lang>/apps/*/app.md` reusando el mismo `entries` de `os.ReadDir(root)` que ya usa para `<lang>/functions/` y `<lang>/types/`. Diff ~12 lineas. `./fn index` pasa de 15 a 17 apps.
|
||||
- Bug + fix: `chart_demo/app.md` declaraba inicialmente `logger_cpp_core` en `uses_functions` aunque `CMakeLists.txt` no lo enlaza directo. Raiz: `logger.cpp` esta bundled en `fn_framework` static lib (junto con `tokens`, `app_menubar`, `fps_overlay`, etc.). Fix: removido del `app.md` con comentario explicito. Convencion documentada en `.claude/rules/uses_functions.md`.
|
||||
- Decision: ADR 0003 (`docs/adr/0003-orphan-tu-as-separate-function-entry.md`) — TUs adicionales de un parent function se registran como entrada propia con su `.md`. El parent declara la nueva entrada en `uses_functions`. Alternativas descartadas: `file_path` multi-path (rompe convencion), `notes:` con instruccion (frágil), macro con flags (acopla tests a ImGui).
|
||||
- Hecho: `.claude/rules/uses_functions.md` ampliada — lista explicita de funciones bundled en `fn_framework` (no se declaran en apps), comportamiento de TUs split (ADR 0003), apps como leaves del grafo.
|
||||
- Hecho: `.claude/CLAUDE.md` raiz añade `cpp/apps/` a la seccion Estructura como ubicacion valida tras la extension del indexer.
|
||||
- Hecho: `CHANGELOG.md` entrada 2026-05-04 con 3 nuevas funciones, 2 apps registradas, 2 apps sincronizadas, indexer extendido, ADR 0003.
|
||||
- Hecho: build `cpp` verde para los 4 targets (`chart_demo`, `shaders_lab`, `registry_dashboard`, `graph_explorer`). `./fn index` reporta 952 functions / 17 apps / 8 analyses.
|
||||
- Hecho: cross-check final `CMakeLists.txt` ↔ `app.md` con script Python — los 4 apps a 0 missing / 0 extra.
|
||||
- Pendiente: extraer helpers de `graph_explorer/main.cpp` al registry (algoritmos de layout `layout_no_collision`, `find_collision_free_slot`, `place_orphans_near_neighbors`; persistencia `panel_state_*`; utilities `detect_wsl_distro`, `resolve_registry_root`, `json_escape_str`).
|
||||
- Pendiente: `primitives_gallery` no tiene `app.md`. Decidir si registrarla (showcase visual estable) o dejarla como scaffolding/demo (etiqueta del rule `uses_functions.md`).
|
||||
- Pendiente: commit + push de los cambios (binary `fn` rebuilt no commiteado, .md y `registry/indexer.go` modificados).
|
||||
|
||||
Refs: ADR [0003](../adr/0003-orphan-tu-as-separate-function-entry.md), funciones `graph_labels_select_cpp_viz`, `graph_viewport_selection_cpp_viz`, `graph_types_cpp_viz`, apps `chart_demo_cpp_viz`, `shaders_lab_cpp_gfx`. Cambio en indexer: `registry/indexer.go` lineas ~87-122.
|
||||
Reference in New Issue
Block a user