ec81bf360d
- docs/adr/0002-apps-analyses-as-dataforge-master.md: decision arquitectural con contexto, alternativas descartadas y cambios concretos del 2026-04-28. - CHANGELOG.md: entrada 2026-04-28 con Added/Changed/Fixed. - .claude/CLAUDE.md: nota sobre /full-git-push y dataforge/<name>+master. - .claude/rules/apps_tbd.md: tronco unico master + init.defaultBranch. - cpp/functions/core/app_menubar.md: notas del submenu Settings con About. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
7.0 KiB
7.0 KiB
Changelog
Todos los cambios notables de fn_registry se documentan aquí.
Formato basado en Keep a Changelog. Al no haber releases semver formales, las entradas se ordenan por fecha.
Para contexto detallado del trabajo diario ver docs/diary/. Para decisiones arquitecturales ver docs/adr/.
[Unreleased]
2026-04-28
Added
cpp/functions/core/app_about(app_about_cpp_core) — ventana flotante About conabout_window_set_info(project, version, description),about_window_menu_item("About...")yabout_window_render(). Render automatico viafn::run_app(cableado encpp/framework/app_base.cpp).bash/functions/infra/ensure_repo_synced(ensure_repo_synced_bash_infra) — pipeline idempotente que componegitea_create_repo+gitea_push_directory: crea repo Gitea si falta, inicializa.gitlocal si falta, commitea cambios pendientes y pushea. Defaults: ownerdataforge, branchmaster.analysis.mdpara 6 analyses que estaban en disco pero sin indexar:agent_coding_eval,estudio_embeddings,estudio_mercados,ontology_graph,pruebas_jupyter,retrieving_graphs. Ahora./fn indexreporta 8 analyses (antes 2).- Repos
dataforge/<name>creados en Gitea para apps y analyses que no estaban subidos:agents_and_robots,element_matrix_chat,deploy_server,shaders_lab,voice_guide,agent_coding_eval,ontology_graph,turismo_spain. Cada uno con.gitignoreapropiado para excluir binarios,.venv/,node_modules/,.jupyter*,operations.db*.
Changed
cpp/functions/core/app_menubar: el item top-levelSettings...pasa a ser unBeginMenu("Settings")con dos subitems:Settings...(ventana deapp_settings) yAbout...(nuevo, ventana deapp_about). Las apps que usanfn_ui::app_menubar(nullptr, 0, nullptr)heredan el cambio sin tocar nada.projects/fn_monitoring/apps/registry_dashboard/main.cpp: cableafn_ui::about_window_set_info("fn_registry Dashboard", "0.2.0", "...")antes defn::run_app. TablaAppsgana columnaGitcon valoresremote(repo_url poblado),local(.git/ presente) o-.data.h/data.cpp/data_http.cppdel dashboard:AppRowextendido conrepo_urlydir_path.- 10 repos migrados de branch
mainamasterpara unificar convencion:apps/{docker_tui,fuzzygraph,metabase_registry,pipeline_launcher,rapid_dashboards,script_navegador},analysis/{estudio_embeddings,estudio_mercados,pruebas_jupyter,retrieving_graphs}. Default branch en Gitea actualizado via API (PATCH /repos/{owner}/{repo}con{"default_branch":"master"}), branchmainremota borrada. git config --global init.defaultBranch masterpara que los proximosgit initsean consistentes./full-git-push: descubre apps/analyses sin.gity ofrece inicializarlos conensure_repo_syncedautomaticamente. Excluyesubrepos/para evitar duplicacion (mirrors upstream)./full-git-pull: trasfn sync, segunda pasada que clona losdataforge/<name>registrados enapps/analysisque no existan localmente — soluciona el "no pude recuperar la app en el otro PC".bash/functions/infra/ensure_repo_synced.sh: localiza dependencias viaFN_REGISTRY_INFRA_DIRoFN_REGISTRY_ROOT, robusto a sourcing desde zsh/bash.
Fixed
projects/fn_monitoring/apps/sqlite_api/handlers.go|main.go|handlers_test.go+ nuevoshandlers_mutations.goyhandlers_projects.go: cableados endpointsPOST /add_app|add_analysis|add_vault|reindexyGET /projectspara que el dashboard pueda crear artefactos y navegar projects desde la actions bar (estado pendiente de varios dias en uncommitted, ahora versionado endataforge/sqlite_api).- Bug operativo en
sqlite_api(Windows):SO_RCVTIMEOse pasaba comostruct timevalcuando Windows esperaDWORD ms→ timeout efectivo de 5 ms. Ya documentado enapp.mddel dashboard.
2026-04-24
Added
- 6 funciones
bash/infra/systemd_local_*(install_unit, enable, start, restart, status, uninstall) para gestionar servicios systemd del sistema desde el registry (complementa las versiones remotas SSH ya existentes). - Pipeline
install_systemd_service_bash_pipelinesque compone las anteriores: genera unit file + install + enable + start + status. - Servicio systemd
sqlite_api.serviceinstalado y habilitado en aurgi-pc — arranque automático al iniciar WSL en127.0.0.1:8484. projects/fn_monitoring/launcher.sh— launcher del dashboard (arranca API si no está + lanza ventana + cleanup).- Regla
.claude/rules/kiss.md— filosofía KISS para proyectos y apps. - Documentación ADR en
docs/adr/con plantilla y ADR 0001 (experimento GitButler). - Diario en
docs/diary/+ slash command/entrada_diariopara añadir entradas. CHANGELOG.md(este archivo).- Submódulo
cpp/vendor/glfwre-registrado con path limpio (antes heredado con path absoluto/home/lucas/...). - aurgi-pc registrado en el server centralizado (
registry.organic-machine.com) con 18 pc_locations.
Changed
registry.dbahora está gitignorada. Es regenerable confn index+ completable confn sync. Evita conflictos entre ramas y PCs.sqlite_apiahora se distribuye como binario compilado (projects/fn_monitoring/apps/sqlite_api/sqlite_api) en lugar dego runal vuelo.
Fixed
http_client.cppdel dashboard: añadido#include <cstdint>requerido por mingw-w64 para cross-compile Windows (g++ Linux lo incluía transitivamente).registry_dashboard.exe(Windows) ya no abre ventana de consola al lanzarse — enlazado como GUI app (WIN32_EXECUTABLE TRUE/-mwindows).
Added (design system C++)
cpp/functions/core/tokens— design tokens para dashboards ImGui (colors, spacing, radius, font_size) inspirados en@fn_library(Mantine v9). Paleta dark + indigo primary.apply_dark_theme()aplica los tokens alImGuiStyleglobal.cpp/functions/core/badge— etiqueta inline con 6 variantes (Default/Success/Warning/Error/Info/Outline). Equivalente a<Badge>de@fn_library.cpp/functions/core/empty_state— placeholder centrado para tablas/listas vacías.cpp/functions/core/page_header— header de página con título/subtítulo + hueco para acciones + separator.registry_dashboardmigrado a los nuevos componentes:page_header_begin/enden el header,empty_stateen las 4 tablas cuando están vacías,apply_dark_theme()al primer frame. Sin hardcode de colores disperso.systemd_local_{enable,start,restart}: stdout desystemctlredirigido a stderr para no contaminar el JSON capturado por el pipeline..gitmodules: entry fantasmacpp/vendor/glfwcon path absoluto/home/lucas/...que bloqueabagit submodule statusy el cross-compile Windows.
Removed
- Integración de GitButler de Claude Code — binario
~/.local/bin/but, plugingitbutler-tools, skill.claude/skills/gitbutler/, hooks ensettings.json, ramasgitbutler/*+e-branch-*, estado interno.git/gitbutler/. Ver ADR 0001 para motivos.