Estructura correcta de JSX - añadir la etiqueta de cierre faltante de la etiqueta
Evite el movimiento de la fila de la mesa y la redibujación en la selección de la casilla de verificación
- Desactivar animateRows para prevenir el movimiento visual cuando se seleccionan las filas - Actualizaciones del estado de los lotes en onSelectionChanged usin...
Camarar el icono del estado de Grim de raven.svg a raven.ico
- Actualizar la ruta del icono desde /icon/raven.svg a /icon/raven.ico - Mantener el filtro de color rojo (-ef4444) aplicado al icono - Tamaño de iconos queda 1...
Asegúrese de que el icono de raven.svg se muestre correctamente para el estado de Grim
- Verificar ruta /icon/raven.svg correctamente referencias públicas/icon/raven.svg - Añadir flexión de visualización para garantizar una correcta representación...
Arreja una columna de contacto alineación vertical y agregue las casillas de verificación a las filas clavadas
- Añadir altura: 100% y justificarContenido: centro a Columna de contacto para la alineación media vertical - Agregue manualmente entrada de casilla a IdRendere...
Mejorar el espaciado de campo de contacto, la alineación del estado y las filas fijas
- Reducir la brecha entre nombre y correo electrónico en el campo de contacto de 0.25 a 0 (con ajustes de líneaHeight) - Alinear verticalmente el contenido de c...
Insignia urgente de centro vertical en Columna de contacto
- Cambiar alineaciónItems de 'flex-start' a 'centro' para alineación vertical - Eliminar mt: 0,25 margen-top ya que ya no es necesario con la alineación del cen...
Resolver errores de ESLint en LeadManager
- Cambiar el 'que se filtrado' a 'const filtrado' (prefer-const) - Reemplazar tipos de "cualtos" con la interfaz PinnedLead adecuada - Eliminar la importación d...
Restaurar la conexión de arrastre funcionalidad entre elementos de tarea
- Función de inicio fijoConnection para aceptar correctamente el parámetro answerIndex - Retrasada SVG para líneas de conexión (tanto existentes como arrastrado...
Resolver error tipo descriptivo para el nodo retorableRef
- Nodo actualizadoRefs Tipo de mapa para aceptar RefObject-HTMLDivElement . null . - Asobesión de tipo añadido al pasar el nodoRef al componente arrastrable - E...
Resolver encontrar errorDOMNode en la página de tareas de la página de React 19
- Nodo añadidoRef prop a reaccionar-dggable para evitar encontrar despreciados - Mapa de ref creado para almacenar refs para cada artículo arrastrable - Agregad...
Corre la disposición de botón y hacer botones laterales el doble de ancho
- Movió botón despejado a la derecha del botón de llamada - El botón del espacio trasero permanece a la izquierda - Ambos botones laterales (backspace y despeja...
Eliminar duplicado enMouseDeje prop en los botones de almohadillas de esfera
- Duo duplicado combinado enMouseDeje los manejadores en un solo manejador - Error de construcción de arreglar: No se permiten accesorios duplicados
Resolver errores de construcción en componentes de tuberías
- Uso de componentes de la agazapada: cambiado de elemento de la red xs=12o a tamaño de la cuadrícula = xs: 12 . (MUI v6 Grid2 API) - Importaciones de iconos in...
Simplifique getDisplayName para usar userInfo.usernameAlias directamente
- Eliminación innecesaria de la lógica de retroceso y los controles de error - Utilíza userInfo.usernameAlias directamente de los datos de sesión de *** - Sólo ...
Resolve "Welcome back" número de visualización de nombre de usuario en NavTop
- Corrojado getDisplayName() para mostrar sólo "ROFL" en errores reales, no durante la carga - Añadido manipulación del estado de carga para mostrar "Welcome ba...
Utilícese sesión pre-autenticada de OTKPreAuthFilter en getMyNetworks
- Error de 401 corregido comprobando la sesión pre-autenticada de OTKPreAuthFilter primero - OTKPreAuthFilter ya valida y consume OTK, por lo que el controlador...
Evite el registro automático en errores 401 en la página de la red
- Cambio de manejo de errores 401 para mostrar mensaje de error en lugar de redirecciones inmediatamente a /logout - Añadido botón de reinicio a la alerta de er...
Eliminar inválido enWebSocketClose y enWebSocketError de ClientOptions
- Retirado enWebSocketClose y enWebSocketError manejadores, ya que no son propiedades válidas de ClientOptions - WebSocket cierre y los eventos de error ya se m...
Muévete enWebSocketClose y enWebSocketError a opciones de constructor de clientes
- Moved onWebSocketClose y enWebSocketError de la asignación de propiedades a las opciones de constructores de clientes - Estos manipuladores deben definirse en...
Retirar el check de la propiedad 'activa' inválido de STOMP Client
- Choque desligadoRef.current.active check que no existe en el tipo de cliente - Usando sólo clientRef.current.connected que es la propiedad correcta
Reemplaza StompSubscription con Suscripción de la .stomp/stompjs
- Cambiado de importación de StompSubscription a Suscripción (nombre correcto de exportación) - Actualizado todas las referencias de tipo para usar Suscripción ...
Eliminar conexión inválidaTimeout propiedad de STOMP ClientOptions
- Conexión retirada Propiedad de Timeout que no forma parte del tipo ClientOptions - El tiempo de espera de conexión ya se maneja manualmente a través de connec...
Resolución Error de construcción de TypeScript en el componente LeadManager
- Error de tipo de ícono de chip fijo cambiando ReactNode a ReactElement - Elijo de las importaciones y accesorios no utilizados - Advertencia de dependencia de...
Habilitar autolleno automático gestor de contraseña en el formulario de inicio de sesión (3735)
Corre los atributos autocompletar correctos para permitir el autolleno del gestor de contraseña
Desactivar el botón de descarga cuando no hay datos disponibles
Desactivar el botón de descarga cuando no hay datos disponibles
Chat de desplazamiento automático hacia abajo en carga y nuevos mensajes
Rastree el conteo de mensajes anterior y despítese sin problemas cuando lleguen nuevos mensajes; despídese inmediatamente en la carga inicial o cuando no se min...
Frontend WebSocket persistencia - tiempo de backend del partido y reconexión más rápida
Heartbeat: 4s - 20s para el backend match, volver a conectar retraso: 5s -o 1s, añadir tiempo de conexión de 30s
WebSocket conexión persistente con agresivo keepalive
Tiempo de juego de 0, latidos del corazón 20s, desconexión retardo 30s, partido de tiempo frontend
Optimice el softphone para adaptarse a todo el contenido sin desplazarse a 680px de altura
CHATBOX HEIGHT: 550px - 680px (balance óptimo) PHONE DISPLAY: MinHeight reducido (100/75 - 85/65), relleno (14/16 -o 12/14) Llamadas: Todos los 9 botones - re...
Reducir la altura de ChatBox a 550px más cómodo
Cambiado de 85% de viewport (750-850px) a 550px fijo para mejor UX Los controles de llamadas de WebRTC permanecen completamente intactos y funcionales
Hacer el teléfono blando totalmente visible sin desplazamiento - diseño compacto completo
CHATBOX HEIGHT: - Cambiado de 600px fijo al 85% de la altura del puerto de visión - Usa Math.floor(window.innerHeight * 0.85) para el tamaño sensible - Proporci...
Elimina las barras de desplazamiento horizontales y aumenta la visibilidad de sucárfono
LAYOUT FIXES: - Aumente DOCKED-HEIGHT de 480px a 600px para un mejor espacio vertical - Añadir restricciones explícitas de anchura (minWidth, maxWidth) a Softph...
Eliminar la comprobación conectada y añadir registro de depuración para la activación de STOMP
El cliente STOMP no se estaba activando porque la comprobación conectada lo impedía. Añadidos registros de depuración para diagnosticar.
Activar cliente STOMP sólo después de la apertura de SockJS
Corrección de errores críticos: El cliente STOMP estaba siendo activado antes de que SockJS se abriera, causando desconexión inmediata. Ahora espera a SockJS en...
Habilitar los transportes de Retro motivo de SockJS para la conexión WebSocket
Permita la transmisión xhr y xhr-polling como recompra si WebSocket actualización falla.
Retire la propiedad inválida check in use en usoChatWebSocket
El tipo de cliente de "stomp"/stompjs no tiene una propiedad "activa". Elijugado el cheque inválido ya que cliente.activate( se llama inmediatamente después de ...
Espera a que SockJS se abra antes de activar cliente STOMP
- Corre la condición de la carrera donde el cliente STOMP se activó antes de que la conexión SockJS estuviera lista - Mueve cliente.activate() a SockJS en la de...
Ajustes de Hardcode SSL en ConfigMap para la producción
- Bordeadores de lugares variables del entorno extraído - Puerto de codificado 8443, SSL habilitado, camino de teclado - Arregiza la Bota de Primavera no resolv...
Correcto Spring Boot SSL nombres de variables de entorno
- Cambió el SSL-ENABLED a SERVER-SSL-ENABLED - Cambió SSL-KEY-STORE a SERVER-SSL-KEY-STORE - Cambiado de SSL-KEY-STORE-PASSWORD a SERVER-SSL-KEY-STORE-PASSWORD ...
Ruta ALL WebRTC API solicita al puerto 8443
- Actualizado todas las rutas de la API WebRTC para usar medios. - Ya no usas Traefik para endpoints WebRTC - Apareces multimedia API y configuración de WebSock...
Ruta ALL MediaService solicita al puerto 8443 (bypass Traefik)
- Actualizado todas las rutas de la API de medios para usar medios. .domain-:8443 - Ya no usa Traefik para MediaService - Tanto API como WebSocket van directame...
Utilícelo SSLHostConfig API para la configuración de Tomcat SSL
- Utilícelo SSLHostConfig y SSLHostConfigCertificate (correcto Tomcat API) - Configurar certificado a través de ************* - Arregija errores de compilación ...
Usar setAtributo para la configuración de Tomcat SSL
- Cambiado de setKeystoreFile/Pass/Type/Alias a setAttribute - Tomcat 10o usa setAtributo para propiedades SSL - Arregija errores de compilación
Ejecute MediaService en los puertos BOTH 80 (HTTP API) y 8443 (HTTPS WebSocket)
- Servicio revertido.yaml e ingressroute.yaml para usar el puerto 80 - Elipulsado SERVER-PORT y SSL-ENABLED env vars - Añadido DualPortConfig para añadir progra...
Conéctate al puerto 8443 (external) que se dirige a NodePort 30843
- Adelante de router externa 8443 a k1m1 NodePort 30843 - Navegador usa media.kamocrm.com:8443 - NodePort interno es 30843 (Objese Kubernetes válida gama)
Como lo que ves enviaste?
Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.