CHANGELOG - EVAC Cloud Connect (Espanol)
==========================================


Version 1.2.1.0 - 2026-06-19
----------------------------

Modificaciones:
- Posibilidad de cancelar el intento de conexion con un dispositivo EVAC remoto desde el dialogo "Connecting..."; al cancelar, la aplicacion permanece o vuelve al panel con la lista de dispositivos EVAC.
- Comprobacion con reintentos de la URL del endpoint remoto antes de abrir el canal gRPC (hasta 15 intentos con intervalo de 3 s, jitter aleatorio y timeout de 5 s por intento); si la URL no responde correctamente se devuelve un error de conexion.
- Optimizacion de la carga y actualizacion de la lista de dispositivos EVAC: la lista se muestra antes al recuperar heartbeat, partners y estados connected, sin bloquear la UI tras el login.
- Se preserva la posicion de scroll al actualizar las listas EVAC Devices y Discovered Devices.
- Anadido el campo "version" al filtro de busqueda de la lista de dispositivos EVAC.
- Contador de dispositivos mostrados en la lista de dispositivos EVAC y en la de equipos descubiertos en la red local del dispositivo EVAC conectado.
- Durante la desconexion con un dispositivo EVAC, se oculta el formulario de conexion para evitar interacciones no deseadas.
- En celdas de tipo boton de los datagrids, si el valor es nulo o vacio no se dibuja el boton.
- Se incluyen los modelos ONE 500 y ONE 150 en el filtro de equipos no compatibles con conexion remota que se ocultan al conectar con un dispositivo EVAC.
- Cambios de textos: el dialogo de carga de dispositivos pasa a "Loading EVAC Devices..." y el mensaje de error de conexion pasa a "Connection failed".


Version 1.2.0.0 - 2026-05-25
----------------------------

Modificaciones:
- Soporte de cuentas multiusuario: nuevo paso de seleccion de usuario/perfil tras el login, con su propio formulario, columnas e informacion de cuenta y email.
- Nuevo perfil Superadmin integrado en el cliente y en el proceso de autenticacion.
- En la lista de dispositivos EVAC: con perfil Manufacturer se muestran las columnas Partner y Account; con el resto de perfiles solo Account. La antigua columna Partner pasa a llamarse Account.
- Se elimina por desuso la columna Expired de la lista de dispositivos EVAC.
- Tras conectar con un dispositivo EVAC, se filtran los equipos encontrados en su red local que no son compatibles con la conexion remota.
- El panel de conexion muestra ahora la cuenta del usuario y la cuenta del dispositivo conectado.
- Cambios de textos: el boton "Core Device Web" pasa a "EVAC Settings web", y se sustituye "Core system"/"Core device" por "EVAC device".

Correcciones:
- Correccion en el refresco del estado connected en la lista de sistemas EVAC.
- Diversas correcciones que mejoran la estabilidad y usabilidad general de la aplicación.


Version 1.1.1.2 - 2026-01-15
----------------------------

Modificaciones:
- Mejoras de estabilidad de los streams: keepalive UDP, timeouts HTTP, contador de errores RPC y proteccion de auto-reinicio.
- Optimizacion completa del streaming: eliminado HealthMonitor, eliminados bloqueos asincronos, anadido pooling de buffers y operaciones zero-copy.
- Ajustes de configuracion de GC y red.
- Eliminados sonidos del sistema, puerto compartido TCP/UDP y cierre controlado del endpoint.
- Mejoras en el DataGridView (sin recuadro de foco, mejor respuesta del boton Open Port).

Correcciones:
- Eliminada la acumulacion de buffer en el proxy TCP que provocaba pausas aleatorias de 300-800 ms; los datos se envian inmediatamente.
- Solucionadas las ralentizaciones ocasionales durante la comunicacion.
- Corregido un problema que generaba dispositivos duplicados en la lista al hacer discover.


Version 1.1.1.1 - 2025-10-06
----------------------------

Modificaciones:
- Sistema de logging robusto para produccion 24/7 con Serilog (categorias, retencion de 90 dias, datos sensibles enmascarados).
- Optimizacion de buffers TCP/UDP con soporte para jumbo frames sin perder latencia interactiva.
- Mejoras de UI: altura automatica de filas en datagrids, supresion de sonidos del sistema, validacion del boton Log In, guardado automatico del email del usuario, foco automatico en filtros y filtro de busqueda en Discovered Devices.
- Validacion de requisitos: ahora se exige Windows 11 (Build 22000+) o Windows Server 2025+ para el funcionamiento de gRPC bidireccional.
- Puerto local fijo 22022 para conexiones SSH (con fallback automatico).
- Permitida la ordenacion por cualquier columna en la lista de sistemas.
- Mejora de la legibilidad del formulario de login (fuentes mas grandes).
- Mejor gestion de la barra de desplazamiento en el panel de conexion.

Correcciones:
- Corregidos memory leaks importantes en validacion de certificados, timer de sesion, comprobacion de puertos TCP, UdpClient y healthMonitorTimer (impacto: de ~186 MB/mes a < 100 KB/dia).
- Corregido bloqueo de la UI al pulsar Log Out, Refresh List y Connect.
- Correccion del cierre de conexiones UDP donde se llamaban metodos en instancias nulas.
- Corregida la condicion de carrera en la reconexion TCP que provocaba fallos en la primera conexion RDP.
- Corregido manejo de ObjectDisposedException y NullReferenceException para evitar bucles infinitos de reconexion.
- Restauradas las multiples conexiones SSH simultaneas al mismo puerto local.
- Eliminada la degradacion progresiva en transferencias TCP/UDP consecutivas (las velocidades se mantienen estables).
- Eliminadas tareas zombi que permanecian activas tras una desconexion.
- Corregida la sincronizacion del campo Connected con Firebase y la deteccion de cambios en todos los campos relevantes.
- Corregido el filtrado para incluir el campo Partner y trabajar solo con columnas visibles.
- Corregidas conexiones erroneas durante el filtrado.
- Correccion de redimensionamiento de columnas y ajustes de layout en varios formularios.
- Suprimido el sonido beep en eventos de teclado y dialogos.


Version 1.1.0.0 - 2025-02-21
----------------------------

Modificaciones:
- Reciclado de puerto en streams TCP y UDP.
- Cuando se crea un stream UDP se intenta usar el puerto 60000 para no tener que indicarlo en las aplicaciones LDA.
- Nueva propiedad para obtener la URL de la web de Control con las credenciales de acceso.
- Nuevo boton para abrir directamente la web de Control con sistemas EVAC Control.
- Nueva propiedad activestream en TCP y UDP para conocer el estado del stream.
- Nuevo evento que notifica excepciones de conexion en el cliente TCP.
- Constructor sobrecargado para indicar el puerto a usar (con fallback a puerto libre).

Correcciones:
- Funcion estatica para comprobar si un puerto TCP esta en uso (evita conflictos al asignar puertos).


Version 1.0.0.20 - 2024-12-17
-----------------------------

Modificaciones:
- Tras desconectar de EVAC Core se vuelve a la ventana de seleccion de Cores sin necesidad de volver a iniciar sesion.
- El mensaje de "connection lost" se muestra ahora con MessageBox sobre el formulario principal.
- Nuevo evento que notifica todos los dispositivos descubiertos a la vez.
- Cambio de colores de la etiqueta de estado de conexion para que no parezca un boton.
- Actualizacion de la libreria FirebaseClient con peticion de fecha de expiracion.

Correcciones:
- Anadido try/catch en la funcion de copiar el endpoint.
- Cuando se pierde la conexion con un sistema, se vuelve a la ventana de seleccion de sistemas (no a la de login).
- Si un dispositivo desaparece del discover se elimina automaticamente de la lista.


Version 1.0.0.0 - 2024-08-06
----------------------------

Modificaciones:
- Cambio de nombre de la aplicacion a "Evac Cloud Connect".
- Interfaz dividida en Login, Seleccion de Sistemas Core y Conexion con el sistema Core.
- Discover de dispositivos en la red LAN del sistema Core, conexiones UDP remotas con NEO y conexion SSH con el Core.
- Implementado el "tunel" TCP (rpc SendTcpData) para conexiones SSH con el Core.
- Soporte para multiples conexiones TCP simultaneas con colas de envio por cliente.
- Autenticacion ampliada con perfiles de aplicacion (solo se da acceso a Installer o superior).
- Politica de reintentos para fallos transitorios en gRPC.
- Boton para abrir la web de configuracion del sistema eCore (visible solo con perfil Installer o superior).
- Opcion "Copy Connection Endpoint" en menus contextuales.
- Campos informativos del modelo del sistema eCore conectado.
- Nuevo Discover especifico para EVAC Cloud Connect.
- Indicador en la barra de titulo si la version es beta o debug.
- Actualizacion de proyectos a .NET Framework 4.8.1, generacion de ejecutable unico ofuscado y deshabilitada generacion de pdb release.
- Renombrado de UdpToGrpcClient a L4ToGrpcClient.

Correcciones:
- Corregida la reutilizacion de un stream UDP por distintas aplicaciones que conectan con la misma IP.
- Correcciones en cierre de aplicacion para liberar correctamente el endpoint en la cloud.
- Correccion en el calculo de la expiracion del token de sesion.
- Correccion para no abrir un stream adicional innecesario al iniciar el tunel TCP de SSH.
- Correcciones en la deteccion del estado de conexion (LastConnectionDate y HeartBeatConfig).
- Correccion de errores de referencia nula en DiscoverPlusTask.
- Mensaje de error de autenticacion si se obtiene perfil "none".
