Mostrar o botão Criar Documento para todos os membros logados
A verificação de flag do recurso org (isDocsEditor → isDocs → hasFeature DOCS) estava retornando false porque as funcionalidades de org usam tipos de chaves des...
Remover os filtros de campo de grelha de dados e a linha flutuante do filtro
Desactivar todos os filtros de colunas e a linha de entrada do filtro flutuante para que o a grade mostra apenas cabeçalhos de colunas e linhas de dados. Também...
Mover o botão Enviar para a barra de ferramentas DocManager
O gatilho Upload foi apenas na página de ações do /doc/manager, tornando-o invisível quando DocManager é incorporado em outras páginas. Movido O botão Enviar di...
Permitir que as opções de envio entrem no DocManager incorporado
O recipiente da aba de envios foi transbordado: escondido, recortando as opções por arquivo (descrição, pasta, tipo de documento, nível de acesso) no limite de ...
Corrigir 400 erros de alimentação e adicionar sub-tabs de comunicações com parâmetros URL
Consertar o dobro? erro no MediaStream onde o feedEndpoint já contém consulta params mas a transferência anexada ?page=... em vez de &page=..., causando uma URL...
Tornar 'All Leads' um item de menu real com ícones no filtro de agente
- Substituir o item de valor vazio do placeholder por ALL para que o dropdown nunca mostra em branco quando Todos os Leads está selecionado - Adicionar ícon...
Manter todos os campos de nome em uma linha em um novo formulário de lead
Consuma *** segredo para que o X-Internal- Auth corresponda aos serviços a jusante
DaemonService -> Serviço de Conversão **************************** retornando 401 Não autorizado porque DaemonService estava carimbando sua cabeçalho X-Internal...
Use @CreationTimestamp(source=DB) on ****************
The DB is the single source of truth for timestamps in this codebase. The canonical Hibernate pattern is @CreationTimestamp(source = SourceType.DB), which makes...
Let DB fill **************** via @Generated(INSERT)
INSERTs were failing with: null value in column "date_created" violates not-null constraint @ColumnDefault only declares the DB-side default for new rows; Hi...
Drop the [from-internal-custom] _X. catch-all that broke softphone calls
The catch-all exten => _X.,1 in [from-internal-custom] was intercepting every internal dial — softphones started reporting "phone is not registered" / calls wou...
Enable JPA repos for commerce + email + dao.repositories packages
ConversionService new pod CrashLoopBackOff with the same error DaemonService hit earlier: Parameter 0 of constructor in **************** required a bean of ...
Carve /api/voip/recordings/** out of the wildcard VOIP forwarder
The /api/voip/** catch-all in APIGatewayController was shadowing the dedicated VoipRecordingUploadController POST /api/voip/recordings/upload mapping when Sprin...
Write managed config files 0644 so the asterisk daemon can read them
The kamo-asterisk-support pod runs as root and writes to host-mounted **************** Asterisk inside the FreePBX pod runs as user "asterisk" and could not rea...
Usar a sintaxe envsubst-compatível \${VAR} no modelo de configuração + re-render em espaços antigos
Pods foram CrashLoopBackOff com "erros de configuração: API KEY está faltando ou muito curto" porque o modelo de configuração usado literal API KEY marcador...
Drop unused watcher import
uploader.go only uses CallBatch (declared in grouper.go in the same package), not anything from internal/watcher directly. Go rejects unused imports.
Habilitar acordos de recompra JPA para comércio + e-mail + pacotes de repositórios dao
O DaemonService caiu na inicialização com: Parâmetro 0 do construtor em necessário Um tipo de feijão que não foi encontrado. Um serviço de biblioteca recenteme...
Substituir os adereços do item MUI v5 Grid com a sintaxe MUI v6 sx no VoipSmsTab
Capture o novoExtNumber como final para captura lambda no MemberVoipConfigController
o novoExtNumber é atribuído condicionalmente dentro do if (isVoipEnabled && ...) bloco, o que não torna efetivamente final. O bloco de sincronização do membro d...
Atualizar parâmetro de descrição OrgThemeProvisionServiceTest for buildConfigJson
Voz elencadaActividadeDetecção para contornar o tipo de TS DOM em falta
voiceActivityDetection é uma propriedade válida WebRTC MediaTrackConstraints mas está ausente da lib DOM do TypeScript, causando um erro de tipo na hora de comp...
Configurar STUN para que o navegador ICE possa completar bidirecionalmente
Chamadas de navegador para navegador bipartidário conectadas na camada SIP, mas não tinham áudio em qualquer direcção. Correio de voz (Asterisco de via única → ...
Áudio ao vivo que sobrevive a interrupções de carga, spinner centrado, saída ringback
Três correções coordenadas para o caminho de áudio em chamada: 1. AbortarError no remotoAudio.play() (visível no console de produção como "A requisição play() ...
Hangup tears down ALL live sessions, not just the primary
Self-call edge case left a session leaked: dialing your own extension creates an outbound session, then Asterisk loops the call back as a second inbound session...
Instant connecting feedback on outbound dial
Same problem the inbound Answer button had: clicking Call kicked off the SIP INVITE round-trip (1-3 seconds) but the button kept its idle "Call" appearance the ...
Conectando animação + áudio que realmente toca + toque desbloquear
Três correções coordenadas para o caminho de entrada: 1. O feedback visual ao aceitar. Clicar em Resposta deixou ambos os botões resposta, mas sem resposta — a...
Mount SoftphoneProvider acima ToolDock para que as janelas da ferramenta possam lê-lo
Abrindo o popup do Softphone caiu a página com "Esta página não pôde carregar" porque janelas de ferramenta montar dentro ToolDock, que vive em ToolProviders — ...
Use o suporte de tamanho da grade para que os painéis AV preencham a linha
A grade do MUI v7 é baseada em flexbox, por isso o gridColumn sx que eu tinha usado era um no-op — itens renderizados em sua largura natural e deixados vazios e...
Migrar IDs ringtone obsoletos para padrão ao carregar
Se as preferências AV salvas de um usuário referenciam um toque que já não existe no catálogo (por exemplo, «clássico» de antes do catálogo aparado), a aba Toqu...
Digitos do Dialpad agora registrar em dispositivos de toque
Os botões dialpad chamados e.preventDefault() em ambos onTouchStart e Touchend. Isso impede o navegador de disparar o evento de clique sintético que segue um to...
Navegador de máquinas SIP WSS em internal.kamocrm.com (certe)
Os navegadores recusaram a ligação WebSocket para o... com código próximo 1006 porque Traefik estava servindo seu certificado padrão auto-assinado para esse nom...
Presença globo separado para marketing chat ao vivo vs membros
Público Os tickets do widget de bate- papo mantêm o placeholder de org como requestorId; use somente presença de sessão de mídia para essas linhas. Membro de us...
Periódico STOMP presença batimento cardíaco para apoio público
Atualizar Redis TTL para presença de sessão pública para que os agentes vejam o estado online preciso.
Globo usa presença de sessão de mídia para visitantes de marketing
Solicitar sessão de chat público GUIDs em instantâneo de presença; tratar on-line se ambos sessão ou membro solicitante está conectado. Lidar com o envelope de ...
Acompanhe o chat de suporte público por sessão GUID em Redes
Visitantes de marketing usam /ws/public-chat-native sem membroId; tickets ainda Referência ao membro de substituição da organização como solicitante. PRESENÇA ...
Não apagar a atribuição de membros na sincronização de provedores que não possuem metadados
**************************** Sobrescrito incondicionalmente TelefoneExtension.associadoMembro com o que o provedor retornou. FreePBX (e qualquer provedor que nã...
Mostrar o nome do provedor no modo de visualização + extensão própria no dropdown de edição
Dois insectos em... 1. Modo de visualização descartou o UUID bruto — "Instância 32f520b0-347a-..." — porque a lista de instâncias só foi carregada dentro do ha...
Serialize ExtensionDto.atribuídoMemberId como uma string
transborda o alcance de integração segura da JS (por exemplo, 1168485658174423046 viagens de ida e volta como 1168485658174423000 uma vez que um número JSON ati...
Fazer com que a configuração WebRTC sobreviva ao reinício do pod
A abordagem anterior (http custom.conf com sobreposição [general]) não realmente fazer efeito porque o analisador INI do Asterisco não honra múltiplos [general]...
Activar o servidor HTTP incorporado do Asterisco em : 8089 para WebRTC /ws
Um chan pjsip `protocol=ws` transporte passeios em cima de res http websocket, que por sua vez requer que o servidor HTTP integrado do Asterisk esteja em execuç...
Priorizar o primeiro/último nome real sobre o nome de usuárioAlias para exibição
nome de usuárioAlias é funcionalmente um identificador de login (muitas vezes igual ao nome de usuário), não é um nome de exibição. Nomes reais de leitura human...
Escopo Adicionar rolagem e rodapé de chumbo para sua área de conteúdo
O formulário estava usando minHeight: 100vh dentro de um pai que já está calc(100vh - 56px), forçando uma barra de rolagem externa mesmo quando o conteúdo se en...
Disposição inteligente de várias colunas para adicionar o formulário de chumbo
Reestruturar a página em uma grade de topo para que as seções componham horizontalmente em vez de esticar campos individuais: - Mercado e atribuição usa um int...
Usar /api/security/members/names para resolução do nome atribuído
Os filtros de endpoint by-department apenas para membros ativos da equipe, faltando atribuição de membros de base ou de membros inactivos. Mudar para /nomes que...
Largura total Adicionar forma de chumbo e folga para rodapé pegajoso
Largue a largura máxima de 1200px em /leads/new de modo que o formulário abrange a área da página, e estofamento de fundo para que a barra de ação pegajosa não ...
Resolver o nome da exibição com a prioridade correta no endpoint by-department
Prioridade: member.usernameAlias → user.name.formatFull() → user.alias → user.username
Adicionar falta éDisplayOnIntake field para FormField interface e novo campo literal
Usar o tipo de texto para o membro designado para evitar perda de precisão
Serialize Long como string para evitar a perda de precisão JS em grandes IDs do BarataDB
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.