chore: auto-commit (129 archivos)

- .claude/agents/fn-analizador/SKILL.md
- .claude/agents/fn-constructor/SKILL.md
- .claude/agents/fn-executor/SKILL.md
- .claude/agents/fn-mejorador/SKILL.md
- .claude/agents/fn-orquestador/SKILL.md
- .claude/agents/fn-recopilador/SKILL.md
- .claude/commands/app.md
- .claude/commands/compile.md
- .claude/commands/cpp-app.md
- .claude/commands/create_functions.md
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-01 22:23:12 +02:00
parent dbf5b45acd
commit 7913116a8e
129 changed files with 427 additions and 422 deletions
@@ -65,9 +65,9 @@ e2e_checks:
# reconfiguracion).
- id: cmake_configure_linux
cmd: >
test -f /home/lucas/fn_registry/cpp/build/linux/build.ninja ||
cmake -S /home/lucas/fn_registry/cpp
-B /home/lucas/fn_registry/cpp/build/linux
test -f $HOME/fn_registry/cpp/build/linux/build.ninja ||
cmake -S $HOME/fn_registry/cpp
-B $HOME/fn_registry/cpp/build/linux
-DFN_BUILD_TESTS=OFF
-DCMAKE_BUILD_TYPE=RelWithDebInfo
timeout_s: 60
@@ -77,13 +77,13 @@ e2e_checks:
# y el linkado con fn_framework (app_base.cpp, GLFW, OpenGL) tiene exito.
# Este es el check de compilacion base que corre en cualquier entorno.
- id: build_linux
cmd: "cmake --build /home/lucas/fn_registry/cpp/build/linux --target altsnap_jitter_test -j4"
cmd: "cmake --build $HOME/fn_registry/cpp/build/linux --target altsnap_jitter_test -j4"
timeout_s: 300
severity: critical
# Verifica que el binario Linux existe tras el build.
- id: binary_exists_linux
cmd: "test -f /home/lucas/fn_registry/cpp/build/linux/apps/altsnap_jitter_test/altsnap_jitter_test"
cmd: "test -f $HOME/fn_registry/cpp/build/linux/apps/altsnap_jitter_test/altsnap_jitter_test"
timeout_s: 5
severity: critical
@@ -95,7 +95,7 @@ e2e_checks:
cmd: >
xvfb-run -a -s "-screen 0 1280x800x24"
env LIBGL_ALWAYS_SOFTWARE=1 GALLIUM_DRIVER=llvmpipe
/home/lucas/fn_registry/cpp/build/linux/apps/altsnap_jitter_test/altsnap_jitter_test
$HOME/fn_registry/cpp/build/linux/apps/altsnap_jitter_test/altsnap_jitter_test
timeout_s: 60
severity: critical
@@ -103,7 +103,7 @@ e2e_checks:
# add_imgui_app genera altsnap_jitter_test_appicon.rc; si el .ico falta el build
# mingw pasa pero el .exe Windows queda sin icono embebido.
- id: icon_exists
cmd: "test -f /home/lucas/fn_registry/apps/altsnap_jitter_test/appicon.ico"
cmd: "test -f $HOME/fn_registry/apps/altsnap_jitter_test/appicon.ico"
timeout_s: 5
severity: warning
@@ -124,9 +124,9 @@ e2e_checks:
# real bajo Win32 que xvfb no puede cubrir.
- id: windows_run
cmd: >
FN_REGISTRY_ROOT=/home/lucas/fn_registry
FN_REGISTRY_ROOT=$HOME/fn_registry
bash -c '
source /home/lucas/fn_registry/bash/functions/infra/e2e_run_cpp_windows.sh
source $HOME/fn_registry/bash/functions/infra/e2e_run_cpp_windows.sh
e2e_run_cpp_windows altsnap_jitter_test
'
timeout_s: 300
@@ -35,7 +35,7 @@ e2e_checks:
# Por que: gate esencial — si el target no compila, nada mas tiene sentido.
# Corre sobre el build de Windows via mingw toolchain (cross-compile desde WSL).
- id: build
cmd: "cd /home/lucas/fn_registry/cpp && cmake --build build/windows --target app_hub_launcher -j"
cmd: "cd $HOME/fn_registry/cpp && cmake --build build/windows --target app_hub_launcher -j"
timeout_s: 300
severity: critical
@@ -44,7 +44,7 @@ e2e_checks:
# Este check verifica que el binario existe y es un archivo regular.
# Si el build cross no produjo el .exe o el cp falló, este check lo detecta.
- id: binary_exists
cmd: "test -f /home/lucas/fn_registry/cpp/build/windows/apps/app_hub_launcher/app_hub_launcher.exe"
cmd: "test -f $HOME/fn_registry/cpp/build/windows/apps/app_hub_launcher/app_hub_launcher.exe"
timeout_s: 5
severity: critical
@@ -53,7 +53,7 @@ e2e_checks:
# Si se borra el ico, el .exe no tiene icono embebido (no falla el build, pero rompe el
# contrato visual de la suite). El .ico es artefacto versionado en el sub-repo.
- id: appicon_exists
cmd: "test -f /home/lucas/fn_registry/apps/app_hub_launcher/appicon.ico"
cmd: "test -f $HOME/fn_registry/apps/app_hub_launcher/appicon.ico"
timeout_s: 5
severity: critical
@@ -36,7 +36,7 @@ e2e_checks:
# 2026-05-16 en app.md). Arreglar antes de promover a critical.
# -----------------------------------------------------------------------
- id: build_frontend
cmd: "cd /home/lucas/fn_registry/apps/dag_engine/frontend && pnpm install --frozen-lockfile && pnpm build"
cmd: "cd $HOME/fn_registry/apps/dag_engine/frontend && pnpm install --frozen-lockfile && pnpm build"
timeout_s: 180
severity: warning
# NOTA: severity warning porque pnpm build falla por API drift conocido.
@@ -51,7 +51,7 @@ e2e_checks:
# de trabajo (idempotente, no afecta al binario productivo).
# -----------------------------------------------------------------------
- id: build_backend
cmd: "cd /home/lucas/fn_registry/apps/dag_engine && CGO_ENABLED=1 go build -tags fts5 -o /tmp/dag_engine_e2e_bin ."
cmd: "cd $HOME/fn_registry/apps/dag_engine && CGO_ENABLED=1 go build -tags fts5 -o /tmp/dag_engine_e2e_bin ."
timeout_s: 120
# -----------------------------------------------------------------------
@@ -64,7 +64,7 @@ e2e_checks:
# NO hay flag --migrate-only en el binario actual.
# -----------------------------------------------------------------------
- id: migrations_apply
cmd: "rm -f /tmp/dag_engine_e2e.db /tmp/dag_engine_e2e.db-shm /tmp/dag_engine_e2e.db-wal && /tmp/dag_engine_e2e_bin list --db /tmp/dag_engine_e2e.db /home/lucas/fn_registry/apps/dag_engine/dags_migrated/"
cmd: "rm -f /tmp/dag_engine_e2e.db /tmp/dag_engine_e2e.db-shm /tmp/dag_engine_e2e.db-wal && /tmp/dag_engine_e2e_bin list --db /tmp/dag_engine_e2e.db $HOME/fn_registry/apps/dag_engine/dags_migrated/"
timeout_s: 15
expect_exit: 0
# NOTA: depende de check build_backend (usa /tmp/dag_engine_e2e_bin).
@@ -80,7 +80,7 @@ e2e_checks:
# mal referenciados, etc.).
# -----------------------------------------------------------------------
- id: dag_parse_fn_backup
cmd: "/tmp/dag_engine_e2e_bin validate /home/lucas/fn_registry/apps/dag_engine/dags_migrated/fn_backup.yaml"
cmd: "/tmp/dag_engine_e2e_bin validate $HOME/fn_registry/apps/dag_engine/dags_migrated/fn_backup.yaml"
timeout_s: 10
expect_exit: 0
expect_stdout_contains: "Validation: PASS"
@@ -93,7 +93,7 @@ e2e_checks:
# topo_sort sobre un grafo no trivial.
# -----------------------------------------------------------------------
- id: dag_parse_daily_audit
cmd: "/tmp/dag_engine_e2e_bin validate /home/lucas/fn_registry/apps/dag_engine/dags_migrated/daily-registry-audit.yaml"
cmd: "/tmp/dag_engine_e2e_bin validate $HOME/fn_registry/apps/dag_engine/dags_migrated/daily-registry-audit.yaml"
timeout_s: 10
expect_exit: 0
expect_stdout_contains: "Validation: PASS"
@@ -108,7 +108,7 @@ e2e_checks:
# health endpoint /api/dags declarado en service.health_endpoint.
# -----------------------------------------------------------------------
- id: smoke_server
cmd: "/tmp/dag_engine_e2e_bin server --port 8195 --db /tmp/dag_engine_e2e.db --dags-dir /home/lucas/fn_registry/apps/dag_engine/dags_migrated/ &"
cmd: "/tmp/dag_engine_e2e_bin server --port 8195 --db /tmp/dag_engine_e2e.db --dags-dir $HOME/fn_registry/apps/dag_engine/dags_migrated/ &"
health: "http://127.0.0.1:8195/api/dags"
timeout_s: 10
# NOTA: sin flag --scheduler para no disparar jobs reales.
@@ -132,6 +132,6 @@ e2e_checks:
# Cuando se añadan tests: descomentar y ajustar.
# -----------------------------------------------------------------------
# - id: tests
# cmd: "cd /home/lucas/fn_registry/apps/dag_engine && go test -tags fts5 -count=1 ./..."
# cmd: "cd $HOME/fn_registry/apps/dag_engine && go test -tags fts5 -count=1 ./..."
# timeout_s: 120
# OMITIDO: sin *_test.go
@@ -15,7 +15,7 @@ e2e_checks:
# build: compila el binario con CGO habilitado. Sin -tags fts5 (no lo usa el modulo).
# Valida que el modulo go-sqlite3 linkea correctamente en el entorno local.
- id: build
cmd: "cd /home/lucas/fn_registry/apps/deploy_server && CGO_ENABLED=1 go build -o /tmp/deploy_server_e2e_bin ."
cmd: "cd $HOME/fn_registry/apps/deploy_server && CGO_ENABLED=1 go build -o /tmp/deploy_server_e2e_bin ."
timeout_s: 180
# cli_help: verifica que el binario arranca y responde sin crashear ni pedir args obligatorios.
@@ -30,8 +30,8 @@ e2e_checks_suggested:
# No conecta a Metabase — solo resuelve imports.
- id: import
cmd: >
cd /home/lucas/fn_registry/apps/metabase_registry &&
/home/lucas/fn_registry/python/.venv/bin/python3 -c
cd $HOME/fn_registry/apps/metabase_registry &&
$HOME/fn_registry/python/.venv/bin/python3 -c
"import sys, os;
sys.path.insert(0, os.path.join(os.getcwd(), '..', '..', 'python', 'functions'));
from metabase import MetabaseClient, metabase_create_card, metabase_create_dashboard, metabase_update_dashboard;
@@ -49,8 +49,8 @@ e2e_checks_suggested:
# argparse imprime usage sin necesitar credenciales ni conexion.
- id: cli_help
cmd: >
cd /home/lucas/fn_registry/apps/metabase_registry &&
/home/lucas/fn_registry/python/.venv/bin/python3 main.py --help
cd $HOME/fn_registry/apps/metabase_registry &&
$HOME/fn_registry/python/.venv/bin/python3 main.py --help
expect_stdout_contains: "metabase_registry"
expect_exit: 0
timeout_s: 10
@@ -62,8 +62,8 @@ e2e_checks_suggested:
# Detecta SyntaxError y NameError de nivel modulo antes de cualquier deploy.
- id: syntax_check
cmd: >
cd /home/lucas/fn_registry/apps/metabase_registry &&
/home/lucas/fn_registry/python/.venv/bin/python3 -m py_compile
cd $HOME/fn_registry/apps/metabase_registry &&
$HOME/fn_registry/python/.venv/bin/python3 -m py_compile
main.py create_registry_dashboard.py create_apps_dashboard.py
create_script_navegador_dashboard.py &&
echo "syntax OK"
@@ -82,11 +82,11 @@ e2e_checks_suggested:
# severity: warning porque el fallo esperado viene de red, no del codigo.
- id: dry_run_parser
cmd: >
cd /home/lucas/fn_registry/apps/metabase_registry &&
cd $HOME/fn_registry/apps/metabase_registry &&
METABASE_URL=http://127.0.0.1:19999
METABASE_ADMIN_EMAIL=test@example.com
METABASE_ADMIN_PASSWORD=fake_password_for_e2e
/home/lucas/fn_registry/python/.venv/bin/python3 main.py
$HOME/fn_registry/python/.venv/bin/python3 main.py
--url http://127.0.0.1:19999
--admin-email test@example.com
--admin-password fake_password_for_e2e
@@ -48,7 +48,7 @@ e2e_checks:
# y hacer el check idempotente.
# -----------------------------------------------------------------------
- id: build
cmd: "cd /home/lucas/fn_registry/apps/pipeline_launcher && CGO_ENABLED=1 go build -tags fts5 -o /tmp/pipeline_launcher_e2e_bin ."
cmd: "cd $HOME/fn_registry/apps/pipeline_launcher && CGO_ENABLED=1 go build -tags fts5 -o /tmp/pipeline_launcher_e2e_bin ."
timeout_s: 120
# -----------------------------------------------------------------------
@@ -61,7 +61,7 @@ e2e_checks:
# config/ y views/ que el build check no ejercita separadamente.
# -----------------------------------------------------------------------
- id: vet
cmd: "cd /home/lucas/fn_registry/apps/pipeline_launcher && CGO_ENABLED=1 go vet -tags fts5 ./..."
cmd: "cd $HOME/fn_registry/apps/pipeline_launcher && CGO_ENABLED=1 go vet -tags fts5 ./..."
timeout_s: 60
# -----------------------------------------------------------------------
@@ -78,7 +78,7 @@ e2e_checks:
# -----------------------------------------------------------------------
- id: pipelines_list_loads
cmd: >
COUNT=$(sqlite3 /home/lucas/fn_registry/registry.db
COUNT=$(sqlite3 $HOME/fn_registry/registry.db
"SELECT COUNT(*) FROM functions WHERE kind='pipeline' AND tags LIKE '%launcher%';");
[ "$COUNT" -ge 1 ] && echo "launcher_pipelines=$COUNT OK" || { echo "FAIL: no launcher pipelines found in registry.db"; exit 1; }
timeout_s: 10
@@ -48,7 +48,7 @@ e2e_checks:
# rompe su API de compilacion, este check lo detecta antes de que otro app falle.
# Actua como build gate del registry de funciones C++.
- id: build
cmd: "cmake --build /home/lucas/fn_registry/cpp/build/windows --target primitives_gallery -j"
cmd: "cmake --build $HOME/fn_registry/cpp/build/windows --target primitives_gallery -j"
timeout_s: 300
severity: critical
@@ -56,7 +56,7 @@ e2e_checks:
# El build puede reportar exit 0 con -j en builds parciales sin producir binario.
# Sin este check, capture_mode fallaria con un mensaje de error menos claro.
- id: binary_exists
cmd: "test -f /home/lucas/fn_registry/cpp/build/windows/apps/primitives_gallery/primitives_gallery.exe"
cmd: "test -f $HOME/fn_registry/cpp/build/windows/apps/primitives_gallery/primitives_gallery.exe"
timeout_s: 5
severity: critical
@@ -78,7 +78,7 @@ e2e_checks:
- id: capture_mode
cmd: >
mkdir -p /tmp/primitives_gallery_e2e &&
/home/lucas/fn_registry/cpp/build/windows/apps/primitives_gallery/primitives_gallery.exe
$HOME/fn_registry/cpp/build/windows/apps/primitives_gallery/primitives_gallery.exe
--capture /tmp/primitives_gallery_e2e
timeout_s: 120
severity: warning
@@ -108,7 +108,7 @@ e2e_checks:
# como recurso (.rsrc) en el .exe. Si appicon.ico falta, el build pasa
# pero el .exe queda sin icono embebido (visible en Explorer + taskbar).
- id: icon_exists
cmd: "test -f /home/lucas/fn_registry/apps/primitives_gallery/appicon.ico"
cmd: "test -f $HOME/fn_registry/apps/primitives_gallery/appicon.ico"
timeout_s: 5
severity: warning
@@ -121,7 +121,7 @@ e2e_checks:
# Referencia esperada: 43 entradas (conteo manual de k_demos[] en main.cpp L37-84).
- id: demos_count_static
cmd: >
count=$(grep -c '^\s*{"' /home/lucas/fn_registry/apps/primitives_gallery/main.cpp);
count=$(grep -c '^\s*{"' $HOME/fn_registry/apps/primitives_gallery/main.cpp);
echo "DemoEntry count in source: $count";
test "$count" -ge 43
timeout_s: 5
@@ -32,7 +32,7 @@ e2e_checks:
# apunta a ../../ (raiz del registry), por lo que el build debe lanzarse
# desde dentro del directorio de la app.
- id: build
cmd: "cd /home/lucas/fn_registry/apps/registry_api && CGO_ENABLED=1 go build -tags fts5 -o registry_api ."
cmd: "cd $HOME/fn_registry/apps/registry_api && CGO_ENABLED=1 go build -tags fts5 -o registry_api ."
timeout_s: 120
severity: critical
# por que: sin binario el resto de checks no tiene sentido; fallo de build
@@ -43,7 +43,7 @@ e2e_checks:
# /api/status. Puerto 8521 (!=8420 prod, !=8420 dev) para no colisionar.
# El proceso en background se mata al terminar la suite por fn-analizador.
- id: smoke
cmd: "/home/lucas/fn_registry/apps/registry_api/registry_api -port 8521 -db /tmp/registry_api_e2e.db &"
cmd: "$HOME/fn_registry/apps/registry_api/registry_api -port 8521 -db /tmp/registry_api_e2e.db &"
health: "http://127.0.0.1:8521/api/status"
timeout_s: 10
severity: critical
@@ -91,7 +91,7 @@ e2e_checks:
- id: auth_check
cmd: >
REGISTRY_API_TOKEN=real-secret
/home/lucas/fn_registry/apps/registry_api/registry_api -port 8522 -db /tmp/registry_api_e2e_auth.db &
$HOME/fn_registry/apps/registry_api/registry_api -port 8522 -db /tmp/registry_api_e2e_auth.db &
sleep 1 &&
STATUS=$(curl -s -o /dev/null -w '%{http_code}'
-X POST http://127.0.0.1:8522/api/sync
@@ -44,7 +44,7 @@
# (antes del primer "##" de prosa).
# 2. El check 'build' asume que el directorio cpp/build/linux existe y cmake
# fue configurado previamente. Si no: anteponer
# "cmake -B /home/lucas/fn_registry/cpp/build/linux -S /home/lucas/fn_registry/cpp &&"
# "cmake -B $HOME/fn_registry/cpp/build/linux -S $HOME/fn_registry/cpp &&"
# al cmd o usar el check 'build_configure' (opcional, ver abajo).
# 3. El check 'integration_sqlite_direct' requiere que registry.db exista en
# la raiz del repo. En CI, puede copiarse de un fixture o generarse con
@@ -62,7 +62,7 @@ e2e_checks:
# CGO no aplica (es C++, no Go). FTS5 se compila via SQLITE_ENABLE_FTS5
# en la amalgamation vendoreada (CMakeLists.txt lo setea).
- id: build
cmd: "cmake --build /home/lucas/fn_registry/cpp/build/linux --target registry_dashboard -j$(nproc)"
cmd: "cmake --build $HOME/fn_registry/cpp/build/linux --target registry_dashboard -j$(nproc)"
timeout_s: 300
severity: critical
# por que: la app enlaza ~20 funciones del registry C++ + sqlite + ws_client.
@@ -74,7 +74,7 @@ e2e_checks:
# Confirma que el binario existe y es ejecutable tras el build.
# Tambien verifica la version de symbols minimos esperados (sin linkage roto).
- id: verify_binary
cmd: "test -x /home/lucas/fn_registry/cpp/build/linux/apps/registry_dashboard && /home/lucas/fn_registry/cpp/build/linux/apps/registry_dashboard --help 2>&1 || true"
cmd: "test -x $HOME/fn_registry/cpp/build/linux/apps/registry_dashboard && $HOME/fn_registry/cpp/build/linux/apps/registry_dashboard --help 2>&1 || true"
expect_exit: 0
timeout_s: 5
severity: critical
@@ -93,8 +93,8 @@ e2e_checks:
- id: integration_sqlite_direct
cmd: >
DISPLAY="" timeout 3
/home/lucas/fn_registry/cpp/build/linux/apps/registry_dashboard
/home/lucas/fn_registry/registry.db
$HOME/fn_registry/cpp/build/linux/apps/registry_dashboard
$HOME/fn_registry/registry.db
2>&1 | head -5
expect_exit: 1
timeout_s: 10
@@ -116,7 +116,7 @@ e2e_checks:
# Actua como pre-condicion para integration_sqlite_direct.
- id: data_schema_check
cmd: >
sqlite3 /home/lucas/fn_registry/registry.db
sqlite3 $HOME/fn_registry/registry.db
"SELECT COUNT(*) FROM sqlite_master WHERE type='table'
AND name IN ('functions','types','apps','analysis','proposals','unit_tests');"
expect_stdout_contains: "6"
@@ -133,7 +133,7 @@ e2e_checks:
# via HTTP, pero aqui queremos detectar schema drift independientemente.
- id: call_monitor_schema_check
cmd: >
sqlite3 /home/lucas/fn_registry/projects/fn_monitoring/apps/call_monitor/operations.db
sqlite3 $HOME/fn_registry/projects/fn_monitoring/apps/call_monitor/operations.db
"SELECT COUNT(*) FROM sqlite_master WHERE type='table'
AND name IN ('calls','violations','sessions');"
expect_stdout_contains: "3"
@@ -151,7 +151,7 @@ e2e_checks:
# WsClient sin actualizar todos los call sites.
- id: ws_client_compile_check
cmd: >
cmake --build /home/lucas/fn_registry/cpp/build/linux
cmake --build $HOME/fn_registry/cpp/build/linux
--target registry_dashboard -j$(nproc) -- --warn-undefined-functions
2>&1 | grep -i "ws_client" | grep -i "error" || true
expect_stdout_contains: ""
@@ -50,7 +50,7 @@ e2e_checks:
# -------------------------------------------------------------------
- id: build
cmd: >
cd /home/lucas/fn_registry/apps/registry_mcp &&
cd $HOME/fn_registry/apps/registry_mcp &&
CGO_ENABLED=1 go build -tags fts5 -o registry_mcp .
timeout_s: 120
severity: critical
@@ -64,7 +64,7 @@ e2e_checks:
# -------------------------------------------------------------------
- id: tests
cmd: >
cd /home/lucas/fn_registry/apps/registry_mcp &&
cd $HOME/fn_registry/apps/registry_mcp &&
CGO_ENABLED=1 go test -tags fts5 -count=1 -timeout 60s ./...
timeout_s: 90
severity: critical
@@ -80,7 +80,7 @@ e2e_checks:
# -------------------------------------------------------------------
- id: naming_reject
cmd: >
cd /home/lucas/fn_registry/apps/registry_mcp &&
cd $HOME/fn_registry/apps/registry_mcp &&
CGO_ENABLED=1 go test -tags fts5 -count=1 -run TestValidateName -v 2>&1 |
grep -q "PASS"
timeout_s: 30
@@ -98,10 +98,10 @@ e2e_checks:
# -------------------------------------------------------------------
- id: mcp_handshake_stdio
cmd: |
BINARY=/home/lucas/fn_registry/apps/registry_mcp/registry_mcp
BINARY=$HOME/fn_registry/apps/registry_mcp/registry_mcp
PAYLOAD='{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"e2e_probe","version":"0"}}}'
RESPONSE=$(echo "$PAYLOAD" | timeout 5 "$BINARY" \
--registry-root /home/lucas/fn_registry \
--registry-root $HOME/fn_registry \
--log-level error \
2>/dev/null | head -n1)
echo "response: $RESPONSE"
@@ -21,12 +21,12 @@ e2e_checks:
# -----------------------------------------------------------------------
# CHECK 1: build
# Por que: verifica que el modulo Go compila con CGO (go-sqlite3) y las
# dependencias del registry (replace fn-registry => /home/lucas/fn_registry).
# dependencias del registry (replace fn-registry => $HOME/fn_registry).
# Sin esto nada funciona. El binario se deja en /tmp para no contaminar el dir.
# -----------------------------------------------------------------------
- id: build
cmd: >
cd /home/lucas/fn_registry/apps/script_navegador &&
cd $HOME/fn_registry/apps/script_navegador &&
CGO_ENABLED=1 go build -tags fts5 -o /tmp/script_navegador_e2e .
timeout_s: 120
@@ -52,7 +52,7 @@ e2e_checks:
- id: syntax_yaml
cmd: >
/tmp/script_navegador_e2e
--script /home/lucas/fn_registry/apps/script_navegador/examples/busqueda_google.yaml
--script $HOME/fn_registry/apps/script_navegador/examples/busqueda_google.yaml
--port 19222
2>&1 || true
expect_stdout_contains: "busqueda_google"
@@ -84,7 +84,7 @@ e2e_checks:
# -----------------------------------------------------------------------
- id: ops_schema
cmd: >
sqlite3 /home/lucas/fn_registry/apps/script_navegador/operations.db
sqlite3 $HOME/fn_registry/apps/script_navegador/operations.db
"SELECT name FROM sqlite_master WHERE type='table'
AND name IN ('entities','relations','executions','logs','assertions','assertion_results')
ORDER BY name;" 2>/dev/null
@@ -116,6 +116,6 @@ e2e_checks:
# No hay archivos *_test.go en el directorio. Si se anaden en el futuro,
# agregar:
# - id: tests
# cmd: "cd /home/lucas/fn_registry/apps/script_navegador && go test -count=1 ./..."
# cmd: "cd $HOME/fn_registry/apps/script_navegador && go test -count=1 ./..."
# timeout_s: 60
# -----------------------------------------------------------------------
@@ -33,7 +33,7 @@ e2e_checks:
# pero el flag no rompe nada y evita confusion futura si se añade FTS).
# -----------------------------------------------------------------------
- id: build
cmd: "cd /home/lucas/fn_registry/apps/services_api && CGO_ENABLED=1 go build -o services_api ."
cmd: "cd $HOME/fn_registry/apps/services_api && CGO_ENABLED=1 go build -o services_api ."
timeout_s: 120
severity: critical
# por que: si no compila no hay nada que probar
@@ -47,11 +47,11 @@ e2e_checks:
# -----------------------------------------------------------------------
- id: smoke_once
cmd: >
cd /home/lucas/fn_registry/apps/services_api &&
FN_REGISTRY_ROOT=/home/lucas/fn_registry
cd $HOME/fn_registry/apps/services_api &&
FN_REGISTRY_ROOT=$HOME/fn_registry
./services_api
--once
--registry /home/lucas/fn_registry
--registry $HOME/fn_registry
--db /tmp/services_api_e2e.db
--bind 127.0.0.1:8585
timeout_s: 45
@@ -67,10 +67,10 @@ e2e_checks:
# -----------------------------------------------------------------------
- id: smoke_health
cmd: >
cd /home/lucas/fn_registry/apps/services_api &&
cd $HOME/fn_registry/apps/services_api &&
./services_api
--bind 127.0.0.1:8585
--registry /home/lucas/fn_registry
--registry $HOME/fn_registry
--db /tmp/services_api_e2e_http.db
--interval 300s &
health: "http://127.0.0.1:8585/api/health"
@@ -124,7 +124,7 @@ e2e_checks:
# No existen *_test.go en apps/services_api. Activar cuando se añadan.
#
# - id: tests
# cmd: "cd /home/lucas/fn_registry/apps/services_api && CGO_ENABLED=1 go test -count=1 ./..."
# cmd: "cd $HOME/fn_registry/apps/services_api && CGO_ENABLED=1 go test -count=1 ./..."
# timeout_s: 120
# severity: critical
# -----------------------------------------------------------------------
@@ -30,7 +30,7 @@ e2e_checks:
# (data_table::render, issue 0097) y ws2_32 en WIN32.
# Detecta regresiones de API en data_table o cambios de firma en http_client.h.
- id: build
cmd: "cmake --build /home/lucas/fn_registry/cpp/build/windows --target services_monitor -j"
cmd: "cmake --build $HOME/fn_registry/cpp/build/windows --target services_monitor -j"
timeout_s: 300
severity: critical
@@ -39,7 +39,7 @@ e2e_checks:
# (ha ocurrido con fn_module_data_table cuando el target es condicional via
# if(TARGET fn_module_data_table) sin hacer REQUIRED).
- id: binary_exists
cmd: "test -f /home/lucas/fn_registry/cpp/build/windows/apps/services_monitor/services_monitor.exe"
cmd: "test -f $HOME/fn_registry/cpp/build/windows/apps/services_monitor/services_monitor.exe"
timeout_s: 5
severity: critical
@@ -48,7 +48,7 @@ e2e_checks:
# si el .ico falta el build pasa pero el .exe queda sin icono (phosphor=pulse
# accent=#10b981 segun app.md). Visible al copiar a Desktop/apps/.
- id: icon_exists
cmd: "test -f /home/lucas/fn_registry/apps/services_monitor/appicon.ico"
cmd: "test -f $HOME/fn_registry/apps/services_monitor/appicon.ico"
timeout_s: 5
severity: warning
@@ -25,7 +25,7 @@ e2e_checks:
# Es el check mas valioso: detecta regresiones de API en cualquiera de las
# 19 funciones del registry que usa la app.
- id: build
cmd: "cmake --build /home/lucas/fn_registry/cpp/build/windows --target shaders_lab -j"
cmd: "cmake --build $HOME/fn_registry/cpp/build/windows --target shaders_lab -j"
timeout_s: 300
severity: critical
@@ -33,7 +33,7 @@ e2e_checks:
# Detecta casos donde cmake reporta exit 0 pero el linker no produjo binario
# (muy raro con mingw-w64 pero ha ocurrido en builds parciales con -j).
- id: binary_exists
cmd: "test -f /home/lucas/fn_registry/cpp/build/windows/apps/shaders_lab/shaders_lab.exe"
cmd: "test -f $HOME/fn_registry/cpp/build/windows/apps/shaders_lab/shaders_lab.exe"
timeout_s: 5
severity: critical
@@ -42,6 +42,6 @@ e2e_checks:
# si el .ico falta el build pasa pero el .exe queda sin icono embebido
# (visible al deploy a /mnt/c/.../Desktop/apps/).
- id: icon_exists
cmd: "test -f /home/lucas/fn_registry/apps/shaders_lab/appicon.ico"
cmd: "test -f $HOME/fn_registry/apps/shaders_lab/appicon.ico"
timeout_s: 5
severity: warning
@@ -20,7 +20,7 @@ e2e_checks:
# El binario resultante es el mismo que usa el systemd unit.
# Correr desde la raiz del repo porque go.mod vive ahi.
cmd: >
cd /home/lucas/fn_registry &&
cd $HOME/fn_registry &&
CGO_ENABLED=1 go build -tags fts5
-o projects/fn_monitoring/apps/sqlite_api/sqlite_api
./projects/fn_monitoring/apps/sqlite_api/
@@ -35,7 +35,7 @@ e2e_checks:
# DiscoverDatabases, /tables, /schema, 404 para DB inexistente.
# Usan DB en t.TempDir() — totalmente efimeros.
cmd: >
cd /home/lucas/fn_registry &&
cd $HOME/fn_registry &&
CGO_ENABLED=1 go test -tags fts5 -count=1 -v
./projects/fn_monitoring/apps/sqlite_api/
timeout_s: 60
@@ -48,8 +48,8 @@ e2e_checks:
# encuentre registry.db real (necesario para /api/databases).
# El proceso queda en background; fn-analizador lo mata al terminar.
cmd: >
FN_REGISTRY_ROOT=/home/lucas/fn_registry
/home/lucas/fn_registry/projects/fn_monitoring/apps/sqlite_api/sqlite_api
FN_REGISTRY_ROOT=$HOME/fn_registry
$HOME/fn_registry/projects/fn_monitoring/apps/sqlite_api/sqlite_api
--bind 127.0.0.1:8684
--data-factory-db /tmp/sqlite_api_e2e_df.db &
health: "http://127.0.0.1:8684/api/databases"
+6 -6
View File
@@ -57,7 +57,7 @@ e2e_checks:
# los tabs, (c) ninguna TU del modulo rompe ODR.
# Es el build gate de data_table v2.0+ para issue 0081 BeginTable migration.
- id: build
cmd: "cmake --build /home/lucas/fn_registry/cpp/build --target tables_qa -j"
cmd: "cmake --build $HOME/fn_registry/cpp/build --target tables_qa -j"
timeout_s: 300
severity: critical
# Nota: si fn_module_data_table aun no esta buildado, cmake lo buildara como
@@ -67,7 +67,7 @@ e2e_checks:
# cmake --build puede retornar exit 0 en rebuilds parciales sin producir binario
# si el target ya esta up-to-date pero el archivo fue borrado manualmente.
- id: binary_exists
cmd: "test -f /home/lucas/fn_registry/cpp/build/apps/tables_qa/tables_qa"
cmd: "test -f $HOME/fn_registry/cpp/build/apps/tables_qa/tables_qa"
timeout_s: 5
severity: critical
@@ -80,7 +80,7 @@ e2e_checks:
# implemente --self-test real con imgui_test_engine, ascender a critical y
# añadir expect_stdout_contains para verificar resultados concretos.
- id: self_test_stub
cmd: "/home/lucas/fn_registry/cpp/build/apps/tables_qa/tables_qa --self-test"
cmd: "$HOME/fn_registry/cpp/build/apps/tables_qa/tables_qa --self-test"
timeout_s: 15
expect_exit: 0
expect_stdout_contains: "SKIPPED"
@@ -94,7 +94,7 @@ e2e_checks:
# Windows queda sin icono embebido. Fallo aqui detecta borrado accidental
# del .ico antes de cross-compile.
- id: icon_exists
cmd: "test -f /home/lucas/fn_registry/apps/tables_qa/appicon.ico"
cmd: "test -f $HOME/fn_registry/apps/tables_qa/appicon.ico"
timeout_s: 5
severity: warning
@@ -107,7 +107,7 @@ e2e_checks:
# Cuenta "render_" en tabs.h como proxy del numero de tabs declarados.
- id: tabs_declared
cmd: >
count=$(grep -c 'render_' /home/lucas/fn_registry/apps/tables_qa/tabs.h 2>/dev/null);
count=$(grep -c 'render_' $HOME/fn_registry/apps/tables_qa/tabs.h 2>/dev/null);
echo "render_ declarations in tabs.h: $count";
test "$count" -ge 10
timeout_s: 5
@@ -121,7 +121,7 @@ e2e_checks:
# Este check estático es mas rapido que el build completo y da feedback antes.
- id: cmakelists_tab_srcs
cmd: >
count=$(grep -c '^ tab_' /home/lucas/fn_registry/apps/tables_qa/CMakeLists.txt 2>/dev/null);
count=$(grep -c '^ tab_' $HOME/fn_registry/apps/tables_qa/CMakeLists.txt 2>/dev/null);
echo "tab_*.cpp in CMakeLists: $count";
test "$count" -ge 10
timeout_s: 5