Skip to content

v1.53.0

Choose a tag to compare

@gabrieljablonski gabrieljablonski released this 05 Nov 20:29
· 41 commits to main since this release

Changes

  • feat(dashboards): a flagged theme's row and dialog show the window that raised the flag
  • fix(dashboards): the theme conversations dialog fits its table, whatever the content
  • feat(chatwoot): reach Chatwoot on a private network with the SSRF guard on, per-connection webhook base and public address, editable base URL
  • fix(checkpoints): keep only what the saver resumes from, per live thread
  • fix(scheduler): enum predicates reach their index under RLS, and a perpetual sweep never dead-letters

🇺🇸 English

✨ What's new

  • Flagged themes show the period that raised the alert. In Dashboards (Pro), each theme now shows the conversation count for the monitor's window beside the usual count for that span, with its lifetime total below; a reference appears only when the window concentrates on it, and the main figure scales with the screen in TV mode. Clicking opens that same window with a matching count and no reference preselected, plus counted filters for references and periods: the alert window, the last 24 hours, or all conversations.
  • Connect to Chatwoot over a private network. If Chatwoot and fazer.ai agents share a private network, you can edit the connection's base URL to use it, including for attachments, while keeping the SSRF guard on; editing rejects an address belonging to another Chatwoot installation. To use this setup, declare the private target in SSRF_INTERNAL_TARGETS, set SAFE_FETCH_ALLOW_PRIVATE_NETWORK=true in Chatwoot, and fill the optional Advanced addresses for Chatwoot to call the agents and for people to open Chatwoot; Agent Bots switch to the callback address immediately, and all conversation links use the public address.

⚡ Improvements

  • Theme conversations fit the dialog on every screen. In Dashboards (Pro), long content stays inside the dialog, status, inbox and assignee share one cell, and the conversation link sits beside the time. Day separators make the list easier to scan, and each conversation becomes a card on phones.
  • Old conversation states stop filling the database. Every six hours, starting 20 minutes after startup, cleanup keeps only the latest saved state per conversation and skips conversations active in the last hour, preserving how agents continue conversations; the first pass on a large instance can take about an hour, in small batches with pauses, without blocking service. Database dumps shrink right away and the database reuses the freed space, but disk files do not shrink on their own: reclaiming disk space requires VACUUM FULL, which locks the tables. You can adjust timing with CHECKPOINT_RETENTION_INTERVAL_MS and CHECKPOINT_RETENTION_FIRST_DELAY_MS, or raise CHECKPOINT_RETENTION_GRACE_MS to retain recent conversation history for debugging, for example for a few days.

🐛 Fixes

  • Follow-ups no longer stop silently after a timeout. On large instances, the periodic check for snoozed and inactive conversations now runs faster, retries failures with increasing delays and alerts, and keeps checking inactivity even if the snoozed check fails. The instance health page shows the time since each account's last completed check, and Chatwoot delivery queues also load faster on large tables.

🇧🇷 Português

✨ Novidades

  • Temas sinalizados mostram o período que gerou o alerta. No Dashboards (Pro), cada tema agora destaca a quantidade de conversas na janela do monitor ao lado do habitual para o mesmo intervalo, com o total acumulado abaixo; a referência só aparece quando há concentração nela, e o número principal acompanha o tamanho da tela no modo TV. Ao clicar, você abre essa mesma janela com a contagem correspondente e sem referência pré-selecionada, além de filtros com contagens por referência e período: janela do alerta, últimas 24 horas ou todas as conversas.
  • Conecte o Chatwoot pela rede privada. Se o Chatwoot e o fazer.ai agents compartilham uma rede privada, você pode editar a URL base da conexão para usá-la, inclusive nos anexos, mantendo a proteção SSRF ativa; a edição recusa um endereço que pertença a outra instalação do Chatwoot. Para usar essa configuração, declare o destino privado em SSRF_INTERNAL_TARGETS, defina SAFE_FETCH_ALLOW_PRIVATE_NETWORK=true no Chatwoot e preencha os endereços opcionais em Avançado para o Chatwoot chamar os agentes e para as pessoas abrirem o Chatwoot; os Agent Bots passam a usar o endereço de retorno imediatamente, e todos os links de conversa usam o endereço público.

⚡ Melhorias

  • A lista de conversas do tema cabe na janela em qualquer tela. No Dashboards (Pro), conteúdos longos ficam dentro da janela, status, caixa de entrada e responsável dividem uma célula, e o link da conversa fica junto do horário. Separadores por dia facilitam a leitura, e no celular cada conversa aparece como um cartão.
  • Estados antigos das conversas deixam de acumular no banco. A limpeza roda a cada seis horas, começando 20 minutos após a inicialização, mantém apenas o estado mais recente de cada conversa e preserva as que tiveram atividade na última hora, sem mudar como os agentes retomam o atendimento; em instâncias grandes, a primeira execução pode levar cerca de uma hora, em pequenos lotes com pausas, sem bloquear o serviço. As exportações do banco diminuem de tamanho imediatamente e o banco reutiliza o espaço liberado, mas os arquivos em disco não encolhem sozinhos: recuperar esse espaço exige VACUUM FULL, que bloqueia as tabelas. Você pode ajustar os horários com CHECKPOINT_RETENTION_INTERVAL_MS e CHECKPOINT_RETENTION_FIRST_DELAY_MS, ou aumentar CHECKPOINT_RETENTION_GRACE_MS para guardar o histórico recente das conversas para investigação, por exemplo por alguns dias.

🐛 Correções

  • Follow-ups deixam de parar silenciosamente após um tempo limite. Em instâncias grandes, a verificação periódica de conversas adiadas e inativas agora fica mais rápida, repete tentativas com intervalos crescentes e emite alertas em caso de falha, além de continuar verificando inatividade mesmo se a etapa de conversas adiadas falhar. A página de saúde da instância mostra há quanto tempo cada conta concluiu a última verificação, e a leitura das filas de entrega ao Chatwoot também fica mais rápida em tabelas grandes.