Rechaza agentes de ventas de cross-org; ensancha la aviación de avión de avión
salesAgentId se mantuvo desde el cuerpo de solicitud sin control, por lo que un cross-org o Agente id de agente colgante podría almacenarse en una WebChatIntegr...
Excluir a los miembros no ACTIVE de la participación y enrutado de chat
Un miembro no ACTIVE **************** no debe aparecer como, o ser objetivo como participante en chat en vivo. Adelera cada ruta de chat en la lib compartida **...
Resolve miembro del sistema de chat público per-org (a alias snadjafinia codificados de gota)
crearSupportSession, crearPublicTicket y la notificación del propietario Los ayudantes resolvieron al "miembro del sistema" de la org a través de un codificado ...
Deja de poner contenido de mensaje en correos electrónicos de mensajero perdido
Quitar el cómputo de vista previa de mensaje, el libro de libro de texto PREVIEW write, y el messagePreview template variable; suelte la preferencia de vista pr...
Bandas persististas de material programado vía actualización específica
Misma desprendida huérfanaE de expulsiónEje de eliminación como el oleoducto de conversión: el barrido sin cabeza Tenía un ImgDat desprendida y guardaba en casc...
Envuelva grabar la carga para que MediaService compile
MinIOStorageService.upload lanza una Excepción comprobada que ingiere () ninguno de los dos atrapadas o declaradas de construcción de la rotura de construcción ...
MeetingParticipant.isGuest() (fue getGuest, no compilará); volver a señalar a endpoint genérico
MeetingParticipant expone es Guest() (primitive boolean getter), no getGuest(). También apuntar la llamada de transcribe resumen en el compartido /api/conversio...
Participantes invitados persistas, imponen MANAGE-MEET-SETTINGS, dejan caer la ruta de doble invite
- crearMeeting: los miembros invitados son identificaciones numéricas de copo de nieve, no de cuerdas UUID Enrutarlos a través de longvoTosUUID como el creado...
Utilícelo MinIO servicio DNS; gota desprecación WireGuard/CGNAT IPs y k2m1/k0m1 retirado
Publica evento NATS CREATE tras transacción comprometerse a arreglar carrera de fijación de imagen
El mensaje NATS fue publicado dentro del cuerpo de la "Transacción", lo que significaba Los destinatarios podrían recibir el evento CREATE y solicitar la imagen...
Serializar los accesorios en el historial de relés y mensajes de WS; permite envíos solo de apego
Tres errores arreglados: 1. ChatSessionSubscriptionManager estaba construyendo el mensaje STOMPMap manualmente y omitiendo accesorios, sourceLanguageId, rea...
Arregla NPE en getChatSessions from Map.of() rechazando null nextcoder
java.util.Map.of() lanza NullPointerException cuando el próximocoder es nulo (no más páginas). Sustituir por HashMap que acepte valores nulos. También envolver ...
Arregárquese la carga 500 (embRecordState de la falta) y pestaña de chats vacíos (elen elenco de Timestamp)
Defecto A: ChatAttachmentService.upload omitido ************* causando una violación de NO NULL en imgs.is-active. Añadida el registro por defectoEstado. ChatAt...
Prefiere usuarioAlias over User.name en memberDisplayName
Los interruptores muestran la prioridad del nombre a: Member.usernameAlias ..name . User.alias . Usuario.username. También incluye la corrección de envío de con...
Utilice split Primera/Después de consultas para sesiones de chat página punto final
Direcciones vacías de chats pestaña por despacho a *************
Elerar tiempo de espera de lectura al cliente a 120s para mensajes largos
LibreTranslate ejecuta modelos de argos solo para CPU y un mensaje de chat de longitud de párrafo toma 20-30s para traducir, y los más largos pueden superar los...
Rastrear chat de apoyo público por sesión GUID en Redis
Los visitantes de marketing utilizan /ws/public-chat-native sin memberId; tickets still referencia el miembro del lugar de org como solicitante. Increment PRESE...
Expanda el escaneo del repositorio de JPA para incluir paquete de comercio
La nueva biblioteca compartida de kamo trae **************** que requiere **************** (in com.kamo.z.shared.commerce). MediaService sólo escaneado donotmod...
Restaurar importación de HashMap en ChatWebSocketController
El refactor anterior eliminó la importación de HashMap pero el mangoTyping método todavía construye un HashMap para la carga útil del evento de mecanización, ca...
Crean proactivamente consumidor NATS en creación de sesión para evitar pérdidas de mensajes
Anteriormente el consumidor de presión NATS JetStream sólo se creó cuando un cliente STOMP enviado /app/chat/suscribirse. Con DeliverPolicy.Nuevo, cualquier men...
Disposición temática de relevo del NATS básico
Match SecurityService core publicar: suscribirse con Dispatcher on seguridad.tema.provision.* en lugar de JetStream (corriente solo cubre chat).
Utilíceo PublicChatVisitor displayName para requestorName en las entradas de los visitantes
Billetes iniciados por visitante solicitud de código duro para el miembro del sistema org, así que el DTO estaba apareciendo el nombre del propietario de la or ...
Construye error en GeoLookupService y añadir NATS publicar mensajes de agente
- Asechar opcional vs List distch in **************** - Inject NatsMessageService en MediaController - Publicar para chat.session.-guid después de que el agente...
Entrega de chat en tiempo real, lados de mensajes, notificaciones y sincronización de nombres
- Mantenga viva la suscripción NATS al cliente darse de baja para evitar romper la entrega en tiempo real agente - Etiquetar mensajes de visitantes con messageT...
Etiquetar mensajes de visitante como tipo VISITOR-MESSAGE, agregue SenderName a los mensajes GET
- PublicChatService: set messageType=VISITOR-MESSAGE para que frontend pueda distinguir Reflexos del visitante de las respuestas de los agentes sobre el tema ...
Three support/chat issues — NATS relay, auto-popup, topic fallback
1. Switch SupportNotificationService and SupportStompRelayController from JetStream to core NATS — the CHAT_MESSAGES stream only covers chat.> so JetStrea...
Write contact form description as chat message on public ticket creation
The description was only stored on the ticket entity and never appeared in the chat window. Added writeTextMessage() helper and call it after the system event s...
Add debug logging and robust rights parsing for webinar controller
Adds info/warn logging for session data and rights on POST /types to diagnose 403 errors. Also adds fallback parsing for rights stored as JSON strings in Redis ...
Resolve org theme backgrounds not appearing in meet virtual backgrounds
- Add domain-based theme URL resolution for internal K8s service-to-service calls - getPublicBackgrounds now accepts optional domain param to derive correct the...
Upload meet backgrounds to public MinIO bucket with hash-based naming
Was uploading to private 'imaging-meet-recordings' bucket via **************** which caused: - MinIO region mismatch errors on the primary node - Connection tim...
Return serialization-safe Maps instead of raw JPA entities in MeetConfigController
All config/background endpoints were returning raw JPA entities with @ManyToOne(fetch=LAZY) Organization references. Jackson failed to serialize the Hibernate p...
Remove duplicate endpoints from MeetController, add org-themes to MeetConfigController
MeetConfigController already handled config/background endpoints. The duplicate endpoints in MeetController caused ambiguous mapping. Added org-theme background...
Update health probes to HTTP port 80 to match new server config
Startup, readiness, and liveness probes were still pointing to port 8443 with HTTPS scheme, causing pod restart loops.
Switch MediaService to HTTP port 80 — TLS termination at Traefik
Internal cluster traffic doesn't need HTTPS. Traefik handles TLS for external clients. This aligns MediaService with all other services.
Send chat invites to correct WebSocket topic /topic/chat/incoming/{memberId}
Was publishing to /topic/chat/member/{id} but kamo-internal subscribes to /topic/chat/incoming/{id}. Also fixed Member entity field access **************** inst...
Añadir voip. a los sujetos de transmisión NATS y manejar IllegalStateException en VoipStompRelayController
La corriente NATS sólo cubrió chat. . . . . . . . . . . . . . . . IllegalStateException ([SUB-90007] Sin flujos a juego). Añadido voip. a los sujetos de la cor...
Mantenga VoipStompRelayController suscripción a suscripción a la conserje de la venta y añadir PreDestroy
Acepta *** de la consulta param para cross-subdomain WebSocket auth
Leer *** ID de ?***= parametro de la consulta primero, cayendo de nuevo a Cookie. Esto permite que el frontend en internal.kamocrm.com autenticen Conexiones Web...
Maneda de la unión al consumidor NATS con un tratamiento único de consumo
- Extracto del manipulador de mensajes en el método createNatsMessageHandler() - Añadir la lógica de repintar con nombre único del consumidor cuando "Consumidor...
Route WebSocket a través de Traefik en el puerto 443
- service.yaml: arreglar el puerto 80-8443 para que coince con el verdadero oporto de la cápsula - ingresssroute.yaml: sistema de uso https . puerto 8443 para b...
Utilíce el DNS interno de clúster para la conexión NATS
Camete la URL NATS predeterminada de WireGuard IPs (100.64.x.x) a nats.kamo.svc.cluster.local para el servidor local. Nodos remotos (k0m1, k2m1) permanecen en W...
Hacer opcional el certificado TLS en despliegue de MediaService
- Añadir opcional: fiel al volumen secreto wildcard-kamocrm-com - Actualizar el contenedor init de cert-converter para manejar el certificado falta de certifica...
Añadir la configuración de Buildx con la configuración de registro insecure para resolver errores 401 auth
Use getUsernameAlias() en lugar de método getName (en inglés) en Member
¿Te gusta lo que ves envío?
Comienza con el plan gratuito y vuelve a leer esta página dentro de un mes para ver cómo funcionan las funciones y los beneficios.
