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...
Excluir membros não-ACTIVE da participação no chat e roteamento
Um membro não-ACTIVO não deve aparecer ou ser um participante de chat ao vivo. Gate cada caminho de conversação na lib compartilhada ***************************...
Tornar WebChatIntegration create() @Transactional (sem chave órfã na falha do salvamento de integração)
ID de integração de web-chat de instantâneo no visitante de suporte + ticket
Resolve o WebChatIntegration criandoKeyHash (inabilitado-filtrado, consistente com a resolução bootstrap()/AI-prompt) uma vez dentro createSupportSession e cari...
Resolução de configuração de bootstrap de conversas públicas
Adiciona um GET interno ************* que resolve um WebChatIntegração por X-Public-Chat-Key-Hash e retorna sua resolução configuração do design/comportamento (...
Fio opcional mediaservice-push secret para credenciais FCM / APNs
Monta a conta de serviço FCM JSON + APNs .p8 a partir de um 'mediaservice-push' opcional secreto em /etc/kamo/push e define o APNs chave-id/team-id do mesmo seg...
WebChatIntegração CRUD (chave de menta + integração, org-scoped)
API de gerenciamento voltado para org para a guia de configurações de web-chat da Fase 2. Ligado criar, conta o PublicChatApiKey subjacente (mesma abordagem cha...
Bust APIService cache de chaves imediatamente na chave pública-chat alternar/deletar
Persistir na criação de hash chave no visitante de bate-papo público + ticket para atribuição
Como o que vês no transporte?
Tudo isso chega em seu espaço de trabalho por conta própria. Comece no plano gratuito e leia esta página novamente em um mês.
