Demo pública: arranque en frío y readiness¶
La demo pública de M10 usa minReplicas=0. El primer acceso puede tardar; la
interfaz no interpreta ese retraso como una pantalla rota ni habilita un
análisis antes de que el backend esté listo.
Estados visibles¶
| Estado UI | Fuente | Comportamiento |
|---|---|---|
| Verificando backend | comprobación inicial | consulta /health y /api/v1/readiness; análisis deshabilitado |
| Backend iniciándose | health responde o timeout transitorio | aviso no bloqueante, backoff automático y reintento manual |
| Backend disponible | health 200 y readiness 200/ready |
carga motores/recursos, habilita propuesta y análisis |
| Backend no disponible | no responde durante 90 segundos | conserva mensaje accionable y botón de reintento |
| Configuración inválida | readiness reporta configuration-error/driver-missing o health inválido |
no reintenta indefinidamente; solicita corregir configuración |
La ventana de reintento es de aproximadamente 90 segundos. El backoff empieza en 2 segundos y se limita a 15 segundos. Cada comprobación es GET/readiness y no ejecuta análisis ni mutaciones. Se muestra la hora de la última comprobación.
Contrato de habilitación¶
- El botón Analizar propuesta permanece deshabilitado hasta que health y readiness estén correctos.
- La carga de conexiones, operaciones e historial espera a readiness para no convertir el arranque en una cascada de errores.
- Una solicitud manual no se duplica mientras la misma comprobación automática sigue pendiente; cancelar/desmontar la UI también cancela el ciclo.
- Los errores de red, timeout y configuración no muestran trazas, headers ni secretos.
Pruebas¶
frontend/src/api.test.ts cubre backend disponible, readiness no listo,
configuración inválida, mensajes visibles y límites del backoff. La validación
completa sigue siendo npm run lint, npm run test y npm run build.