Contexto auditado
El Relay actual de T3 Connect registra devices y preferencias, recibe estado de agente firmado, persiste aggregates, entrega APNs/Live Activities mediante cola, deduplica jobs con leases, invalida tokens muertos y permite snapshot/replay al registrar. Referencias: relay README, relay contracts, AgentActivityPublisher, ApnsDeliveries y queue worker.
Brecha actual
Brio muestra completion/approval/input/failure solo cuando la app consulta el Command Center. No hay registro de push token, preferencias, publicación autenticada de actividad, delivery queue, dedupe, deep link desde notificación ni estado en lock screen. El usuario puede dejar una tarea remota esperando aprobación sin enterarse.
Propuesta
- Definir fases tipadas: starting, running, waiting_for_approval, waiting_for_input, completed, failed y stale.
- Registrar por device: platform, app version, APNs/FCM environment, tokens y preferencias granulares.
- Hacer que connector/Hermes publique estado mínimo firmado y ligado a agent/thread; verificar timestamp, nonce/signature y ownership.
- Persistir snapshot/aggregate con TTL y deep link exacto agent/profile/session.
- Encolar deliveries firmadas con expiración, retries, DLQ, claim lease e idempotency por source job.
- Invalidar tokens en respuestas APNs/FCM definitivas y registrar solo sufijo/metadata segura.
- Revalidar estado antes de enviar para suprimir alertas stale; replay silencioso al registrar/reabrir.
- APNs + Live Activities como primera fase; FCM después con capability visible, sin fingir soporte en Android.
- Aplicar privacy mode para ocultar título/contenido sensible y respetar notification settings del OS.
Criterios de aceptación
- Approval/input/completion/failure llega con la app en background y abre el destino exacto.
- Un retry de cola no envía dos alertas.
- Jobs expirados/stale no notifican; tokens inválidos dejan de reintentarse.
- Revocar/unregister device elimina su routing.
- Fallo de push no hace fallar la publicación de estado del agente.
- Snapshot recupera el estado tras reinstalación/re-registro sin buzz duplicado.
- Hay pruebas de firma/replay, preferencias, dedupe, leases expirados, 410/Unregistered, DLQ y contenido privado.
Issue Relay específica relacionada con la UX general de notificaciones en #29.
Contexto auditado
El Relay actual de T3 Connect registra devices y preferencias, recibe estado de agente firmado, persiste aggregates, entrega APNs/Live Activities mediante cola, deduplica jobs con leases, invalida tokens muertos y permite snapshot/replay al registrar. Referencias: relay README, relay contracts, AgentActivityPublisher, ApnsDeliveries y queue worker.
Brecha actual
Brio muestra completion/approval/input/failure solo cuando la app consulta el Command Center. No hay registro de push token, preferencias, publicación autenticada de actividad, delivery queue, dedupe, deep link desde notificación ni estado en lock screen. El usuario puede dejar una tarea remota esperando aprobación sin enterarse.
Propuesta
Criterios de aceptación
Issue Relay específica relacionada con la UX general de notificaciones en #29.