Files
egutierrez b9716a7cd6 chore: snapshot WIP previo + flow 0008 + 7 sub-issues (0112-0119)
Snapshot de WIP acumulado de sesiones previas antes de merge wave 1
del flow 0008 (kanban_cpp + agent_runner_api + DoD schema).

Incluye:
- dev/flows/0008-kanban-cpp-and-agent-workflows.md
- dev/issues/0112-0119*.md (7 sub-issues)
- WIP previo en cmd/fn/doctor.go, registry/*, modules/, cpp/, etc.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:17:08 +02:00

4.5 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, params, output
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path params output
refresh_app_hub pipeline bash pipelines 1.1.0 impure refresh_app_hub([--hub-dir <path>] [--size <px>] [--no-restart] [--style <s>]) -> void Pipeline orquestador que regenera los iconos PNG y el manifest TSV del App Hub desde registry.db y reinicia el proceso app_hub_launcher en Windows. Cubre el ciclo completo: export icons → export manifest → taskkill → relaunch. Default style=white_duotone (duotone Phosphor blanco sobre bg accent). Override con --style fill_white | adaptive_duotone.
hub
launcher
icons
manifest
cpp
windows
wsl
cpp-windows
deploy
export_hub_icons_py_infra
export_hub_manifest_py_infra
is_cpp_app_running_windows_bash_infra
launch_cpp_app_windows_bash_infra
false error_go_core
false
bash/functions/pipelines/refresh_app_hub.sh
name desc
--hub-dir Directorio local_files del hub en Windows (accesible desde WSL). Default: /mnt/c/Users/lucas/Desktop/apps/app_hub_launcher/local_files. Los PNGs se escriben en <hub-dir>/icons/ y el manifest en <hub-dir>/hub_manifest.tsv.
name desc
--size Lado en pixels de cada PNG de icono. Default 64. Pasar 128 para pantallas HiDPI.
name desc
--no-restart Si está presente, solo regenera icons + manifest sin tocar el proceso del hub (pasos 3 y 4 se marcan como skipped). Útil para actualizar los archivos mientras el hub está cerrado manualmente.
Imprime resumen de 4 pasos (icons exported, manifest rows, hub killed/skipped, hub launched) y finaliza con 'OK: app_hub refreshed'. Exit 1 si falla cualquier paso, con mensaje indicando cuál.

Ejemplo

# Caso habitual: regenerar todo y reiniciar el hub
./fn run refresh_app_hub

# Solo regenerar iconos y manifest, sin tocar el proceso
./fn run refresh_app_hub --no-restart

# Iconos a 128px para pantalla HiDPI o hub-dir personalizado
./fn run refresh_app_hub --size 128
./fn run refresh_app_hub --hub-dir /mnt/d/MiDesktop/apps/app_hub_launcher/local_files

# Combinado
./fn run refresh_app_hub --size 128 --hub-dir /mnt/d/MiDesktop/apps/app_hub_launcher/local_files

Salida esperada:

[1/4] Exporting PNG icons (size=64px) → /mnt/c/Users/lucas/Desktop/apps/app_hub_launcher/local_files/icons ...
[1/4] PNG icons exported: 12
[2/4] Exporting manifest → .../hub_manifest.tsv ...
[2/4] Manifest exported: 12 rows
[3/4] Hub running → killing app_hub_launcher.exe ...
[3/4] Hub running → killed
[4/4] Launching app_hub_launcher ...
[4/4] Hub launched
OK: app_hub refreshed

Cuando usarla

Ejecutar este pipeline después de:

  • Cambiar el bloque icon: (phosphor, accent) en cualquier app.md C++.
  • Modificar la description de una app C++ (se refleja en el manifest TSV).
  • Añadir una app nueva con lang: cpp y framework: imgui al registry.
  • Cambiar el name de una app imgui (el PNG y la fila TSV usan el name).

En todos esos casos el hub cachea los archivos al arrancar, así que el reinicio es obligatorio para ver los cambios.

Gotchas

  • Cache al arrancar: app_hub_launcher carga local_files/icons/*.png y local_files/hub_manifest.tsv una sola vez al inicio. Sin el reinicio los cambios no se ven aunque los archivos estén actualizados. Usar --no-restart solo si el hub está cerrado o si quieres preparar los archivos antes de lanzarlo a mano.
  • Paths Windows requieren WSL /mnt/c/: el --hub-dir debe ser una ruta accesible desde WSL2. Las rutas C:\... nativas no funcionan en Bash — convertirlas con wslpath -u 'C:\...' antes de pasar el flag.
  • taskkill solo funciona en WSL con acceso a Windows tools: si tasklist.exe y taskkill.exe no están en $PATH (instalación WSL sin interop habilitado), el paso 3 fallará. Verificar con command -v tasklist.exe.
  • powershell.exe necesario para el lanzamiento: launch_cpp_app_windows usa Start-Process de PowerShell. Si PowerShell no está en $PATH, el paso 4 fallará.
  • export_hub_icons requiere Phosphor SVGs: los SVGs deben existir en sources/phosphor-core/assets/fill/. Si no están clonados, las apps sin SVG se omiten (skip) sin abortar; el count final puede ser menor al esperado. Clonar con: git clone https://github.com/phosphor-icons/core.git sources/phosphor-core.
  • Idempotente: lanzable N veces. Si el hub no está corriendo, el paso 3 se salta y el paso 4 lo lanza igualmente. Si ya está corriendo, lo mata y lo relanza.