Adicionar o registo ao Endpoint Antecedente
Log org/index, informações de arquivo, userId, decisões de autenticação e estadiamento MinIO chave para rastrear porque uploads de fundo não estão aparecendo no...
Adicionar o registo à rota 'proxy' de upload- background
Log org/index, nome do ficheiro/tamanho/tipo e estado de resposta a montante para diagnosticar por que uploads de fundo não estão atingindo APIService.
Adicionar coluna de localização à grelha de dados do ticket
Leituras **************************** diretamente fora do SupportTicketDTO (agora instantâneo na entidade do ticket em tempo de criação — nenhuma viagem de ida ...
Armazenar geo no ticket na criação, soltar GeoLite lê
**************** agora captura o geo do visitante uma vez (via GeoLookupService) e persiste ip/país/cidade/subdivisão em O próprio SupportTicket. SuporteTicket...
Imagem geo do visitante na entidade do ticket
Adiciona VISITOR IP ADDRESS, VISITOR COUNTRY CODE, VISITOR COUNTRY NAME, VISITOR CITY, VISITOR SUBDIVISION colunas. Capturado na criação de tickets por isso os ...
Visitantes em massa e ignorar a procura GeoLite na lista
O endpoint da lista /api/support/tickets foi executado, por página de 20 linhas: - 20 chamadas. - 20 chamadas para GeoLookupService.lookup, cada uma das quais é...
Adicionar findBySessionGuidIn para carregamento a granel
Usado pelo endpoint da lista de bilhetes de suporte para obter todos os visitantes para uma página em uma consulta em vez de N separado findBySessionGuid chamad...
Passar a pasta para carregar o botão de repetição do Thread
loadThread leva (threadId, pasta); o botão retry error- state somente passou threadId, quebrando a construção kamo-internal. Coincidir com a chamada A assinatur...
Reconstruir para pegar o membro JsonIdentity Resolução de informações da biblioteca compartilhada com kamo
correção da biblioteca compartilhada com kamo b57d156 @JsonIdentityInfo(propriedade = "uniqueId") → "id" no Membro, resolvendo 400 erros no PUT /api/security/or...
Correct JsonIdentity Info property de 'uniqueId' para 'id'
Entidade membro declarou @JsonIdentityInfo(propriedade = "uniqueId") mas o o campo de chave primária real é chamado 'id'. Jackson atirou "não foi possível encon...
Adicionar /ws/public-chat-native WebSocket endpoint ao lado de SockJS
Regista um segundo objectivo STOMP sem o SockJS em /ws/public-chat-native assim que o frontend pode se conectar com um WebSocket nativo (brokerURL) sem precisar...
Remova a proteção SSR causando descompasso de hidratação; solte SockJS para WebSocket nativo
- Hero.tsx: remover o tipo de janela em torno do campo de partículas — campo de partículas já tem ssr:false assim que o guard produziu um servidor/cliente árvor...
Por-ticket não lido emblema + filtro 'Só mensagens novas'
- A lista de tickets mostra um crachá de bate-papo com a contagem não lida ao lado de ticket# sempre que a sessão tiver mensagens mais novas que as do agente úl...
A transmissão não lida conta para o agente na mensagem do visitante
Depois de um visitante enviar uma mensagem de suporte, push the latest unread-counts Carga para a lista de bilhetes do agente. Emblema e atualização do contador...
Incluir sessões SUPPORT TICKET na consulta de membros não lida
findChatMembershipsByMemberId agora retorna afiliações para CHAT e Tipos de sessão SUPPORT TICKET, por isso a conta não lida existente por membro infraestrutura...
Limpar os indicadores não lidos ao abrir a conversa
ThreadDetailView agora envia e-mail:folder-changed after markConversationRead sucessos para que MailButton refetches a contagem de crachás navtop caixa de entra...
Move CORS to Traefik via kamo-middlewares, remove in-app CorsFilter
The CorsFilter @Bean in the Spring app was silently not applying headers after WebConfig.java was removed. CORS is now handled entirely at the Traefik layer by ...
Use /public/{mainDomain}-{tld} path matching actual MinIO bucket layout
The getThemePath() was generating /domain/{tld}/{split}/kamosite paths that don't exist in MinIO — theme files live in the public bucket under kamocrm-com/, bad...
Quebrar a cadeia min- w- 0 para conter apenas o rolagem de e- mail na coluna do corpo
Adicionar min-w-0 ao recipiente exterior e conteúdo principal flex div para crianças flex não pode expandir para e-mail min- conteúdo largura, o que estava caus...
Hoist provedores acima ToolProviders
A mesma causa raiz que o guincho ChatWebSocketProvider: SupportTicketWindow chamadas E o ChatBox chama useUnread().markAsRead(), mas ambas as janelas renderizam...
Adicionar supressãoHydrationAviso e corrigir imagens de placeholder quebradas
supressorHydrationAviso em <html> previne erro de reação #418 causado pelo navegador extensões (por exemplo, traduzir, modo escuro) mutando atributos html entre...
Permitir o prefixo de / domínio/ caminho no tema IngressRoute for CORS
A configuração do tema no theme.kamocrm.com/domain/... não foi regras de rota existentes (apenas /public/ e /internal/ foram permitidas), então Traefik retornou...
Remover o CorsFilter duplicado e remover os cabeçalhos CORS no gateway
WebConfig.java definiu um segundo feijão CorsFilter competindo com o CorsConfig. java's feijão, arriscando duplicar cabeçalho escreve. Excluído para que apenas ...
Remover duplicado CorsFilter bean causando duplo cabeçalho Access-Control-Allow-Origin
O Feijão CorsFilter explícito causou um segundo filtro CORS ao lado da Primavera Suporte CORS incorporado da segurança (que usa CorsConfigurationSource). Ambos ...
Remover instruções de depuração console.log e adicionar rotas em falta
Remover todo o registro temporário de depuração adicionado durante o rastreamento do WebSocket ChatBox, TicketChat, MemberItem, ChatTool e useChatWebSocket; adi...
Impedir que o cabeçalho da mensagem expanda a coluna em endereços longos
A criança flex esquerda do cabeçalho não tinha min-w-0, por tanto tempo e-mail inquebrável endereços em From/To/Cc forçaram sua largura de conteúdo min a cresce...
Hoist ChatWebSocketProvider acima ToolProviders
ToolDock (e suas janelas de ferramenta como SupportTicketWindow → TicketChat) é montado dentro ToolProviders, que se senta ABOVE PresenceWrapper na árvore para ...
Soltar o DOM do Shadow no renderizador de e- mail para overflow-x-auto
Shadow DOM foi a causa raiz. Conteúdo de e-mail amplo (mesas de largura fixa) dentro da árvore sombra pintada após o hospedeiro sem contribuir para a caixa de l...
Alinhar o caminho de importação do ChatWebSocketContext para corresponder ao provedor
TicketChat e ChatNotificationListener importaram o contexto através do '@/app/contexts/...' pseudônimo enquanto PresenceWrapper (o provedor) importa através do ...
Console.log temporário para rastrear o caminho de assinatura TicketChat STOMP
Adiciona logs de console em todas as fases do pipeline de assinatura (fogo de efeito, guard pass, subscreva () call, attachSessionSubscription, client. subscrev...
Forçar a contenção da máquina com estilos inline + contém: layout
Overflow-x-auto baseado em classe no host sombra não estava ganhando de forma confiável contra a sombra ':host { all: inicial}' reset, so wide email o conteúdo ...
Role conteúdo de email amplo dentro da sombra DOM, não fora
As tentativas anteriores de adicionar overflow-x-auto à luz dos antepassados DOM não foi possível obter conteúdo de e-mail amplo porque a árvore de sombra é vis...
Use getHasAttachments () para corresponder ao tipo de invólucro booleano
************* é um booleano (embrulhador), então Lombok gera getHasAttachments() não isHasAttachments(). Apenas este último existe para booleanos primitivos. Us...
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...
Adicionar min-w-0 ao conteúdo de e-mail div so overflow-x-auto fire
Sem min-w-0, a largura mínima padrão da criança flex-col:auto resolve para min-content, deixando tabelas de e-mail amplas expandir o div passado a coluna largur...
Remover a chamada de ligação duplicadaStomp no sendMessage
Quando a primeira mensagem cria uma nova sessão, onSessionCreated actualiza os adereços que desencadeia o usoEffect para chamar connectStomp. A chamada em linha...
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...
Fechar o gap de reconexão que causa mensagens perdidas em tempo real
Remover `connected` do uso da assinaturaEffect deps no TicketChat e ChatBox. Anteriormente, cada reconexão WebSocket desencadeou o efeito limpeza que chamou uns...
Permitir que o usuário do sistema gerencie a marca org e corrija a autenticação de logo
- Adicionar bypass do usuário do sistema como primeiro guard no canManageOrgBranding assim plataforma usuário do sistema tem controle total de marca sobre todas...
Contenha o transbordamento horizontal no painel de visualização de e- mail para a terceira coluna
- Adicione overflow-x-escondido ao recipiente externo MessageBrowser como limite rígido - Adicionar overflow-x-escondido à coluna 3 wrapper e overflow-x-auto pa...
Falha na produção2ban com cadeias PJSIP e estado persistente
- Adicionar fail2ban-configmap.yaml com cadeias [asterisco] e [freepbx-web], aumento incremental da proibição (1h→24h→30d teto), LAN ignorarip, e a filtro perso...
Substituir o Coqui TTS por Piper TTS (en US-norman-medium)
O modelo Coqui VCTK não tem colunas nomeadas — substitua Piper TTS que tem a voz exacta do Norman. Binário Piper (~3 MB) e modelo (~60 MB) são baixados por um r...
Reset stale hasAttachments on sync and accumulate correctly
- Reset has_attachments=false at start of bulk sync so stale true values from old false-positive MIME detection are cleared before re-indexing - Accumulate ha...
Add resetHasAttachmentsForFolder query to ConversationRepository
Allows sync to reset stale has_attachments flags before re-indexing so corrected MIME detection can rebuild the field from actual attachment data.
Integrate Coqui TTS with norman voice (VCTK p267)
- Deploy coqui-tts server (VCTK VITS model, CPU-only) as ClusterIP service on port 5002 with model cache at /var/lib/coqui-tts on k1m1 - Inject coqui_tts.agi ...
Pré-popular em resposta/avançar e corrigir o envio deEndereço
- DraftMessage agora carrega deEndereço assim que flui de openNewMessage até ao compositor - MessageBrowser armazena o e- mail de caixa de correio activo caixas...
Suporte a partir do cancelamento do endereço ao enviar
Adds FromAddressRequest to EmailSendRequest so the frontend can especifique Apelido/compartilhado/endereço da caixa de correio a enviar. SmtpOnlyProvider agora ...
Add LAN DNS pod for split-DNS on k1m1
Deploys a dnsmasq pod with hostNetwork on k1m1 that listens on 192.168.4.22:53. Overrides pbx.k1.kluster.kamocrm.com -> 192.168.4.22 so LAN phones reach the PBX...
Adicione rede local para correção RTP cliente split-DNS / LAN
Telefones na mesma LAN que o k1m1 ligam- se através de DNS dividido (o domínio resolve- se para 192.168.4.22 internamente). Sem local net, Asterisco ainda anunc...
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.
