Use split First/After queries for chat sessions paged endpoint
Addresses empty Chats tab by dispatching to ****************
Raise client read timeout to 120s for long messages
LibreTranslate runs CPU-only argos models — a paragraph-length chat message takes 20-30s to translate, and longer ones can push past 60s. The 8-second read time...
Acompanhe o chat de suporte público por sessão GUID em Redes
Visitantes de marketing usam /ws/public-chat-native sem membroId; tickets ainda Referência ao membro de substituição da organização como solicitante. PRESENÇA ...
Aumente o TTL de 90s para 300s para evitar falsos OFFLINEs na frenagem de tabulações
Expandir a verificação do repositório JPA para incluir o pacote de comércio
A nova biblioteca da Kamo-compartilhada traz consigo que exige **************************** (com.kamo.z.commerce partilhado). MediaService apenas digitalizou do...
Restaurar a importação do HashMap no ChatWebSocketController
O refator anterior removeu a importação do HashMap, mas a manipulação método ainda constrói um HashMap para a carga útil do evento de digitação, causando a comp...
Proativamente criar consumidor NATS na criação de sessão para evitar perda de mensagem
Anteriormente, o consumidor de push NATS JetStream só foi criado quando um cliente STOMP enviado /app/chat/subscribe. Com a Política de Entrega. Novo, quaisquer...
Fornecer o tema de transmissão do núcleo NATS
Match SecurityService core publica: subscreva-se com o Dispatcher em security.theme.provision.* em vez de JetStream (stream só cobre chat).
Use PublicChatVisitor displayName para o solicitanteName nos tickets de visitante
Solicitador de código rígido de tickets iniciado pelo visitante para o membro do sistema org, então O DTO estava emergindo o nome do proprietário do org na colu...
Erro de compilação no GeoLookupService e adicionar NATS publicar para mensagens de agente
- Corrigir o tipo opcional vs lista de descompasso em ********************** - Injectar NatsMessageService no MediaController - Publique no chat.session.{guid} ...
Real-time chat delivery, message sides, notifications, and name sync
- Keep NATS subscription alive on client unsubscribe to avoid breaking agent real-time delivery - Tag visitor messages with messageType=VISITOR_MESSAGE in getMe...
Marcar mensagens de visitante como tipo VISITOR MESSAGE, adicionar remetenteName para obter mensagens
- PublicChatService: set messageType=VISITOR MESSAGE para que o frontend possa distinguir visitante ecoa das respostas do agente sobre o tópico STOMP - MediaCon...
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...
Adicione voip.> a assuntos de fluxo NATS e manuseie IlegalStateException em VoipStompRelayController
O fluxo NATS só cobriu chat.> Então, assinando voip.> lançado Excepção ilegal do Estado ([SUB-907] Sem fluxos correspondentes). Voip adicionado.> para os sujeit...
Manter a referência de assinatura VoipStompRelayController e adicionar PreDestroy
Aceitar *** do parâmetro de consulta para a autenticação WebSocket de subdomínio cruzado
Ler primeiro o ID *** de ?***= parâmetro de consulta, recuando para Biscoito. Isso permite que o frontend em internal.kamocrm.com para autenticar Conexões WebSo...
Lidar com a vinculação do consumidor NATS velho com a repetição do consumidor único
- Extrair manipulador de mensagens para o método createNatsMessageHandler() - Adicione lógica de repetição com nome de consumidor único quando "Consumidor já vi...
Route WebSocket através de Traefik na porta 443
- service.yaml: corrigir porta 80→8443 para combinar porta de escuta real do pod - ingressroute.yaml: use scheme https + porto 8443 para infra- estrutura - serv...
Usar DNS interno de cluster para conexão NATS
Alterar URL NATS padrão de WireGuard IPs (100.64.x.x) para nats.kamo.svc.cluster.local para o servidor local. Nós remotos (k0m1, k2m1) permanecem em IPs WireGua...
Tornar o certificado TLS opcional na implantação do MediaService
- Adicionar opcional: true to wildcard-kamocrm-com - Atualizar cert-converter init recipiente para lidar com o certificado em falta graciosamente
Adicionar configuração Buildx com configuração de registro inseguro para resolver erros de autenticação 401
Melhore o tratamento de mensagens de iniciação de chamada e pesquisa de membros - Adicione o registro extensivo para mensagens de iniciação de chamada - Simplifique a lógica de busca de membros da MediaSession - Corrigir o erro getSessionId() na criação de sessão de Janus
Use o método getUsernameAlias() em vez do método getName() inexistente no Membro
Adicionar apiSecret à resposta de configuração WebRTC para a autenticação do Janus
Desabilitar CSRF para os terminais /ws/** e simplificar a configuração de segurança para corrigir erro do SockJS /ws/info 405
Permitir explicitamente que os métodos GET/POST/HEAD para /ws/** endpoints corrigir SockJS /ws/info 405 erro
Remover chamadas de método inválidas causando erros de compilação (getId on MediaSession, getStatusCode on ServerHttpResponse)
Adicionar middleware WebSocket e ServidoresTransport para IngressRoute
- Adicionado middleware media-websocket-upgrade para cabeçalhos de atualização WebSocket - Adicionado mídia-websocket-transport para desativar HTTP/2 (WebSocket...
WebSocket live message delivery - disable ChatMessageHandler subscription, enhance logging
- Disabled ChatMessageHandler subscription to chat.session.> that was consuming messages without forwarding to WebSocket - Enhanced WebSocketConfig logging to t...
WebSocket persistent connection with aggressive keepalive
Idle timeout set to 0, heartbeat 20s, disconnect delay 30s, match frontend timing
Hardcode SSL settings in ConfigMap for production
- Removed environment variable placeholders - Hardcoded port 8443, SSL enabled, keystore path - Fixes Spring Boot not resolving env vars correctly
Correct Spring Boot SSL environment variable names
- Changed SSL_ENABLED to SERVER_SSL_ENABLED - Changed SSL_KEY_STORE to SERVER_SSL_KEY_STORE - Changed SSL_KEY_STORE_PASSWORD to SERVER_SSL_KEY_STORE_PASSWORD - ...
Use SSLHostConfig API for Tomcat SSL configuration
- Use SSLHostConfig and SSLHostConfigCertificate (correct Tomcat API) - Configure certificate via **************** - Fixes compilation errors with setAttribute/...
Use setAttribute for Tomcat SSL configuration
- Changed from setKeystoreFile/Pass/Type/Alias to setAttribute - Tomcat 10+ uses setAttribute for SSL properties - Fixes compilation errors
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.