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.

Referencias