# SERINTSA Web Push — Autoconfiguración build 20260811-60

Este build completa dentro del proyecto las configuraciones que sí pueden automatizarse desde PHP/Apache:

- Fuerza HTTPS desde `.htaccess` para cumplir el contexto seguro requerido por Push API.
- Crea/verifica automáticamente las tablas MySQL de Web Push.
- Verifica que la clave pública VAPID corresponda a la clave privada instalada.
- Renueva automáticamente una suscripción del navegador si usa una clave VAPID distinta.
- Actualiza el Service Worker sin depender de caché del navegador.
- Envía el primer intento Web Push inmediatamente al crear el ticket; ya no depende del Cron para la entrega inicial.
- Procesa reintentos pendientes de manera oportunista cuando un Supervisor abre el sistema.
- Añade un botón flotante **Push / Push OK / Push error** para diagnóstico y reparación.
- Añade **Reparar y probar**, que elimina una suscripción obsoleta, crea una nueva y ejecuta una prueba real desde el servidor.
- Añade un diagnóstico que muestra cURL/OpenSSL, tablas MySQL, suscripciones activas, último error y cola pendiente.

## Cron de cPanel

No es posible crear una tarea Cron de cPanel desde un archivo ZIP del sitio porque el Cron pertenece a la configuración de la cuenta de hosting, no al código PHP. En este build el Cron deja de ser necesario para el **primer intento** de cada ticket y queda recomendado únicamente para reintentos si el proveedor Push o la red fallan temporalmente.

Para reintentos 24/7, crear en cPanel una tarea cada minuto:

```text
* * * * * /usr/local/bin/php -q /RUTA_ABSOLUTA/admin/cron/process_web_push.php >/dev/null 2>&1
```

La ruta absoluta exacta se muestra en el botón **Push → Diagnóstico** dentro del sistema.

## Cómo probar después de extraer el parche

1. Cerrar sesión y volver a entrar como Supervisor.
2. Recargar una vez con Ctrl+F5.
3. Pulsar el botón flotante **Push**.
4. Pulsar **Reparar y probar**.
5. Debe llegar una notificación de prueba real enviada por PHP.
6. Si no llega, pulsar **Diagnóstico**: el cuadro mostrará el error exacto del servidor o del proveedor Push.
