Resolver a aba Membros mostrando vazio devido ao problema Hibernate Type () de classe base
O filtro do Hibernate (m) = :type JPQL retorna 0 resultados quando o limite parâmetro é a classe de membro base (herança JOINED). Isto afecta o Endpoint dos mem...
Activar o registo do Hibernate SQL para diagnosticar a consulta de membros que retorna 0
Ativado temporariamente org.hibernate.SQL=DEBUG para ver o que SQL the Type() A consulta do JPQL gera para o endpoint dos membros-subscritores.
Mostrar a bandeira do visitante, o país e o IP no cabeçalho do ticket
- Adicionar visitanteIpAddress, visitorCodeCountry, visitorCountryName to SupportTicketDTO type - Render flag emoji + country name + IP address row in TicketHea...
Mostrar a bandeira e a localização do visitante no cabeçalho do ticket de suporte
- Injete PublicChatVisitorRepository e GeoLiteLocationRepository em SupportTicketService - Popular visitanteIpAddress, visitorCode, visitorCountryName in toDTO(...
Adicionar registro diagnóstico para o endpoint getMembersAndSubscribers
Logs orgId, query result count, and per-member isActive status to help diagnosticar por que a aba Membros mostra lista vazia.
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...
Trate o tipo VISITOR MESSAGE como sempre-de-eles no TicketChat
Mensagens de visitantes publicadas via PublicChatService carregam mensagemType=VISITOR MESSAGE. Marcar explicitamente estes como autor='eles' independentemente ...
Skip VISITOR MESSAGE ecos no manipulador STOMP do LiveSupportPanel
As mensagens dos visitantes são agora marcadas como messageType=VISITOR MESSAGE pela infra- estrutura. Pular estes na assinatura STOMP para que as mensagens do ...
Substituir WebSocket nativo por STOMP/SockJS no LiveSupportPanel
- Adicionar pacotes @stomp/stompjs e sockjs-client - Conectar à mídia. {domínio}/ws/public-chat via SockJS+STOMP em vez de WebSocket em bruto para api.{domínio}...
Corrigir chat público de ponta a ponta em tempo real via STOMP/NATS
- Remova a exigência interna de autenticação do PublicChatWebSocketInterceptor assim os visitantes podem se conectar diretamente usando apenas o seu item de ses...
Adicionar o remetenteName ao ChatMessageDto para os nomes de exibição de chat de suporte
Ligar o filtro de estado e os modelos necessários automaticamente na lista
- EmailTemplateController.list() agora aceita ?status= param e filtros usando a pesquisa existente do repositório findByOrgIdAndStatus - Auto-sementes necessári...
Abrir automaticamente o menu de contexto do ticket de suporte na notificação NEW TICKET NATS
Quando um novo ticket de suporte chega, a infraestrutura agora envia um NEW TICKET Mensagem STOMP além de PENDING COUNT. OContexto de Conta de Suporte lida com ...
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...
Allow god-mode users to provision ownerless orgs; prefer FQDNs in domain resolution
Add @Transactional to provision-theme for lazy domain loading; remove hardcoded domain from provision request
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...
Separe o número de ticket/invasão da linha do título no TicketHeader
Título foi compartilhar uma linha flex nowrap com o número do ticket e dois distintivos, fazendo com que seja cortado. Agora número de bilhete e emblemas ocupam...
Adicionar página /contact-confirmado com herói animado, timeline e CTAs
Substituir a mensagem de sucesso em linha no formulário de contato por um prêmio dedicado página de confirmação: marca de verificação SVG animada com explosão d...
Lidar com a chave de tickets na resposta da lista de tickets de suporte
MediaService retorna { tickets: [...], totalElementos } mas o frontend apenas verificou os dados. conteúdo, fazendo com que a lista fique sempre vazia.
Usar PATCH /org/{id}/colores para salvar a marca para evitar a falha de restrição booleana nullable
Add PATCH /org/{id}/colors endpoint to safely update only color palette fields
Porta correta MEDIASERVICE URL de 443 a 80 para formulário de contato
O serviço ClusterIP só expõe a porta 80; usar 443 com http causou uma ConnectTimeoutError em cada envio de formulário de contato.
Redesign LabelManager — edição de seção em linha, correção de gravação quebrada, padrão somente de leitura
Reescreve LabelManager.tsx com padrão de leitura/edição por seção. Corrige o salvamento quebrado botão (validateForm bloqueado salva porque os campos de contato...
Adicionar o validador de domínio KamoMail para bloquear os endereços de e- mail cross-tenant
Apresenta o componente KamoMailDomainValidator que verifica, na camada de serviço, se o domínio de email enviado corresponde ao domínio padrão verificado pelo o...
Enforce a restrição de domínio KamoMail na caixa de correio, alias e criação compartilhada da caixa de correio
Quando KamoMail é o provedor de e-mail, os membros só podem criar caixas de correio, aliases e caixas de correio compartilhadas usando o domínio padrão verifica...
Leia o logotipoFullExt do config.json para a extensão dinâmica do logotipo
Ler logoFullExt do config.json; corrigir local.webmanifest caminho para o subdiretório favicon
Leia o logotipoFullExt do config.json para a extensão dinâmica do logotipo
Add theme provisioning — NATS publisher, provision-theme endpoint, logo upload
Adicionar campo logoFullExt à entidade Organização; adicionar listaObjects ao MinIOStorageService
Substituir ícones emoji por ícones SVG sólidos ao criar o assistente Stepper
Use memberID session key and include creatorType in creatable branch-types response
Adicionar pesquisaByBranchTypeID consulta derivada para OrganizationRepository
Suporta o novo endpoint /branch-types/{id}/usages no SecurityService para verificar se um tipo de ramo tem orgs filhos ativos antes da eliminação.
Add GET /branch-types/creatable and /{id}/usages endpoints
/creatable returns branch types filtered by the caller's creator-type (OWNERS/TEAM_MEMBERS/MEMBERS) via AppliedModelEnforcementService. /{id}/usages returns th...
Guardar a eliminação do tipo de ramo contra os usos de org activos
Antes de remover um chip tipo branch, o frontend agora chama **************************** Se existirem quaisquer orgs, ele mostra um diálogo informacional lista...
Use correct session key 'memberID' instead of 'MID'
KSessionService stores member ID under key 'memberID' but both **************** and OrganizationController were reading session.get("MID") which always returned...
Emblema de ticket de suporte ao vivo no NavTop — SupportCountContext assina o NATS via STOMP, emblema mostra contagem pendente
Live pending support ticket count via NATS — notify org owner on new tickets, add pending-count REST endpoint
Set org owner usernameAlias on creation and fix website-contact member alias
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.