# Propuestas e2e_checks — issue 0121a Generadas por `fn-recopilador design-e2e` paralelo, 2026-05-19. ## Estado (13/26 apps cubiertas) ### Wave 1 (5 apps) | App | YAML | Lang | Stack | Checks | Severidad mix | Estado | |---|---|---|---|---|---|---| | deploy_server | [deploy_server.yaml](deploy_server.yaml) | go | net/http + CGO sqlite | 4 | critical | propuesta | | registry_api | [registry_api.yaml](registry_api.yaml) | go | net/http + CGO+FTS5 | 7 | 6 critical + 1 warning | propuesta | | shaders_lab | [shaders_lab.yaml](shaders_lab.yaml) | cpp | imgui + mingw-w64 | 3 | 2 critical + 1 warning | propuesta | | auto_metabase | [auto_metabase.yaml](auto_metabase.yaml) | py | httpx + CLI argparse | 4 | critical | propuesta | | dag_engine | [dag_engine.yaml](dag_engine.yaml) | go | net/http + vite/react + CGO+FTS5 | 6 | 5 critical + 1 warning | propuesta | ### Wave 2 (8 apps) | App | YAML | Lang | Stack | Checks | Severidad mix | Estado | |---|---|---|---|---|---|---| | services_api | [services_api.yaml](services_api.yaml) | go | net/http + SSH cross-PC + sqlite custom schema | 6 | 3 critical + 3 warning | propuesta | | registry_mcp | [registry_mcp.yaml](registry_mcp.yaml) | go | mcp-go stdio + CGO+FTS5 | 5 | 4 critical + 1 warning | propuesta | | sqlite_api | [sqlite_api.yaml](sqlite_api.yaml) | go | net/http read-only + CGO+FTS5 | 7 | 4 critical + 2 warning + 1 (auth WIP) | propuesta | | registry_dashboard | [registry_dashboard.yaml](registry_dashboard.yaml) | cpp | imgui + cpp-httplib + WS RFC6455 | 7 | 3 critical + 4 warning | propuesta | | primitives_gallery | [primitives_gallery.yaml](primitives_gallery.yaml) | cpp | imgui + 44 .cpp registry (build gate de toda API C++) | 6 | 2 critical + 4 warning | propuesta | | pipeline_launcher | [pipeline_launcher.yaml](pipeline_launcher.yaml) | go | bubbletea TUI + CGO+FTS5 | 5 | 3 critical + 2 warning | propuesta | | docker_tui | [docker_tui.yaml](docker_tui.yaml) | go | bubbletea TUI + go-duckdb + docker CLI | 6 | 3 critical + 3 warning | propuesta | | fn_match | [fn_match.yaml](fn_match.yaml) | go | subcmd de ./fn + FTS5 fuzzy match (hook helper) | 5 | 2 critical + 3 warning | propuesta | ## Wave 3 (13 apps restantes, pendiente) apps/: - altsnap_jitter_test, app_gestion, app_hub_launcher, footprint_geo_stack, metabase_registry, script_navegador, services_monitor, set_exe_icon, tables_qa, text_editor_smoke projects/*/apps/: - element_agents/apps/element_matrix_chat, element_agents/apps/agents_and_robots, online_data_recopilation/apps/odr_console ## Advertencias detectadas (laterales) ### Bugs/drift descubiertos durante design-e2e - **dag_engine** — `apps/dag_engine/registry.db` (262 KB) viola `db_locations.md` (registry.db SOLO en raiz). Reaparicio tras borrado de 2026-05-16. Issue separado pendiente. - **dag_engine** — `pnpm build` roto por Mantine API drift (`StepTimeline.tsx:49` + `main.tsx:1`). Check `build_frontend` queda en `severity: warning` hasta arreglar. - **dag_engine** — falta flag `--migrate-only` en binario. Check `migrations_apply` usa `list` como proxy. - **deploy_server** — flag `--db` no expuesto en `cmdServe`. Check smoke usa BD por defecto del cwd hasta arreglar. - **pipeline_launcher** — migracion `003_logs` falta en `operations.db`. Detectada por recopilador via PRAGMA table_info. - **docker_tui** — `go.work` con path absoluto `/home/lucas/.local_agentes/backend` → build no portable. Check `build` queda en `severity: warning`. ### Correcciones de stack en mis prompts (telemetria para mi) - **sqlite_api**: yo asumi Python, era Go. Recopilador corrigio. - **registry_dashboard**: yo asumi Go+React+Vite, era C++ ImGui puro (cliente HTTP+WS). Recopilador corrigio + adapto checks. - **fn_match**: yo asumi binario propio, es subcomando de `./fn`. Recopilador corrigio. ## Hallazgos arquitectonicos - **primitives_gallery** es build gate de toda la API C++ del registry: 44 .cpp linkados (gfx + viz + core + 3d + sql + ...). Si una funcion C++ rompe su cabecera, falla aqui primero. Considerar moverlo a un job critico de CI. - **services_api** usa schema custom en operations.db (no fn_operations standard: `service_state` + `service_transition`). `ops_audit` debe manejar schemas custom. - **registry_mcp** test `mcp_handshake_stdio` arranca pipes in-process — replica el JSON-RPC que Claude Code usa al arrancar. Es el check de mayor valor por linea del wave 2. ## Siguiente paso Wave 3 (13 apps restantes) → completar coverage propuestas. Despues: - 0121b (`fn doctor e2e-coverage` via /autonomous-task tipo feature_app_simple) — apto para `/autopilot`. - 0121c (aplicar propuestas: N /autonomous-task add_e2e_check) — paraleliza sub-repos. ## Como aplicar manualmente (sin orquestador) ```bash cd apps/ # Pegar el bloque e2e_checks: del yaml al frontmatter de app.md $EDITOR app.md git add app.md && git commit -m "feat: add e2e_checks (issue 0121)" git push ```