VALIDACION WEB PUSH - ENTREGA A SUPERVISOR
Build: 20260811-61

PROBLEMA OBSERVADO
- La prueba manual Web Push llegaba correctamente al teléfono.
- VAPID, HTTPS, OpenSSL, cURL, MySQL y FCM estaban OK.
- Al crear tickets reales, la cola aumentaba (por ejemplo 5 -> 8), pero no se generaban envíos al Supervisor.
- El Cron se ejecutaba, pero registraba "Enviados: 0".

CORRECCION APLICADA
1. Para el evento "ticket creado", el área de notificación se resuelve primero desde tickets.area, que es el área elegida al crear el ticket.
2. Se obtiene explícitamente el supervisor_id del área y luego sus suscripciones Web Push activas.
3. Se crean las filas de web_push_deliveries directamente para esas suscripciones, sin depender del JOIN anterior.
4. El procesador de cola ahora AUTORREPARA entradas antiguas: si una cola quedó sin entregas, reconstruye las entregas a partir del ticket, área y Supervisor.
5. Las 8 entradas que ya estén pendientes pueden ser reparadas por el Cron después de instalar el parche.
6. El botón Diagnóstico procesa primero la cola y luego muestra los contadores actualizados.
7. El diagnóstico muestra también Procesados ahora / Enviados ahora / Fallidos-reintentos ahora.
8. El Cron escribe el detalle del último error de cola cuando hay fallos.

ARCHIVOS MODIFICADOS
- admin/lib/SerintsaWebPushService.php
- admin/ajax/push_diagnostics_ajax.php
- admin/js/supervisor_browser_notifications.js
- admin/cron/process_web_push.php

VALIDACIONES REALIZADAS
- 626 archivos PHP revisados con php -l: OK.
- JavaScript supervisor_browser_notifications.js revisado con node --check: OK.
- No se modifica admin/config/webpush.local.php.
- No se cambian las claves VAPID existentes.
- No se requiere cambiar el comando Cron ya configurado en cPanel.

COMPORTAMIENTO ESPERADO DESPUES DE INSTALAR
- En la siguiente ejecución del Cron, las colas pendientes sin entregas se reconstruyen.
- Si el Supervisor tiene suscripciones activas, el log debe mostrar Enviados > 0.
- El diagnóstico debe reducir Cola pendiente y actualizar Último envío correcto.
- Los tickets nuevos deben crear la entrega al Supervisor del área inmediatamente y el Cron queda como respaldo.
