Files
fn_registry/docs/diary/2026-05-04.md
T
egutierrez f5f14ccd53 docs: 2026-05-04 changelog + diary
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 11:52:56 +02:00

4.5 KiB

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.txtapp.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, 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.