New features· 8 items

Version 1.54.0

The release notes are written in Portuguese, the language DeskcommCRM is built in. Your browser can translate them, or you can open this page already translated.

Open in Google Translate

Added5

Aba Graph (Datafy): editar e apagar um modelo sem levar as outras traduções

Na aba Modelos do canal Graph (Datafy), os botões Editar e Apagar voltam a aparecer. Eles ficavam desligados porque apagar um modelo por nome removia todas as traduções de uma vez, enquanto a tela mostrava um só idioma. Agora a operação identifica a variante escolhida (nome + idioma) antes de falar com a plataforma: apagar tira só a tradução selecionada, e editar manda o conteúdo para a variante certa.

Apagar continua perguntando antes, mostrando onde o modelo está em uso (follow-up ou prompt de agente), e só confirma com a sua confirmação. Se a plataforma não devolver a variante, nada é apagado no escuro — a operação recusa com o motivo.

Contribuição de @webtecnica (#1761, issue #1734).

A ferramenta de agenda lê um período inteiro, no fuso da empresa e em páginas

A ferramenta crm_list_appointments passa a aceitar de/ate (até 62 dias, a agenda inteira da organização) e paginação por depois_de/proximo, e cada compromisso traz o nome do contato e do atendente, o tipo, o local e os negócios vinculados — as chaves contato_id/atendente_id continuam na resposta. O filtro por dia passa a contar o dia no fuso da organização. A listagem da agenda pela API recusa com 422 um período acima de 62 dias.

Não há ação para quem opera a VPS.

Contribuição de @webtecnica (#1762).

O dono pode impedir que um agente marque novos retornos sem desligar os acompanhamentos configurados

Cada agente passa a ter um controle separado para permitir ou impedir novos retornos prometidos por conta própria. Os acompanhamentos configurados, a consulta e o cancelamento de retornos existentes e os agendamentos de compromisso continuam disponíveis. Agentes existentes mantêm o comportamento atual. Contribuição de @lucasa15 (#1764).

Nome da etapa editável direto no cabeçalho do quadro

Em /app/pipelines/:id, quem é manager ou admin agora renomeia a etapa clicando no próprio cabeçalho da coluna — sem precisar ir a Configurações › Funis. Salva ao confirmar (Enter ou saindo do campo), nunca a cada tecla, pela mesma rota que a tela de Configurações já usa. Para viewer/agent, que também abrem este quadro, o cabeçalho continua só leitura.

Não há ação para quem opera a VPS.

Contribuição de @lmarceloc (#1738).

Dá para trocar entre tema claro e escuro dentro do Modo Plataforma

O Modo Plataforma — a área de administração da instalação, que enxerga todas as organizações — não tinha como trocar o tema. Não era só o botão que faltava: o atalho de teclado também vive dentro desse botão, então quem estava ali não tinha caminho nenhum. Para mudar de claro para escuro era preciso sair para o app pessoal, trocar lá e voltar, e nada na tela dizia isso.

Quem mais sentia é quem acabou de instalar: a instalação cria o dono como administrador da plataforma, então o Modo Plataforma costuma ser a primeira tela de uma VPS nova.

Agora o controle fica na própria tarja amarela do topo, ao lado do "Sair pra app pessoal". Ele cicla entre claro, escuro e o que o sistema operacional estiver usando, e o atalho Ctrl + Shift + L funciona ali também. A escolha continua valendo nas duas áreas, como sempre valeu.

A tarja também passou a acompanhar o tema. Antes ela era uma faixa clara fixa, que não mudava de cor — no tema escuro ficava gritando no topo da tela.

Crédito: @Draven9

Contribuição de @Draven9 (#1757, trazida no #1759).

Changed1

Telemetria atualizada para o Sentry 11, com a coleta de dados pessoais travada no mínimo

O componente que envia relatórios de erro foi atualizado para a versão 11 do Sentry. A versão nova passaria a coletar, por padrão, IP, cookies, corpo das requisições e o texto trocado com a IA. Aqui essa coleta continua desligada, de forma explícita, e a limpeza de dados pessoais (e-mail, CPF, telefone, IP, tokens de webhook e de convite) agora é conferida no pacote que de fato sai do servidor. Quem usa o padrão (Sentry da comunidade) ou desligou a telemetria (SENTRY_DSN=off) não precisa fazer nada.

Se você aponta SENTRY_DSN para o seu próprio Sentry, o rastreamento de desempenho passa a ser enviado em fluxo contínuo, sem o antigo limite de 1.000 trechos por requisição. Alguns atributos mudaram de nome (por exemplo, http.method virou http.request.method e db.statement virou db.query.text), então alertas e painéis que filtram pelos nomes antigos precisam ser revistos. Se o seu Sentry é auto-hospedado, o SDK novo só dá suporte à versão 26.4.2 ou mais nova. Os relatórios de erro continuam chegando como antes.

Fixed2

Mídia já removida pode ser enfileirada de novo e a fila deixa de crescer sem teto

A fila de remoção de mídia guarda cada arquivo por object_path e a 0432 pedia on conflict (bucket, object_path) do nothing. Como o worker marca a linha como deleted e a linha nunca sai da fila, um arquivo NOVO gravado naquele mesmo caminho era ignorado em silêncio: não entrava mais na retenção nem na anonimização da LGPD, e nenhuma das duas conseguia alcançá-lo depois.

Agora o conflito reabre a linha só quando ela já terminou — deleted ou skipped volta a pending com as tentativas zeradas — e não toca em pending nem failed em curso, que é justamente o where que garante isso. O cron diário de retenção passa também a expurgar a linha deleted da retenção com mais de 90 dias, para a fila deixar de crescer sem teto; a linha ligada a um pedido LGPD permanece, porque é o registro de que a mídia do titular foi removida. Nada a fazer para quem já roda o sistema.

Contribuição de @webtecnica (#1763).

O servidor do app segura a conexão ociosa por mais tempo que o proxy na frente

O app fechava a conexão ociosa com o proxy (Caddy ou Traefik) aos 6 segundos, enquanto o proxy a guardava por até 2 minutos para reaproveitar. Quando a próxima requisição saía no instante em que o app fechava, ela morria no meio e a pessoa via um erro 502 raro e sem explicação — um salvamento podia falhar e dar certo ao tentar de novo. Agora o app segura a conexão por 125 segundos, e quem fecha primeiro é sempre o proxy. Nada a fazer: vale ao atualizar.

← Back to all releasesView on GitHub