Surface imaging fallback when provider has no call history
KamoPBXProvider.getCallHistory now returns null instead of throwing **************** so the 501 response no longer bypasses the imaging fallback. The provider c...
Correct account list member/teamMember fallback labels and trigger redeploy
Restore NavPri panel labels and LeadHistory column headers
NavPri: salvage-keys grabbed href URLs as label values and swapped label/description pairs for Accounts, KB, and Notes nav panels. LeadHistoryPanel: MUI bgcolo...
Add COMP payment method option to subscription order wizard
COMP is a valid backend PaymentMethod enum value for complimentary platform-admin grants, but was missing from the frontend type and wizard UI — only INVOICE an...
Show platform domain context when no custom domain is set
Surface the active *.kamocrm.com hostname in the domain entry form so users can see their current platform domain instead of a blank entry screen. Also fixes ve...
Revert "chore(messages): add wave3 translation merge fragments (JSON)"
This reverts commit ****************
Revert "feat(setup-dns): show platform kamocrm domain on custom domain entry"
This reverts commit ****************
Show platform kamocrm domain on custom domain entry
Surface the active *.kamocrm.com hostname on the add-domain flow and detect custom domains by excluding kamocrm URLs instead of default-flag alone.
Checkpoint translations per chunk and per locale on main
Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...
Checkpoint translations per chunk and per locale on main
Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...
Disable Docker BuildKit cache so every pipeline run does a full rebuild
Sets no-cache on both image build steps so npm ci and npm run build always run, even when the source tree is unchanged.
Bust Docker BuildKit cache per commit so npm run build runs every push
Identical checkout trees (e.g. empty commits) reused cached layers and skipped a real Next build. Pass GIT_COMMIT from the workflow and label the image revision...
Suprimir a saída de grep não-match na captura OLD PID para evitar abortar pipefail
Permitir que proprietários de orgs de alto nível e membros do sistema gerenciem os domínios de qualquer org
Sincronize members.email quando a caixa de correio primária é atribuída, alterada ou removida
Quando uma caixa de correio foi atribuída a um membro em uma org KAMO MAIL, members.email nunca foi actualizado, fazendo com que o EmailCredentialService não re...
Evitar domínios de raiz duplicados e corrigir a exibição de domínio primário
Verificação ONE DOMAIN PER ORG incorretamente excluída .kamocrm.com web-alias domínios, permitindo que uma org acumular múltiplos domínios raiz (e 10 aliases ca...
Serialize a segurança dos membros e os membros colocam chamadas para evitar o conflito do BarataDB
Duas gravações simultâneas para a mesma linha de 'membros' causaram uma serialização conflito de isolamento — segurança dos membros ler a linha enquanto os memb...
Mostrar o botão Gerenciar o Domínio para proprietários de orgs de topo e membros do sistema
Reduza a latência da criação de org e corrija falhas em cascata de tradução
- OrganizationController: substitua os membros da equipeForAllOrgs (org completo) scan de tabela) com a garantiaTeamMemberForOrg (single org) — elimina o ~400ms...
Widen commit log translations.title to TEXT to match DB column
A coluna foi VARCHAR(512) tanto na anotação quanto no DB, causando translation inserts to fail for long translated titles. A coluna DB é agora STRING (aplicado ...
Desembrulhar o catálogo e o cálculo do envelope de resposta da infra- estrutura
getSubscriptionCatalog retornado { catalog: {...} } mas foi lançado diretamente como SubscriptionCatalog, deixando catalog.plans indefinidos e o plano passo de ...
Adicionar @JsonProperty to is*-prefixed boolean DTO fields
Lombok gera is-getters isXxx() para campos booleanos chamados isXxx. Jackson tira o principal 'é' de is-getters e serializa-los como 'xxx' em vez de 'isXxx', as...
Usar o 'ss' em vez do fuseador para matar o porto velho (o fuser não está no k0m1)
o fuseador e o lsof não são instalados no host corredor. Utilizar ss - tlnp com Grep para extrair o PID segurando porto 18080 e matá-lo diretamente. Também muda...
Limpar porta-avançada para que o trabalho de tradução cancelado não bloqueie a próxima execução
Bash não envia sinais para processos de fundo, então kubectl as operações de fluxo de trabalho canceladas port-forward, e a porta 18080 mantida, bloqueando cada...
Restaurar todos os valores de placeholder quebrados em páginas
O script de chaves de salvação tinha agarrado os nomes de classes CSS, estilos em linha e JS literais de modelo em vez do texto original em inglês para 114 mens...
Mostrar o botão Configurar a Conta para os proprietários de orgs sem conta
Quando um proprietário de org abre a aba de faturamento de planos e nenhuma conta de faturamento existe, exibir um prompt bootstrap em vez do genérico "contate ...
Restaurar o título e legenda do herói da página do git history
heroTitle foi 'Hero Title' (placeholder), heroSubtítulo foi 'flex gap-2' (chaves de salvação acidentalmente pegou o nome de classe CSS adjacente). Valores corre...
Adicionar ponto final inicial para orgs pré-existentes
* ******************************* dispara o mesmo configuração idempotent como o gancho de criação sub-org (BillingSetupService .setupForSubOrgCreation) mas pod...
Activar o botão Terminar através da votação widget.getState() e da mudança para auto=onload
O ouvinte de eventos de mudança de estado não estava a activar de forma fiável o botão Terminar após *** verificação. Duas causas raiz: 1. A lógica de drenagem...
Incluir contas-alvo de subscrição na lista de org
listForOrg agora também retorna contas cujas assinaturas visam o Pedido de org — não apenas as contas directamente detidas por ele. No multi-org modelar a conta...
Adicionar statusEspaço de nomes das etiquetas Window e corrigir todas as opções de espaços
- Adicione ************* (50 chaves) para as configurações nav sidebar mostra texto real em vez de caminhos chave - Fix branchTypesLabel UTI format: \${branchLa...
Onda 3 conversões, correção de retrocesso e auto-traduzir CI
- Substituir todas as strings em inglês codificadas com t() chamadas através da onda 3 componentes (chat, clubhouse, suporte, notas, pipeline, leads, nav, etc.)...
Coincidir com o tamanho de outras janelas de ferramentas + esquema de cores
- defaultSize and minSize now 320x650, redimensionável: false (correspondências Softphone, Chat, Calculator, SMS, AI Chat) - Alternado do gradiente de ardósia e...
Estreite colunas de primeiro e último nome para que o apelido permaneça em uma linha
Colocar o apelido em linha após o sufixo do nome na linha do nome legal
Fio next-intl com member.language como locale source
Adiciona internacionalização baseada no próximo intl através do kamo-internal sem URL prefixos locais. Ativo locale é lido do cookie kamo-locale, que espelha a ...
Forward Range header so audio playback can scrub
Without this the VOIPService recording-streaming endpoint always returns the full file (Range header is dropped by buildForwardHeaders), which works for play-fr...
Drop language search filter on My Language step
The supported language list is short enough to scan visually; the search input added complexity without user value.
Rewrite /etc/odbc.ini to point at $MARIADB_HOST on every boot
The escomputers/freepbx:17 image bakes /etc/odbc.ini with Server=db (the docker-compose link target). On this Kubernetes deployment MariaDB lives at \$MARIADB_H...
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.