Resolver o balde de org subdomínios para a sua própria pasta MinIO
getThemePath () estava reduzindo o nome da máquina para apex+tld para ambos os temas host e a pasta do balde, por isso os inquilinos do subdomínio como gnosia.d...
Route NavTop picker através de /me/language
O seletor chamou o membro genérico PUT, que SystemUserGuard 403s para O utilizador do sistema assinou um sub-org. A captura se registrou silenciosamente, de mod...
Adicionar /me/language endpoint que ignora SystemUserGuard
O coletor de idiomas NavTop não fez nada para o usuário do sistema Sub-org. executa SystemUserGuard primeiro, que 403s cada mutação do membro da equipa do utili...
Resolver o balde de org subdomínios para a sua própria pasta MinIO
getThemePath () reduziu o nome da máquina para apex+tld (mainDomain.tld) para O anfitrião temático e a pasta do balde. Para inquilinos subdomínio como gnosia.de...
Parar de cortar entradas de cores variantes escuras no ModernColorGroup
As linhas de selecção de cores tinham uma embalagem 280px codificada numa grelha 1fr 1fr com Overflow: escondido, então a entrada foi cortada em colunas estreit...
Tratar o stub da subscrição como sem subscrição, não como erro
O legado getCurrentAsscriction stub lança por design para chamadas cair De volta ao caminho ungido. StatsManager estava subindo o lançamento como "Não foi possí...
Devolver metros vazios em vez de nulos do getCurrentUsage
StatsManager renderizado <UsageMeters use={null}> quando o stub legado resolvido para null, falhando em use.meters. Devolver { metros: [] } de modo a componente...
Gate Minha seção de slide-out da conta no CONFIGURE SISTEMA
Ocultar o menu "Minha Conta" de membros que não têm CONFIGURE SYSTEM assim eles não vêem links (Stats & Custos, Apps & Recursos, Tipos de Ramificação, Automatio...
Auto-rote os proprietários de crianças-org para a sua org permitida
Quando /settings/contar carrega para um usuário que não tem CONFIGURE SYSTEM no atual org, o comportamento anterior foi um redirecionamento silencioso para /set...
Usar FQDN completo, não eTLD+1, ao obter org por domínio
domainFromAlias registra qualquer subdomínio multi-label (por exemplo, "gnosia.demo.kamocrm.com") até o seu eTLD+1 ("kamocrm.com"). Isso foi... multa para a bas...
Preservar FQDN completo para subdomínios mais profundos do que duas etiquetas
organiz by root() foi extrair apenas a primeira etiqueta e as duas últimas etiquetas de cada máquina com registo Traefik. Para o caso comum de dois níveis (logi...
Nunca gate subdomínios de propriedade de Kamo na propriedade TXT
Orgs de crianças que escolheram um apelido Kamo web (por exemplo, gnosia.demo.kamocrm.com) foram recebendo "TXT registro encontrado mas código de verificação nã...
Não mostrar sobreposição de carregamento global para formulários manipulados pelo cliente
NavigationInterceptor submete ouvinte tratado qualquer formulário cujo form.action era truty e method=get como uma navegação, e chamado setLoading( true) no con...
Conceda aos proprietários de orgs de topo acesso de exclusão/atualização de orgs
deleteDomain e atualizaçãoDomain anteriormente rejeitado administradores de plataforma operando nos domínios do child-org porque eles checaram isUserOwnerOfOrg ...
Permitir excluir subdomínios de per-org *.kamocrm.com
O guard endsWith("kamocrm.com") bloqueou cada org demo de troca do subdomínio da plataforma (por exemplo, gmosia.demo.kamocrm.com) por um domínio personalizado....
Anuncie novo IP público 47.181.8.83 para mídia externa
A JVB-k1m1 anunciava 75.83.13.11 e a Coturn anunciava LAN IP do nó via status.hostIP — ambos quebraram mídia WebRTC externa agora que a WAN pública é de 47.181....
Guardar os direitos administrativos essenciais + reseed roles na edição do modelo
Agora recusa-se. para persistir uma configuração NUKE ou FORCE NUKE em qualquer um dos ADMINISTRATOR direitos de administração essenciais do modelo (CONFIGURE S...
Propagar o status de administrador do filho-org-creator para a associação pai-org
Quando um usuário cria uma criança org eles se tornam seu proprietário + admin (via **************************** Os membros do PARENT-org, No entanto, é o que q...
Quebrar a barra de ferramentas e encolher a pesquisa/data para que o Novo Evento fique na página
Barra de ferramentas com demasiado conteúdo de largura fixa num único não- embrulho flex linha; com a área principal do pai definida para transbordar: oculta, a...
Leia *** do master após a atualização da sessão para evitar o lag da réplica
A correção anterior teve /api/user-info call /api/security/session/refresh antes de ler Redis, mas a leitura passou por readKsemJsonFromRedisWithRetry que usa g...
Rastreie a aba pelo nome + atualizar sessão antes de ler a informação do usuário
Dois bugs de navegação relacionados que se manifestam como "a aba errada se abre": 1. SettingsView rastreou a aba ativa por *index*. childrenArray can recompor...
Substituir o heredoc por ecos agrupados, de modo que o YAML possa analisar o bloco literal
O corpo /etc/odbc.ini heredoc sentou-se na coluna 1, que dedentou para fora do ao redor startup.sh: o escalar de bloco literal e 'kubectl se aplica' do ConfigMa...
Siga rclone remounts via HostToContainer mount propagation
Sem propagação de escravos o pod captura o FUSE ligar montar uma vez em início do recipiente; se rclone-mount. o serviço reinicia na máquina, o pod continua a a...
Página do Docs do Portal sobre view DOCUMENTS / MANage DOCS SETTINGS
Espelha os portões da aba Email + Telefone. Um membro sem view DOCUMENTS (base acesso ao nível do utilizador) e sem MANAGEM DOCS SETTINGS (admin) já não vê a ab...
Email do Portal + Páginas do telefone sobre direitos, edição da configuração do VOIP do portão, atualização periódica da sessão
Adiciona o dado de direita em falta para um Membro básico sem ACCESS MAIL / ACESS VOIP não pode mais ver as abas e- mail ou configurações do telefone por conta ...
Alinhar os campos Tipo/Nome/TTL movendo a dica TTL para uma dica
O campo TTL renderizou o seu 'uso 1 hora se o seu registrador mostrar uma dropdown' dica como um parágrafo abaixo da entrada. Essa coluna terminou mais alto do ...
O cartão SSL para de reivindicar registros são verificados antes de serem
O cartão SSL tinha dois estados (instalação / completa) para que o "instalação" de cópia ("Todos os registros necessários são verificados, estamos instalar o ce...
Remover a lacuna do cabeçalho, desactivar subdomínios, soltar o seletor de registos
- Mover DnsProvisioning Painel dentro do DnsSetupStudio para o vazio px:4 pt:3 wrapper em torno dele (que criou uma banda de espaço em branco acima do herói qua...
Terreno no /setup/dns dos pais após a criação de org
O assistente redirecionou previamente o criador para **************************** logo após o retorno do POST /api/segurança/org. O domínio do novo org não tem ...
Drop CountryTypeConverter from EmbAddress. country
O conversor escreve o nome enum (por exemplo, "UNITED STATES") como uma String, mas cada tabela incorporando EmbAddress (orgs, usuários, membros, user address, ...
Mostrar somente o passo da frase da recuperação da conta para under-13
Por que: 13+ usuários já fornecem e-mail, telefone e questões de segurança como métodos de recuperação, tornando redundante a frase semente. Sob-13 contas não t...
Escala para 2 réplicas para absorver sincronização + tráfego em tempo de execução
Uma única réplica é o gargalo para o fluxo de trabalho de sincronização do dicionário: cada trabalhador de Gunicorn lida com um pedido e depois reinicia automat...
Bump LibreTranslate per-call timeout to 90s; mantenha um único-traduzir backward-compat
Dois acompanhamentos da mudança de chaves de repetição/falha: 1. Por chamada tempo limite de pedido foi de 30s. Produção tem chamadas em tempo de execução (cha...
Repetir os erros transitórios e as chaves de superfície falhadas (não forje a passagem)
Dois modos de falha foram indistinguíveis na resposta, então o script Não conseguia diferenciá-los e continuou a "traduzir" as mesmas chaves para o inglês em ca...
Alias zh -> zh-Hans assim en->zh realmente traduz
Endpoint LibreTralate /línguas anuncia chinês sob o códigos específicos da região "zh-Hans" e "zh-Hant" (nunca descascado "zh"), mesmo que POST /traduzir aceite...
Preservar o nome do ficheiro original e o tipo de conteúdo no download do anexo
O ****************es finais (ambos o pessoal e controladores de caixa de correio compartilhado) estavam emitindo Disposição de Conteúdo: anexo sem parâmetro do ...
Imagens em linha quebradas, downloads de anexos e view-pane flicker
- Strip <img> com cid: src no higienizador de e-mail para imagens incorporadas não renderizar como um ícone de imagem quebrada piscando, e ocultar imagens que f...
Dirigir alvos suportados a partir de /linguagens, não lista velha
Os SUPPORTED TARGETS de código rígido alegaram que sw/ta/etc. eram suportados, mas não existem pacotes argos públicos para aqueles, então cada en->sw / en->ta p...
Não reconhecido -- workers arg causando crashloop
O libretranslate CLI não aceita -- trabalhadores, apenas o gunicorn processo dentro dele faz. Passando- o fez com que a cápsula falhasse em argparse boot e Cras...
Publique NATS CREATE event after transaction commit to fixe image attachment race
A mensagem NATS foi publicada dentro do corpo @Transactional, o que significava os destinatários poderiam receber o evento CREATE e solicitar a imagem via /imag...
Serialize attachments in WS relay and message history; allow attachment-only sends
Three bugs fixed: 1. ChatSessionSubscriptionManager was building the STOMP messageMap manually and omitting attachments, sourceLanguageId, readMemberId, msg...
Add attachments and event fields to ChatMessageDto; ignore unknown fields
ChatMessageDto was missing `attachments`, `readMemberId`, `msgIdLastViewed`, `dateLastViewed`, `addedMemberId`, `objImgId`, `transitMemberId`, and `isJoin` fiel...
Fix NPE in getChatSessions from Map.of() rejecting null nextcoder
java.util.Map.of() throws NullPointerException when nextcoder is null (no more pages). Replace with HashMap that accepts null values. Also wrap entire handler i...
Defects C/D/E — title display name, toolbar layout, header lift
Defect C: Add GET proxy for /sessions/{guid}/members so ChatBox.loadMembers() can populate the SessionMember.name field. ChatTool already uses members[0].name f...
Fix upload 500 (missing EmbRecordState) and empty chats tab (Timestamp cast)
Defect A: ChatAttachmentService.upload omitted **************** causing a NOT NULL violation on imgs.is_active. Added the default recordState. Also hardened Cha...
Prefer usernameAlias over User.name in memberDisplayName
Switches display name priority to: Member.usernameAlias → User.name → User.alias → User.username. Also includes the paged query dispatch fix from the previous c...
Show upload error toast in Composer when attachments fail
Catches errors thrown by uploadAll() and renders an MUI Alert above the input row. Root cause of Defect 4 was the missing MinIO bucket (imaging-chat-attachments...
Empty Chats tab — frontend already expects {rows} paged shape (no change needed)
The ChatsList component already reads data.rows. Backend fix (shared-lib + MediaService) is the root cause: HAVING CAST(null AS TIMESTAMP) IS NULL did not work ...
Use split First/After queries for chat sessions paged endpoint
Addresses empty Chats tab by dispatching to ****************
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.