# 2026-04-28

## 22:42 — Settings submenu + estandarizacion dataforge/master + 6 analyses indexados

Sesion larga de housekeeping del ecosistema de repos sub-fn_registry y mejora del menubar C++ con modulo About reusable.

- Hecho: nuevo modulo `app_about_cpp_core` (`cpp/functions/core/app_about.{h,cpp,md}`) con `about_window_set_info(project, version, description)` + render automatico via `fn::run_app`.
- Hecho: `app_menubar_cpp_core` ahora expone `BeginMenu("Settings")` con dos subitems: `Settings...` y `About...`. Cambio retro-compatible para todas las apps que ya invocaban `app_menubar(nullptr, 0, nullptr)`.
- Hecho: `registry_dashboard` cablea `about_window_set_info("fn_registry Dashboard", "0.2.0", ...)` y muestra columna `Git` en la tabla Apps (`remote`/`local`/`-`). `AppRow` extendido con `repo_url` + `dir_path`.
- Hecho: nuevo pipeline `ensure_repo_synced_bash_infra` (`bash/functions/infra/ensure_repo_synced.{sh,md}`) — compone `gitea_create_repo` + `gitea_push_directory`, idempotente, defaults `dataforge`/`master`.
- Hecho: 2 repos movidos de `egutierrez/` a `dataforge/` (`agents_and_robots`, `element_matrix_chat`); 6 creados desde cero (`deploy_server`, `shaders_lab`, `voice_guide`, `agent_coding_eval`, `ontology_graph`, `turismo_spain`); 10 migrados `main`→`master` (apps: `docker_tui`, `fuzzygraph`, `metabase_registry`, `pipeline_launcher`, `rapid_dashboards`, `script_navegador`; analyses: `estudio_embeddings`, `estudio_mercados`, `pruebas_jupyter`, `retrieving_graphs`).
- Hecho: `git config --global init.defaultBranch master`. Default branch en Gitea actualizado via `PATCH /api/v1/repos/{owner}/{repo}` con `{"default_branch":"master"}`, rama `main` remota borrada.
- Hecho: 6 `analysis.md` creados (`agent_coding_eval`, `estudio_embeddings`, `estudio_mercados`, `ontology_graph`, `pruebas_jupyter`, `retrieving_graphs`). `./fn index` pasa de 2 a 8 analyses.
- Hecho: `/full-git-push` descubre apps/analyses sin `.git` y los inicializa via `ensure_repo_synced`. `/full-git-pull` tras `fn sync` clona los `dataforge/<name>` registrados que no existan localmente.
- Hecho: ADR 0002 (`docs/adr/0002-apps-analyses-as-dataforge-master.md`) — convencion `dataforge/<basename>` + branch `master` para apps/analyses; `vaults/` y `subrepos/` exentos.
- Hecho: CHANGELOG entrada 2026-04-28; regla `apps_tbd.md` actualizada con tronco unico master; `.claude/CLAUDE.md` raiz menciona `/full-git-push` auto-init.
- Hecho: 4 commits + push (root `836ff025`, registry_dashboard `a728e2b`, registry_dashboard previo `a466fff`); 3 `fn sync` (sent 58 / server updated 34 / received 94).
- Pendiente: definir mecanismo de sincronizacion para `vaults/` (datos puros — TBD: object storage, rsync, restic).
- Pendiente: aplicar mismo patron de columna Git al resto de tablas del dashboard (Analysis, Functions) si se quiere visibilidad uniforme.

Refs: ADR [0002](../adr/0002-apps-analyses-as-dataforge-master.md), `app_about_cpp_core`, `ensure_repo_synced_bash_infra`, commits `836ff025` (root), `a728e2b` (dashboard), `edcf029c` (root features), `a466fff` (dashboard rebase).
