Ok, he actualizado la PR de Gladys con 3 cambios:
1. Banner « ¿Su dispositivo no está en la lista? » — ahora destaca Matter y las integraciones externas de la comunidad: « cualquiera puede crear una e publicarla en la tienda, y luego aparece en esta lista »,
2. Deprecación anunciada de Tuya, MELCloud, Telegram y Netatmo — lo hice de las dos maneras para que no haya ambigüedad:
- una insignia roja « Próximamente obsoleta » en su tarjeta del catálogo (bandera
deprecateden los JSON de integraciones, renderizada enIntegrationTags); - una alerta en la parte superior de la página de cada una de las cuatro integraciones (componente compartido
DeprecationWarning): « pronto será obsoleta en favor de una integración externa equivalente… ambas versiones coexistirán en el catálogo durante la transición — puede seguir usando esta por ahora ».
3. Errores de autenticación al reiniciar (código de cierre 4000) — diagnóstico confirmado, y era aún peor: sin la variable de entorno JWT_SECRET, el secreto se regenera en cada arranque de Gladys, y como start() reiniciaba el contenedor existente con el token JWT congelado en su entorno (firmado con el secreto antiguo), la integración entraba en bucle de rechazo sin nunca repararse. Dos correcciones:
- el supervisor ahora firma los JWT de integración con su propio secreto, generado una vez y persistido como variable (
EXTERNAL_INTEGRATION_JWT_SECRET) — sobrevive a los reinicios y a las restauraciones de copia de seguridad, en coherencia con los contenedores que valida; - auto-reparación en
start(): antes de reiniciar un contenedor existente,verifyContainerTokeninspecciona el token de su entorno (firma con el secreto actual + buen servicio + buenatoken_version); si está caducado, el contenedor se recrea con un token fresco en lugar de reiniciarse en vano. Esto también repara, en el próximo arranque, los contenedores creados antes de este parche.
