Coloque o tipo de sessão no frame de atividade também
A transmissão não lida/ATIVITY é publicada para cada tipo de sessão e transportada não indicação da qual. A lista de chats, sem nada para continuar, digitou um ...
Diga ao cliente que tipo de conversa chegou uma mensagem
Cada membro de uma sessão de mídia recebe a notificação de mensagem de entrada, e atribuir um ticket de suporte faz do agente um membro da sessão desse ticket. ...
AUTO ASSIGNMENT, e levantar uma conversa atribuída na tela do agente
Uma solicitação de chat e um ticket enviado são a mesma unidade de trabalho; A estratégia é a única coisa que decide como é entregue. A O caso especial PRE TICK...
Ler uma sessão já não a renova
A expiração no registro Redis É a sessão; quando caduca o membro é Saiu. Este serviço detém sua própria cópia do KSessionService contra isso Chave compartilhada...
Um chat ao vivo é reivindicado através do popup, nunca alocado
Rotear pedidos de chat através de round-robin foi o modelo errado e quebrou o O que foi feito para consertar. Um ticket atribuído sai da fila de pedidos (Suppor...
Parar falhas de atribuição destruindo o ticket que os desencadeou
O roteamento de um novo ticket foi executado dentro da transação de criação, então qualquer coisa foi atingida rolou o bilhete de volta com ele e o membro pedin...
Roteie uma solicitação de chat através da estratégia de atribuição do tópico
Um pedido de chat de suporte é arquivado como um PRE TICKET, e createTicket pulou responsabilidade para aqueles de imediato. O guarda foi escrito para o widget ...
Reconstruir contra a biblioteca compartilhada @Lob LONGVARCHAR corrigir
O dialeto PostgreSQL de Hibernate leu as colunas @Lob String como OIDs via getLong(). Afeta notas, contatos, calendário, tokens de OAuth, senhas de IMAP, campan...
Ponto em YugabyteDB e usar PostgreSQLDialect
O BarataDB foi substituído pelo YugabyteDB. strings de conexão se movem de baratadb-public:26257 para yb-tserver-service:5433, e o dialeto Hibernate desde o Pos...
Restaurar terminações CRLF no KSessionService
O commit anterior reescreveu o arquivo com LF, transformando uma mudança de 15 linhas em uma 577 linhas de diferenças de ficheiro inteiro. O conteúdo está inalt...
Parar de renovar o *** TTL compartilhado para usuários inativos
Este serviço mantém sua própria cópia do KSessionService, e ele deslizou o TTL em Cada leitura. Gating SecurityService sozinho não fixou nada: kamo-internal pon...
Aceitar uma reivindicação BLAKE3 somente assim dedup é mais rápido do que carregar
O endpoint da ligação exigiu ambos os hashes. Um navegador não tem rápido SHA3-256, então prová-lo já tinha um arquivo de 358 MB levou ~20 segundos contra um up...
Anexar um arquivo já armazenado sem enviá- lo novamente
Encaminhar um vídeo de 2 GB para três colegas custa três uploads completos. Armazenamento os deduplicaram em um objeto, mas somente após cada transferência ter ...
Falha um carregamento morto em minutos em vez de o segurar durante uma hora
connectionUploadTimeout é o SILENCE tolerado entre leituras, não um orçamento para o Toda a transferência. Configurando-o para uma hora para 'match Traefik' con...
Pare o tempo limite de conexão dos anos 60 do Tomcat matando um upload longo
Um anexo de chat GiB 2 falhou após quase quatro minutos de transferência bem sucedida com MultipartException envolvendo um SocketTimeoutException nu, e o membro...
Aceitar 3 anexos GiB transmitindo-os para o armazenamento
file.getBytes() não pode representar um upload tão grande — um array Java para apenas acima de 2 GiB — assim, cada passado de apego que morreu em um OutOfMemory...
Nomeie o verdadeiro dialeto Barata, e reporte a elegibilidade do agente honestamente
Captura OptimisticLockException, o tipo 40001 realmente envolve como
Resenha da 3a ronda: Hibernate-core teste LockAquisiçãoExcepção (para o que SQLState 40001 converte) contra quatro tipos específicos em ordem, nenhum dos quais ...
Pegue o tipo de exceção que o conflito de reivindicação realmente lança
Round 2 correção de revisão: o nível de instrução 40001 (o caso comum, detectado inside executeUpdate() em vez de no commit) **************************** via Hi...
Espelho Maven Central e tentar novamente, então um byte ruim pára de matar a construção
A correção de inicialização não pôde enviar: a compilação morreu resolvendo byte-buddy com "tag mismatch", que lê como um artefato faltando, mas é um download c...
Retornar 409 em cada corrida de reivindicação perdida, adicionar caminho de reivindicação do gerente
Fixação da revisão da primeira ronda para o objetivo de aceitação da alegação: - uma corrida perdida ordinária (a perda é ClaimablePor já falso pós-compromisso)...
Digitalizar os repositórios de e- mail DepartmentService agora precisa
Crash MediaServiceLooped on every pod since shared-lib 1.5.0: DepartmentService is a @Service, então o wildcard @ComponentScan("com.kamo") o constrói aqui, quer...
Decida a corrida de reivindicação de ticket com uma atualização condicional
GET /types/{typeId}/slots para que o editor de configurações possa listar slots
As configurações UI sempre obteve este caminho, mas apenas POST/PUT/DELETE foram mapeado, então a aba Fendas de Disponibilidade tem um 405 e renderizado vazio. ...
Aceitar o filtro do provedor de linha do tempo como parâmetros repetidos
O cliente web enviou ?providers=facebook,x como um valor CSV. Uma vírgula numa consulta VALUE tem que viajar como% 2C, e um salto que re- codifica transforma is...
Enviar e- mails perdidos para a conta do utilizador, não para a caixa de correio org
O aviso existia para dizer "você tem uma mensagem esperando, assinar e ler", e estava sendo entregue na caixa de correio esta organização designou o membro — qu...
Dar a cada agente um crachá ao vivo em vez de um proprietário uma contagem não lida
O crachá de navegação e/support?tab=tickets responderam a diferentes perguntas. A página lista todos os tickets na org; o crachá contou mensagens de bate- papo ...
Deixar o cliente ENVIAR para tópicos protegidos e reparar a construção no HEAD
Duas coisas, ambas as quais impedem o serviço de mídia principal de transporte. 1. main não compila. MediaController:1361 chamadas Que não existe. o método no ...
Retransmitir a contagem do pacote legal e guarda por membro SUBSCRIBES
legal.pacotes.> -> **************************** núcleo NATS, sem fluxo – o mesmo formato SuporteStompRelayController e PlataformaStompRelayController já use. to...
Anuncie uma mensagem uma vez, quando estiver completa
Ambas as chamadas que terminam de construir uma mensagem após a linha ser salva agora tell createMessage para não anunciar: MediaController fixa as imagens e pu...
Guarda os anexos através do gasoduto de desdup em vez de um objecto por envio
Os anexos escreveram seu próprio objeto "<imgId>/<fileName>" em cada upload, ignorando o loja inteiramente endereçada ao conteúdo — o mesmo logo-draft.png anexa...
Reconstruir para o balde de imagens unificado
Pega na biblioteca kamo-shared 3045cc3: ImageAssocType.getBucket() agora retorna o single "imagem" balde para cada associação, então um arquivo deduplicado é ar...
Eventos da plataforma Relay SecurityService para STOMP
SecurityService possui a plataforma-superfície do administrador – configuração do sistema, DNS provisionamento, sincronização comercial — mas não tem um ponto f...
Reconstruir contra a biblioteca partilhada com kamo 8f3c1ec
Pega a correção da piscina de entrada: LeadService.createLead agora sinaliza leads não de propriedade com requirementAtribuir para que os leads importados sejam...
Capture o comando de demonstração antes da etapa de reserva
O formulário demo do site de marketing recolheu nome, e-mail, empresa, tamanho da empresa, indústria e uma mensagem, então avançou para agendamento sem contar a...
Abstração do provedor de reunião com Zoom e Microsoft Teams
As reuniões foram Kamo Meets por construção — MeetService persistiu em uma sala Meet Nome e mais nada. Isso introduz a abstração e dois provedores remotos atrás...
Persist MediaService PHI access log
As leituras das mensagens de chat foram gravadas através do gravador padrão Slf4j, que coloca o percurso §164.312(b) num fluxo de 14 dias de registo contra uma ...
Digitalizar os repositórios MFA partilhados
O MfaEnrollmentService é um @Service na biblioteca compartilhada com kamo, então o wildcard @ComponentScan("com.kamo") nesta aplicação constrói-se isto ou não s...
Record chat message reads on the endpoints that return bodies
Sending a message left a row; reading one left nothing. Every chat, support and social thread on the platform renders from a handful of endpoints here, and none...
Realizar trabalhos pendentes em curso
Está encenado e comprometido como-é assim nada é deixado descompromissado na árvore de trabalho. 3 arquivos alterados, 353 inserções(+), 4 deleções(-)
Endureça o download do kubectl contra a saída flácida [skip ci]
dl.k8s.io sobre a saída do corredor diminui intermitentemente no meio da transferência: curl: (56) OpenSSL SSL read: a descriptografia falhou ou o mac de regist...
Montar o certificado ao vivo por host em vez do segredo wildcard expirado
O container init certificado-conversor construiu sua chaveria PKCS12 de wildcard-kamocrm-com, um legado multi-SAN segredo que cert-manager órfão quando o seu ce...
Levar a conversa da IA para o fio humano na entrega
Cria ou reutiliza a sessão de suporte, copia a transcrição de IA como um sistema evento, roteia, e diz ao visitante honestamente o que acontece a seguir. Confi...
Aceitar o acesso autorizado pelo agente a uma linha aberta de mutuário
O agente da AIService chama. Sem ele o todo caminho de saída terminado em um 404 gravado - o portão autorizou um toque, o mensagem foi composta, e não havia ond...
Rejeitar agentes de vendas cross-org; aumentar o busting cache bootstrap
vendasAgentId foi persistido a partir do corpo pedido sem verificação, por isso um cross-org ou O ID do agente pendente pode ser armazenado numa WebChatIntegrat...
Atribuir um agente de vendas por canal + relatar disponibilidade de LO
- WebChatIntegration CRUD threads salesAgentId (null limpa a atribuição) - lo-presence agora retorna disponibilidade do membroStatus ao lado on-line, por isso o...
Verifique o token de roteamento, persista no leadUid, reatribua o chat em movimento de lead
- createSupportSession toma um roteamento assinadoToken (não preferidoAgentMemberId); verificado via ChatRoutingTokenCodec + cluster internal.auth.secret, aplic...
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.