Files
agents_dashboard/CMakeLists.txt
T
egutierrez c8b7adf81d feat(0131): data_table_cpp_viz migration + botones acción + 7 nuevos tests e2e
Issue 0131 (agents v0.2) — frontend agents_dashboard:

* Migra tabla Agents de ImGui::BeginTable a render_grid_stage0 (data_table_cpp_viz).
  11 columnas: Status(Badge), ID, Name, Uptime, Msg/24h,
  Start/Stop/Restart/Clear Memory/Del Cache/Logs (Button renderers).
* Lee campos reales uptime_seconds + messages_24h del backend (antes leía
  'instances' como proxy para msg_24h; ahora lee el campo correcto).
* Confirmation modal (ImGui::BeginPopupModal) para acciones destructivas
  clear_memory y delete_cache.
* Link fn_module_data_table en CMakeLists (HAS_DATA_TABLE activado).
* Actualiza app.md: data_table_cpp_viz en uses_functions, version 0.2.0.
* Añade 7 tests pytest nuevos (total 24):
  test_uptime_field_present, test_msg_24h_field_present,
  test_clear_memory_requires_apikey, test_delete_cache_requires_apikey,
  test_control_roundtrip, test_unified_stop_does_not_kill_launcher,
  test_clear_memory_response_shape.
  SEGURIDAD: solo test-bot se para/arranca en e2e, nunca agentes reales.

Build verificado: Linux + Windows cross-compile (cmake --build cpp/build/windows).

Co-Authored-By: fn-orquestador (issue 0131) <noreply@fn-registry>
2026-05-22 23:07:01 +02:00

31 lines
1.1 KiB
CMake

add_imgui_app(agents_dashboard
main.cpp
# Registry functions (issue 0129):
${CMAKE_SOURCE_DIR}/functions/core/http_request.cpp
${CMAKE_SOURCE_DIR}/functions/core/http_get_json.cpp
${CMAKE_SOURCE_DIR}/functions/core/sse_client.cpp
${CMAKE_SOURCE_DIR}/functions/infra/secret_store.cpp
)
target_include_directories(agents_dashboard PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/vendor # nlohmann/json.hpp
)
# fn_table_viz: optional — guards keep the app compilable without it.
if(TARGET fn_table_viz)
target_link_libraries(agents_dashboard PRIVATE fn_table_viz)
endif()
# fn_module_data_table: render_grid_stage0 + ColumnSpec + TableEvent (issue 0131)
# Module lives in cpp/modules/data_table/. Optional: #if __has_include guard applies.
if(TARGET fn_module_data_table)
target_link_libraries(agents_dashboard PRIVATE fn_module_data_table)
endif()
if(WIN32)
set_target_properties(agents_dashboard PROPERTIES WIN32_EXECUTABLE TRUE)
# secret_store.cpp uses CryptProtectData / CryptUnprotectData (crypt32)
target_link_libraries(agents_dashboard PRIVATE crypt32)
endif()