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>
4.4 KiB
4.4 KiB
2026-05-07
01:39 — fn doctor + 14 funciones nuevas para gestion del sistema
Sesion completa: del analisis de huecos del registry a CLI funcionando + diagnostico real ejecutando.
Hecho
- Razonamiento gap analysis del registry actual (1051 funciones, 18 apps, 9 analyses): identificadas 10 categorias de funcionalidad ausente — backup/snapshot, doctor/health, secrets, cleanup/orphans, notify, lifecycle, ops cross-app, test coverage, sync verification, utils chicos.
- Plan en 5 fases con priorizacion top-5: backup, doctor, audit_uses_functions, notify_telegram, wait_for_http.
- Fase 1 — 8 funciones bash/go base:
backup_sqlite_db,rotate_backups,wait_for_http,wait_for_port,port_kill,tail_journal,pre_commit_hook_install,notify_telegram_go_infra. Todas creadas viafn-constructoren paralelo (4+4). - Fase 2 — 5 funciones diagnostico Go en
functions/infra/:artefact_doctor,services_status,pc_locations_drift,audit_uses_functions,find_unused_functions. Tests pasan. 5 paralelos. - Fase 3 — pipeline
backup_all_bash_pipelines(taglauncher): orquesta backups deregistry.db+ cadaoperations.db+ vaults conrsync --link-dest. - Fase 4 —
fn doctorCLI (cmd/fn/doctor.go): subcomandosartefacts|services|sync|uses-functions|unused|all, flag--json. Wrapper fino sobre las 5 funciones de Fase 2. Registrado encmd/fn/main.goyprintUsage. - Documentacion:
.claude/rules/fn_doctor.md(regla 23 en INDEX), seccion CLI en.claude/CLAUDE.md, capa diagnostica endocs/architecture.md, entrada2026-05-07enCHANGELOG.md.
Bug encontrado y arreglado
pc_locations_drift_go_infra:filepath.Join(absoluto, absoluto)→ path corrupto tipo/home/lucas/fn_registry/home/lucas/fn_registry/.... Sintoma: TODOS los artefactos reportados comomissing_on_disk. Fix: chequearfilepath.IsAbsantes de unir (pc_locations_drift.go:79y:135).go.mod:golang.org/x/netmovido a deps directas viago mod tidytras anadirnotify_telegram(transitiva promovida).
Hallazgos de la primera ejecucion
fn doctor artefacts→ 25/27 OK. Fallachart_demo_cpp_vizyshaders_lab_cpp_gfxporgit_not_initialized(sub-repos no clonados en este PC, esperado).fn doctor services→ 8 services registrados, solosqlite_api.serviceactivo en este PC (puerto 8484 listening).fn doctor sync→ sin drift tras el fix.fn doctor uses-functions→ drift real en 7/12 apps:auto_metabase,dag_engine,deploy_server,docker_tui,kanban,metabase_registry,script_navegador. Apps declaran funciones que no usan O usan funciones no declaradas enapp.md. Pendiente sincronizar.fn doctor unused→ muchas funciones core (compose2,curry2,chunk,flat_map_slice, etc.) sin consumidores aun. Esperado mientras el registry crece antes que las apps.
Comandos clave
# Build
CGO_ENABLED=1 go build -tags fts5 -o fn ./cmd/fn/
# Verificar todo
./fn index
./fn doctor # texto humano
./fn doctor --json > out.json # para agentes
./fn doctor uses-functions # ver drift de imports
./fn doctor unused # funciones huerfanas
# Backup completo (cron-friendly)
bash bash/functions/pipelines/backup_all.sh ~/backups/fn_registry
Numeros
- 1051 → 1065 funciones tras
fn index(14 nuevas). - 19 apps, 9 analyses, 4 projects, 3 vaults sin cambios.
fn doctor uses-functionsdeja mapeada deuda de sincronizacion en 7 apps.
Lo siguiente que pega
- Sincronizar
uses_functionsen los 7app.mdcon drift detectado porfn doctor uses-functions. - Decidir limpieza de funciones core sin consumidores (
fn doctor unused): mantener (futuro), tagdeprecated, o borrar. - Cron diario de
backup_allapuntando a~/backups/fn_registry. - Considerar
notify_telegramintegrado endeploy_serverpara alertas de fallos. - Extender
fn doctorcon subcomandosecretsque invoquescan_secrets_in_dirtysobre todos los repos (apps + analyses) en una pasada.
Archivos tocados
- Nuevos: 14 pares
.sh/.go + .mdenbash/functions/{infra,pipelines}/yfunctions/infra/.cmd/fn/doctor.go..claude/rules/fn_doctor.md.docs/diary/2026-05-07.md. - Modificados:
cmd/fn/main.go(casedoctor),.claude/CLAUDE.md,.claude/rules/INDEX.md,docs/architecture.md,CHANGELOG.md,go.mod,go.sum. - Sin commit: 74 archivos en git status pendientes de revision por humano.