Files
fn_registry/dev/issues/0102-work-dashboard-tab.md
T

3.3 KiB

0102 — Tab Work en registry_dashboard (issues + flows + telemetria)

Status: pendiente Created: 2026-05-16 Type: feature Priority: media Domain: meta Scope: app-scoped Depends: 0100 (frontmatter migration), 0101 (dev_console --json) Blocks:Related: 0103 (slash commands)

Problema

Hoy para ver "estado global del trabajo" hay que:

  1. ls dev/issues/*.md + leer cabeceras.
  2. cat dev/flows/INDEX.md + abrir flow por flow.
  3. sqlite3 call_monitor.db para metricas.
  4. Cruzar a mano que issues bloquean que flow.

Cero visibilidad cross-cutting. Y nada me dice "abre el flow 0001 ya, todos sus checks user-facing estan listos" o "issue 0099 esta verde pero su dependencia 0096 esta marcada como DONE incorrectamente".

Objetivo

Tab nueva Work en projects/fn_monitoring/apps/registry_dashboard (C++ ImGui). Tres paneles:

Panel 1 — Kanban issues

Columnas: pendiente | in-progress | bloqueado | completado-hoy. Filtros (combo): domain, type, priority. Card por issue muestra: id, title, prio, deps no resueltas (en rojo si las hay).

Drag entre columnas -> llama dev_console issue tag NNNN --status X por debajo.

Panel 2 — Flows table

Tabla con columnas: id, slug, pattern, status, Acceptance %, DoD %, DoD user-facing %, ultima run en data_factory.runs. Click en fila -> abre archivo .md (o panel detalle al lado).

Boton User-test por fila -> lanza dev_console flow user-test NNNN (abre URL/app/sala Matrix declarada).

Panel 3 — Telemetria (resumen call_monitor)

KPIs ultimas 24h: calls_24h, violations_24h, pending_proposals, Reg %. Sparkline 7d por KPI. Misma fuente que el hook UserPromptSubmit.

Reglas

  • ImGui + data_table_cpp_viz para tablas (registry-first).
  • Datos vienen de dev_console work dashboard --json (call cada 5s en debug, cada 30s en prod).
  • Si dev_console no esta instalado: panel muestra placeholder + comando para instalar (sin crash).
  • Tab carga en <300ms (issue 0101 garantiza el binario).

Acceptance

  • Tab Work aparece en registry_dashboard con los 3 paneles.
  • Filtros funcionan (domain, type, priority, pattern).
  • Drag de issue actualiza disco.
  • User-test boton abre superficie usuario.
  • Refresh manual + auto cada 30s.

Definition of Done

Generico

  • Repetibilidad: tab abre 10x sin leak handles ni memoria.
  • Observabilidad: cada accion (drag, click User-test) loguea via fn_log.
  • Error-path: dev_console falla -> tab muestra error formateado, no crash.
  • Idempotencia: refresh 100x = misma tabla.
  • Secrets: N/A.
  • Docs: registry_dashboard.app.md lista la tab + casos de uso.
  • Registry-first: reusa data_table_cpp_viz, selectable_text, fn_log.
  • INDEX + status: issue cerrado.

User-facing

  • User-facing: usuario abre registry_dashboard.exe -> tab Work -> ve issues kanban + flows table + KPIs todo en una pantalla.
  • User-facing repeat: mismo dashboard manana muestra estado actualizado sin reset (deps resueltas se reflejan).
  • User-facing onboarding: parrafo en app.md: "Para el estado del trabajo: lanzar registry_dashboard.exe -> tab Work. Boton User-test abre la superficie usuario del flow."
  • User-facing latencia: refresh <300ms; cambio en disco visible en <30s (auto-refresh).