Commit Graph

8 Commits

Author SHA1 Message Date
egutierrez 00a19d8632 feat(dashboard): v0.3.0 — Status panel, dashboard_panel/grid, AppConfig pattern
- main.cpp: bump 0.2.0 → 0.3.0; añadir Status section en Settings via
  settings_window_add_section (fuente API/SQLite, URL, DB path, Reload).
- views.cpp: chart_panel manual + BeginChild custom → dashboard_panel/grid
  del registry. KPI cards con sparkline a la derecha, altura responsive.
- views.h: signature de draw_kpi_row pasa RegistryData (para sparkline).
- CMakeLists.txt: añadir process_state_machine.cpp (dependencia de
  process_runner tras issue 0045).
2026-04-29 00:58:17 +02:00
egutierrez a466fff71a feat: Settings submenu (Settings.../About...), git column, projects tab
- main.cpp: registrar info About via fn_ui::about_window_set_info
- views.cpp: nueva columna "Git" en la tabla Apps (remote/local/-)
- data.h/cpp + data_http.cpp: AppRow gana repo_url + dir_path
- views.cpp: actions bar (Reindex / + Add / Reload / inbox) y modal Add
- views.cpp: tab Projects con tree + detalle anidado
- data_http.cpp: load_projects_http, load_project_detail_http, http_post_*
- http_client.cpp: SO_RCVTIMEO en Windows como DWORD ms (timeout 5 ms bug)
- CMakeLists: limpieza de srcs duplicados con fn_framework
- app.md: notas operativas y estado actual

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 22:06:31 +02:00
egutierrez 57d8f0198a fix(cmake): guard NOT TARGET sqlite3_vendored para evitar duplicado
Cuando registry_dashboard se compila como subdirectorio de cpp/ (en lugar
de standalone), el parent ya define sqlite3_vendored. Sin el guard, cmake
falla con "another target with the same name already exists".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 18:42:12 +02:00
egutierrez 570103d83e feat(ui): migrar a tokens + primitivos del design system
Dashboard ahora usa:
- fn_tokens::apply_dark_theme() al primer frame (colors + spacing
  + radius + rounding consistentes con @fn_library / Mantine).
- page_header_begin/end para el header (en vez de Text + Separator
  + Button manual). Subtítulo con conteos de entidades.
- empty_state en las 4 tablas cuando están vacías — mensaje amable
  con acción sugerida en lugar de tabla vacía silenciosa.

Nuevas deps de compilación (.cpp fuentes añadidas al CMakeLists):
tokens.cpp, badge.cpp, empty_state.cpp, page_header.cpp.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 14:52:08 +02:00
egutierrez fa7982727c build(win): ocultar consola al lanzar (WIN32_EXECUTABLE TRUE)
El .exe se enlazaba como console app (mingw default), lo que
abría una ventana de consola negra al lanzarlo desde el escritorio.
WIN32_EXECUTABLE TRUE hace que CMake pase -mwindows al linker
(SUBSYSTEM:WINDOWS), dejando solo la ventana ImGui.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 14:36:04 +02:00
egutierrez 5b7001ebfb refactor: reemplazar cpp-httplib por HTTP client minimalista
cpp-httplib requiere std::mutex que no compila con MinGW win32
thread model. Se reemplaza por http_client.cpp: sockets crudos,
sin threading, sin SSL, funciona en ambos thread models.
Elimina vendor/httplib.h (10K lineas). nlohmann/json se mantiene.

main.cpp: doble clic sin argumentos intenta la API en localhost:8484
automaticamente. Si falla muestra pantalla de error con boton Retry.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 01:45:30 +02:00
egutierrez 0ef3da3bf5 feat: data layer HTTP — consume sqlite_api en vez de SQLite directo
Nuevo data_http.cpp que obtiene todos los datos del registry via HTTP
POST a sqlite_api (/api/databases/registry/query). Mismas queries SQL
que el data layer SQLite pero ejecutadas remotamente. cpp-httplib como
cliente HTTP, nlohmann/json para parsear respuestas.

CMakeLists.txt actualizado: incluye data_http.cpp, vendor/ en includes,
linkea pthreads (Linux) y ws2_32 (Windows) para sockets.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 01:37:03 +02:00
Egutierrez 303b6d476d Initial commit: registry_dashboard — Dashboard ImGui para fn_registry 2026-04-08 00:42:29 +02:00