2a3d780347
Adds `fn doctor` read-only diagnostic command with subcommands artefacts, services, sync, uses-functions, unused, and --json flag for agents. Each subcommand wraps a registry function in functions/infra/. New functions: - artefact_doctor, services_status, pc_locations_drift, audit_uses_functions, find_unused_functions (Go diagnostics) - backup_sqlite_db, rotate_backups, wait_for_http, wait_for_port, port_kill, tail_journal, pre_commit_hook_install (bash utilities) - notify_telegram (Go HTTP) - backup_all pipeline (tag launcher) Plus prior session leftovers (scan_secrets_in_dirty, append_diary_entry, git utilities, http_session_cookie_middleware, compile/full-git pipelines). Fixes pc_locations_drift filepath.Join bug with absolute dir_path. Documents fn doctor in CLAUDE.md, .claude/rules/fn_doctor.md (rule 23), docs/architecture.md, CHANGELOG.md (2026-05-07), and diary entry. First fn doctor uses-functions run found drift in 7/12 apps (deuda para sincronizar app.md con imports reales). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.1 KiB
2.1 KiB
/compile — Compila app C++ y la copia al escritorio de Windows
Wrapper sobre el pipeline compile_cpp_app_bash_pipelines. Toda la lógica vive en el registry (resolver app desde CWD/arg, cross-compile MinGW, copiar exe + DLLs + assets/ + enrichers/ + runtime/ a /mnt/c/Users/lucas/Desktop/apps/<app>/, taskkill previo, preservar local_files/).
cd /home/lucas/fn_registry
./fn run compile_cpp_app "$ARGUMENTS"
Argumento
$ARGUMENTS — opcional. Nombre de app (ej: chart_demo).
- Sin argumento: deduce desde
pwdsi estás dentro decpp/apps/<X>/oprojects/*/apps/<X>/. - Si no se puede deducir y no se pasa argumento, el pipeline lista las apps disponibles en stderr y aborta.
Qué hace el pipeline
resolve_cpp_app_dir_bash_infra— resuelve<app_name>y<dir absoluto>desde arg o CWD.- Verifica
CMakeLists.txten el dir resuelto. build_cpp_windows_bash_infra <app>— cross-compila el target específico concpp/build/windows/(configura toolchainmingw-w64.cmakela primera vez).deploy_cpp_exe_to_windows_bash_infra <app> <dir>:taskkill.exe /IM <app>.exe /F(pre-autorizado).- Copia
<app>.exe+ DLLs al top-level deDesktop/apps/<app>/. - rsync
cpp/build/windows/apps/<app>/assets/→Desktop/apps/<app>/assets/. - rsync
<app_dir>/enrichers/→assets/enrichers/si existe. - Si
app.mddeclarapython_runtime: true, regeneraruntime/contools/freeze_python_runtime.shy rsync aassets/runtime/. - Copia
gx-cli/gx-cli.exesi existen. - NUNCA toca
local_files/(estado del usuario).
- Imprime
ls -lhdel.exefinal.
Notas
- Solo target Windows hoy. Android / Linux quedan fuera (Linux ya lo da
cpp/build/). - Variables override-ables:
BUILD_WIN,WIN_DESKTOP_APPS,FN_REGISTRY_ROOT. - Si la app no está registrada en
cpp/CMakeLists.txt,cmake --build --target <app>falla. Registrar siguiendo.claude/rules/cpp_apps.md§5. - Para tocar la lógica: editar
bash/functions/{infra,pipelines}/{resolve_cpp_app_dir,deploy_cpp_exe_to_windows,compile_cpp_app}.sh, no este wrapper.