Repository navigation
Releases
v1.56.1
Changes
- fix(chatwoot): a delivery that found no free database connection runs again within seconds, instead of waiting for the sweep (#1756)
- fix(proactive-breaker): the daily peak refresh reads an index of its own lines, and a failed refresh waits six hours (#1754)
🇺🇸 English
🐛 Fixes
- Fewer false nightly health alerts: Busy instances no longer trigger repeated timeout alerts during the daily sending limit refresh, which already kept messages flowing.
- Faster recovery for pending Chatwoot events: Events retry within seconds after a brief database connection shortage, preventing pending-event alerts when processing can resume normally.
🇧🇷 Português
🐛 Correções
- Menos alertas falsos de saúde durante a noite: Instâncias movimentadas deixam de gerar alertas repetidos de tempo esgotado na atualização diária do limite de envios, e os envios já seguiam normalmente.
- Recuperação mais rápida de eventos pendentes do Chatwoot: Eventos voltam a ser processados em segundos após uma falta breve de conexões com o banco, evitando alertas de pendência quando o processamento pode continuar.
v1.56.0
Changes
- feat(dashboard): every block reads its own route, and the kept-days engine is gone (#1739)
- test(code-sandbox): the render and error-read deadline tests run on an injected tick clock (#1751)
🇺🇸 English
⚡ Improvements
- Dashboard opens much faster: A 30-day view opens in seconds, with each block showing final figures independently and offering its own retry if loading fails.
🇧🇷 Português
⚡ Melhorias
- Dashboard abre muito mais rápido: A visão de 30 dias abre em segundos, com números definitivos por bloco e botão para tentar novamente onde houver falha.
v1.55.0
Changes
- feat(occurrences): a critical list marks serious themes, which lead the panel in their own color
- feat(dashboards): a row grouped by attribute opens the occurrence themes of its conversations
- feat(occurrences): flag a spike within a minute or two of the cadence
- feat(conversations): a turn that called tools leaves one private note naming them (#1736)
- feat(conversations): a turn that survived an error says so in the Chatwoot conversation (#1741)
- fix(test-mode): a test-mode agent opens its silenced conversations for the team, and /teste takes them back (#1734)
- fix(dashboard): handoff, silence and follow-up figures read facts written by triggers (#1735), and the background warming pass is gone (#1728)
- fix(instance-health): measure each statement against the budget it ran under (#1740)
- fix(mcp): tools/list leaves the draft-07 dialect and empty additionalProperties out of every input schema (#1745)
- fix(db): a Postgres restart no longer crashes the app or loops its boot (#1748)
- fix(asaas): the key's own prefix picks the environment, and a wrong environment is said in words (#1747)
- fix(flowlog): retention commits each batch on its own and drains a backlog in passes (#1733)
- docs(license): EULA 3.5, serving your own clients is not making the Software available
🇺🇸 English
✨ What's new
- Critical themes (Pro): An optional critical list guides urgency detection, and flagged critical themes lead the panel and TV mode in their own color.
- Grouped rows open their themes (Pro): Click a dashboard row grouped by an attribute to explore occurrence themes from its conversations.
- Tools and errors in the conversation: Enable conversation notes per agent so teammates see tools used and recovered errors in Chatwoot as activities or private notes.
- License terms clarified: EULA 3.5 allows paid client services in environments you administer, including branded panel access; deployments administered by clients require their own subscriptions.
⚡ Improvements
- Spikes flagged sooner (Pro): Themes crossing a rule are flagged within a minute or two of the cadence, which now supports intervals as short as one minute.
- Faster dashboard: Handoff, silence and follow-up figures load faster on busy instances, with less background database work.
🐛 Fixes
- Postgres restarts: The app recovers from dropped database connections and waits up to two minutes for the database during startup.
- Asaas Pix rejects valid keys: The key selects the correct environment automatically, and environment mismatches get a clear explanation.
- Execution logs keep growing: Retention now clears expired logs even when a backlog has accumulated.
- Test conversations reach the team: A test-mode agent opens conversations it leaves unanswered for the team, and /teste returns them to the agent.
- False database alerts: The super admin database screen now measures queries against their actual time budgets, avoiding false alerts for healthy dashboard reads.
🇧🇷 Português
✨ Novidades
- Temas críticos (Pro): Uma lista opcional orienta a identificação de urgências, e temas críticos sinalizados aparecem primeiro no painel e no modo TV, com cor própria.
- Linhas agrupadas abrem seus temas (Pro): Clique numa linha do dashboard agrupada por atributo para explorar os temas de ocorrências das conversas daquele grupo.
- Ferramentas e erros na conversa: Ative os registros por agente para a equipe ver ferramentas usadas e erros contornados no Chatwoot, como atividades ou notas privadas.
- Termos da licença esclarecidos: A EULA 3.5 permite cobrar pelo atendimento em ambientes sob sua administração, inclusive com painel de marca própria; instalações administradas pelo cliente exigem assinatura própria.
⚡ Melhorias
- Picos sinalizados mais cedo (Pro): Temas que ultrapassam uma regra recebem sinalização em até dois minutos após a rodada prevista, e o intervalo mínimo entre rodadas cai para um minuto.
- Dashboard mais rápido: Os números de transferência, silêncio e acompanhamento carregam mais rápido em instâncias movimentadas, com menos trabalho do banco em segundo plano.
🐛 Correções
- Reinício do Postgres: A aplicação se recupera de conexões interrompidas e aguarda o banco por até dois minutos durante a inicialização.
- Asaas Pix rejeita chaves válidas: A própria chave define o ambiente correto, e divergências entre chave e ambiente recebem uma explicação clara.
- Logs de execução crescendo sem parar: A retenção volta a remover registros vencidos mesmo quando há um acúmulo de logs.
- Conversas de teste chegam à equipe: O agente em modo de teste abre para a equipe as conversas que deixa sem resposta, e /teste devolve a conversa ao agente.
- Alertas indevidos no banco: A tela de banco do superadministrador considera o limite de tempo de cada consulta, evitando alertas indevidos em leituras saudáveis do dashboard.
v1.54.0
Changes
- feat(instance-health): a database screen for the SUPER_ADMIN, with statement timeouts and their plans (#1703)
- feat(dashboards): the themes panel follows a past period, from the flag episodes
- fix(tests): any parallel run sweeps the worker copies of a removed checkout (#1726)
- feat(tools): a customer_choice precondition refuses a call whose values the customer has not chosen (#1716)
- A dashboard chart never repeats a series colour, and its tooltip stays shorter than the chart (#1721)
- fix(dashboard): keep the dashboard's days warm between visits, and learn the part size that fits (#1724)
- fix(chatwoot): an account is one tenant's through every address of its Chatwoot (#1718)
- fix(db): every database session runs in UTC, pinned at connect and checked at boot (#1717)
- feat(agents): the create modal does not offer the call agent until it launches
🇺🇸 English
✨ What's new
- Database screen for superadministrators: Track costly queries, slowdowns and table growth, with alerts for slow queries and timeouts. On existing installations, deployment restarts Postgres once; for external or managed databases, enable query statistics at startup through your provider’s panel.
- Tools wait for the customer’s choice: The new precondition lets the agent act only after the customer chooses or confirms the values.
⚡ Improvements
- Dashboards open quickly after days away: Reports stay ready between visits, avoiding long waits on large databases.
- Clearer dashboard charts: Colors stay distinct, smaller series join “Others,” hover summaries stay short, and clicking a stacked chart’s day opens all its series.
- Themes follow the selected period: Past periods show the themes from that time.
🐛 Fixes
- Scheduled tasks run at the right time: Scheduling, follow-ups and reminders avoid early execution or long delays when the database’s default time zone differs from UTC.
- Internal security and privacy improvements.
🇧🇷 Português
✨ Novidades
- Tela de banco de dados para o superadministrador: Acompanhe consultas pesadas, lentidão e crescimento das tabelas, com alertas de consultas lentas e tempo esgotado. Na instalação existente, o deploy reinicia o Postgres uma vez; em bancos externos ou gerenciados, habilite as estatísticas de consultas na inicialização pelo painel.
- Ferramentas esperam a escolha do cliente: A nova pré-condição permite ao agente agir somente depois que o cliente escolhe ou confirma os valores.
⚡ Melhorias
- Dashboard abre rápido mesmo após dias sem visitas: Os relatórios ficam prontos entre acessos, evitando longas esperas em bases grandes.
- Gráficos do dashboard mais claros: As cores ficam distintas, séries menores entram em “Outros”, o resumo fica curto e clicar num dia empilhado abre todas as séries.
- Temas acompanham o período escolhido: Períodos passados mostram os temas daquela época.
🐛 Correções
- Tarefas agendadas acontecem na hora certa: Agendamentos, retomadas e lembretes evitam antecipações ou longos atrasos quando o fuso padrão do banco difere de UTC.
- Melhorias internas de segurança e privacidade.
v1.53.1
Changes
- test(mcp): the missing-agent dry run names an id the sequence already burned (#1715)
- fix(retention): pace the pass by the WAL it writes, and let it survive a failing thread (#1710)
- feat(mcp): alert channels take their destination URL write-only (#1712)
- fix(setup): the setup token is not a password field for password managers (#1711)
- fix(graph): a replayed thinking block bound to an older prefix is dropped instead of failing the turn (#1709)
🇺🇸 English
⚡ Improvements
- Configure alert channels entirely through the MCP integration. You can now provide the destination URL directly when configuring alerts for instance and agent failures, without having to finish setup in the console. The URL stays securely stored and is never shown back.
🐛 Fixes
- Automatic cleanup finishes on large databases. The cleanup introduced in the previous release now runs at a pace the database can handle and continues past problematic conversations, instead of stopping early and putting the database under heavy load for a few minutes. The first complete cleanup on a large database may take a few hours in the background.
- Agents using Anthropic Claude 5.5 keep responding in existing conversations. Editing an agent’s prompt or tools, or installing an update that changes them, no longer causes the agent to stop responding in conversations with prior history.
- Password managers stop offering to save the setup token as a password. On the instance’s initial setup page, they no longer mistake the setup token for the administrator’s new password.
🇧🇷 Português
⚡ Melhorias
- Configure canais de alerta por inteiro pela integração MCP. Agora você pode informar a URL de destino diretamente ao configurar os alertas de falhas da instância e dos agentes, sem precisar concluir a configuração no console. A URL continua guardada de forma protegida e nunca é exibida de volta.
🐛 Correções
- A limpeza automática termina em bancos grandes. A limpeza que entrou na versão anterior agora avança num ritmo que o banco aguenta e continua mesmo se encontrar uma conversa problemática, sem parar logo no começo nem sobrecarregar o banco por alguns minutos. A primeira limpeza completa numa base grande pode levar algumas horas em segundo plano.
- Agentes com Claude 5.5 da Anthropic continuam respondendo em conversas existentes. Editar o prompt ou as ferramentas do agente, ou instalar uma atualização que os altere, não faz mais o agente parar de responder em conversas que já têm histórico.
- Gerenciadores de senha deixam de oferecer salvar o token de configuração como senha. Na página de configuração inicial da instância, eles não confundem mais o token de configuração com a nova senha do administrador.
v1.53.0
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, setSAFE_FETCH_ALLOW_PRIVATE_NETWORK=truein 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 withCHECKPOINT_RETENTION_INTERVAL_MSandCHECKPOINT_RETENTION_FIRST_DELAY_MS, or raiseCHECKPOINT_RETENTION_GRACE_MSto 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, definaSAFE_FETCH_ALLOW_PRIVATE_NETWORK=trueno 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 comCHECKPOINT_RETENTION_INTERVAL_MSeCHECKPOINT_RETENTION_FIRST_DELAY_MS, ou aumentarCHECKPOINT_RETENTION_GRACE_MSpara 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.
v1.52.0
Changes
- feat(dashboards): a theme row opens its conversations, with contact data per embed link
- fix(occurrences): a theme's links show the conversations the row describes (#1690)
- docs(onboarding): the Hostinger MCP servers are installed locally by the CLI, not run via npx (#1683)
- fix(onboarding): register the Hostinger SSH key through the API and use the v3 MCP tool names (#1681)
- A modal whose body changes height slides to the new center until the person touches it
🇺🇸 English
✨ What's new
-
Open a theme's conversations from the dashboard (Pro). Outside TV mode, click a theme row to see its conversations, newest first, with when the monitor read each one, what the contact reported, contact details, inbox, status, assignee and a link to Chatwoot. When the monitor has a reference field, its label names the reference column, and you can filter by reference value with counts for each, starting with the row's value selected.
-
Choose whether each embed link shows contact data. In the dashboard's Share screen, “Show contact data” starts off for every embed link, including existing links: to show contacts through a link that opens without sign-in, turn it on for that link; otherwise, the server omits names, phone numbers and e-mail addresses from the conversation list. Signed-in console members of the account always see contact data, while viewers admitted through the allowed e-mails or domains list do not.
⚡ Improvements
- Dialogs stay centered as their content changes. When loading or filtering makes a dialog grow or shrink, it moves smoothly to the new center. Once you click or type inside it, it stays in place.
🐛 Fixes
-
Theme row links prioritize the conversations the row describes. Links now open the most recent conversations, with those matching the row's reference first. Previously, they pointed to the theme's oldest conversations, which could concern a different reference.
-
Guided setup on Hostinger uses the current setup flow. When you set up a new instance on a Hostinger VPS, the guide registers your SSH key through Hostinger's API, uses the current MCP tool names and installs the Hostinger MCP servers locally through the CLI.
🇧🇷 Português
✨ Novidades
-
Abra as conversas de um tema pelo dashboard (Pro). Fora do modo TV, clique na linha de um tema para ver as conversas da mais recente para a mais antiga, com o momento da leitura pelo monitor, o relato extraído, os dados do contato, a caixa de entrada, o status, o responsável e um link para o Chatwoot. Se o monitor tiver um campo de referência, a coluna usa o nome desse campo e você pode filtrar pelos valores, com a contagem de conversas de cada um e o valor da linha já selecionado.
-
Escolha se cada link de incorporação exibe dados dos contatos. Na tela de compartilhamento do dashboard, “Mostrar dados de contato” começa desligado em todos os links, inclusive nos existentes: para exibir contatos por um link que abre sem login, ative a opção naquele link; enquanto ela estiver desligada, o servidor não envia nome, telefone e e-mail para a lista de conversas. Membros da conta conectados ao console sempre veem esses dados, enquanto visitantes com acesso pela lista de e-mails ou domínios permitidos não os veem.
⚡ Melhorias
- Janelas se mantêm centralizadas quando o conteúdo muda. Quando um carregamento ou filtro aumenta ou diminui a altura de uma janela, ela se move suavemente até o novo centro. Depois que você clica ou digita dentro dela, ela fica no lugar.
🐛 Correções
-
Links de cada tema priorizam as conversas da linha. Os links agora abrem as conversas mais recentes, começando pelas que correspondem à referência da linha. Antes, eles levavam às conversas mais antigas do tema, que podiam tratar de outra referência.
-
A instalação guiada na Hostinger acompanha o fluxo atual. Ao configurar uma nova instância em um VPS da Hostinger, o guia cadastra a chave SSH pela API da Hostinger, usa os nomes atuais das ferramentas MCP e instala os servidores MCP da Hostinger localmente pela CLI.
v1.51.3
Changes
- fix(chatwoot): a phone reply on a WhatsApp Cloud inbox is read as a person answering (#1677)
🇺🇸 English
🐛 Fixes
- On the official WhatsApp API, a reply typed on the phone now counts as your team answering. When someone replied from the WhatsApp Business app, the agent did not notice: it could keep answering the customer and send follow-ups in a conversation a person was already handling. Now it steps out the same way it does when someone replies from Chatwoot, if that option is on for the agent.
🇧🇷 Português
🐛 Correções
- Na API oficial do WhatsApp, a resposta digitada pelo celular agora conta como atendimento da equipe. Quando alguém respondia pelo app WhatsApp Business, o agente não percebia: podia continuar respondendo o cliente e mandar follow-up numa conversa que uma pessoa já estava atendendo. Agora ele sai da conversa do mesmo jeito que sai quando alguém responde pelo Chatwoot, se essa opção estiver ligada no agente.
v1.51.2
Changes
- fix(followups): an open customer message holds the step only while a turn for it can still come (#1674)
🇺🇸 English
🐛 Fixes
- Inactivity follow-ups could get stuck and slow Chatwoot down. When someone on the team answered a customer straight from the phone, the follow-up kept waiting for a reply the agent would never send, and it checked the conversation in Chatwoot every 30 seconds without end. It now waits only while a reply is actually on the way, and conversations that were stuck move on by themselves after the update.
🇧🇷 Português
🐛 Correções
- O follow-up de inatividade podia travar e deixar o Chatwoot lento. Quando alguém da equipe respondia o cliente direto pelo celular, o follow-up ficava esperando uma resposta que o agente nunca ia mandar e consultava a conversa no Chatwoot a cada 30 segundos, sem parar. Agora ele só espera enquanto existe uma resposta de fato a caminho, e as conversas que estavam travadas seguem sozinhas depois de atualizar.
v1.51.1
Changes
- fix(graph): a directive written before inputs carried a source is matched by the event it carries (#1671)
🇺🇸 English
🐛 Fixes
- Conversations affected by an AI provider outage still cost more than they should. The cleanup in the previous versions missed the follow-up reminders that failed attempts left in the history, so those conversations kept sending all of them to the model on every reply. They are now recognized too, and affected conversations clean themselves up the next time the agent replies.
🇧🇷 Português
🐛 Correções
- Conversas afetadas por uma falha do provedor de IA ainda custavam mais do que deveriam. A limpeza das versões anteriores deixava passar os follow-ups que as tentativas com falha deixaram no histórico, e essas conversas continuavam mandando todos eles ao modelo a cada resposta. Agora eles também são reconhecidos, e as conversas afetadas se limpam sozinhas na próxima vez que o agente responder.