--- name: dag_engine_ui lang: cpp domain: tools version: 0.1.0 description: "Frontend ImGui para dag_engine. Lista, lanza e inspecciona DAGs con live updates via WS." tags: [imgui, dashboard, dag, scheduler, http, websocket] uses_functions: - empty_state_cpp_core uses_types: [] uses_modules: [data_table_cpp] framework: "imgui" entry_point: "main.cpp" dir_path: "apps/dag_engine_ui" repo_url: "https://gitea.organic-machine.com/dataforge/dag_engine_ui" icon: phosphor: "tree-structure" accent: "#7c3aed" e2e_checks: - id: build_cmake cmd: "cmake --build cpp/build -j --target dag_engine_ui" timeout_s: 300 severity: critical - id: binary_exists cmd: "test -x cpp/build/linux/apps/dag_engine_ui/dag_engine_ui || test -x cpp/build/apps/dag_engine_ui/dag_engine_ui" timeout_s: 5 severity: critical - id: self_test cmd: "(cpp/build/linux/apps/dag_engine_ui/dag_engine_ui --self-test 2>&1 || cpp/build/apps/dag_engine_ui/dag_engine_ui --self-test 2>&1) | head -20" timeout_s: 10 expect_stdout_contains: "self-test" severity: warning - id: cpp_apps_conformance cmd: "./fn doctor cpp-apps 2>&1 | grep -A1 dag_engine_ui || echo 'no issues'" expect_stdout_contains: "no issues" severity: critical --- # dag_engine_ui Frontend ImGui para dag_engine. Lista, lanza e inspecciona DAGs con live updates via WS. ## Build ```bash cd cpp && cmake --build build --target dag_engine_ui -j ``` ## Run ```bash ./cpp/build/dag_engine_ui ``` ## Paneles | Panel | Que muestra | |---|---| | DAGs | Lista de DAGs (data_table_cpp_viz). Columna `Recent` = ultimas 5 runs como puntos (CellRenderer::Dots). Double-click -> abre DAG Detail. | | DAG Detail | Header (nombre, desc, schedule) + boton `Run Now` (POST /api/dags/{name}/run) + tabla recent runs. Double-click run -> Run Detail. | | Run Detail | Header (id, status, started/finished) + tabla steps (status/exit/duration) + CollapsingHeader por step con stdout/stderr. | | Timeline | Scatter ImPlot. X=tiempo, Y=DAG, color=status. Ventana 15m/1h/6h/24h/7d. Hover -> tooltip con run id + trigger. | | Live (WS) | Estado conexion + msgs count + watermarks runs/steps + lista live runs. | | Main (diag) | Diagnostico HTTP: boton Fetch + dump raw de g_dags. | ## Backend Apunta a `http://127.0.0.1:8090` (dag_engine.service via systemd user unit). Para usuario / formato de DAG / troubleshooting: **[apps/dag_engine/README.md](../../apps/dag_engine/README.md)**. ## Capability growth log Una linea por bump SemVer. Bump-type segun `.claude/commands/version.md`: - `major`: breaking observable (CLI args, schema BBDD propia, formato wire). - `minor`: feature aditiva (nuevo panel, endpoint, opcion). - `patch`: bugfix sin cambio observable. - v0.1.0 (2026-05-18) — baseline.