Add agent_incidents dedup, overview/incidents/timeline API, mission board UI with fleet rail, kanban, context panel, mobile tabs, poll and keyboard shortcuts. Co-authored-by: Cursor <cursoragent@cursor.com>
2 KiB
2 KiB
Tasks — Spec 030 Agentic Ops UI
Fase UI-A — Mission Board (frontend only) ✅
- A1 Criar
agentic-ops.css(gridao-*, tokens agente) - A2 Componente
AgenticStatusBar(health + action-log last tick) - A3 Componente
MissionBoard— 4 colunas severidade - A4 Dedup via API
/incidents(UI-B) - A5
IncidentCard— click selecciona + highlight - A6
ContextPanel— thread + reply + chat - A7 Fleet rail compacto
- A8 Deploy produção + staging
Fase UI-B — Backend deduplicação ✅
- B1 Migration
agent_incidents+ índices - B2
store.upsert_incident()no runner tick - B3 Refactor
notify_finding_to_operators— reutilizar thread - B4 Endpoints
/overview,/incidents,/incidents/{id}/ack,/timeline - B5 Backfill automático no boot (
backfill_incidents) - B6 Testes
test_agents_030.py
Fase UI-C — Polish ✅
- C1 Run timeline (lista ticks)
- C2 Mobile tabs (Board / Frota / Contexto)
- C3 Empty states + skeleton loading
- C4 Pulse animation agente com incidente open
- C5 Atalho teclado
Rrefresh,Escdeselect - C6 Poll 30s quando view activa
Fase UI-D — Live updates 📋
- D1 Poll 30s quando view activa (pausa tab hidden)
- D2 SSE
/api/v1/agents/stream(opcional, Spec 029 H3)
Fase UI-E — Integração Desk 📋
- E1 Botão “Criar ticket” no card →
/api/v1/ticketsPOST - E2 Link finding → domínio/tenant se aplicável
- E3 Preparar hub CH-* (Spec 019) — deep link
Ordem recomendada Roger
- UI-A (1–2 dias) — impacto visual imediato, zero risco DB
- UI-B (1 dia) — limpa produção, para spam de threads
- UI-C (0.5 dia) — mobile + polish
- UI-D / UI-E — backlog P2
Definition of Done (030 MVP = UI-A + UI-B)
- ≤10 cards visíveis para ambiente actual
- Ack funcional end-to-end
- Context panel com thread única por cenário
- Documentação quickstart actualizada
- Deploy produção
:8091após staging OK