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

3.6 KiB

id, title, status, type, domain, scope, priority, depends, blocks, related, created, updated, tags
id title status type domain scope priority depends blocks related created updated tags
0102 Tab Work en registry_dashboard (issues + flows + telemetria) pendiente feature
meta
app-scoped media
2026-05-17 2026-05-17

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).