> ## Documentation Index
> Fetch the complete documentation index at: https://docs.evolutionfoundation.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# v1.0.0-rc4 — Evo Hub + mensagens interativas

> **Data de publicação:** 25 de maio de 2026
> **Tipo:** Release Candidate
> **Foco:** Integração com Evo Hub + botões interativos do Typebot + hardening de MFA

A `v1.0.0-rc4` chega cerca de **8 dias após a `v1.0.0-rc3`** e se concentra em duas funcionalidades ponta a ponta e uma rodada de hardening de segurança: **Evo Hub** como proxy opcional para canais Meta, **botões interativos do Typebot** atravessando processor / CRM / frontend / widget, e **hardening de MFA** no auth-service (remediação de backup codes pós-EVO-991, invalidação do cache de sessão, fail-open de licensing).

***

## Destaques

### 🔌 Evo Hub como proxy opcional para canais Meta

Agora é possível conectar canais de WhatsApp / Instagram / Facebook através do **Evo Hub** como proxy, em vez de passar pela integração direta com a Meta. A funcionalidade é opt-in — quando o Evo Hub não está configurado, o fluxo direto da Meta continua funcionando como antes.

Integração ponta a ponta:

* **Frontend** — nova página administrativa (URL, API key, webhook secret com gerador embutido `crypto.getRandomValues`) e um `HubConnectButton` para conectar canais via o proxy do Hub.
* **CRM** — webhook receiver dedicado, `InboxBuilder` para inboxes do proxy, ciclo de vida `hub_pending?` / `hub_active?` no model `Channel`, validação reforçada e limpeza que propaga a remoção do webhook para o Hub remoto.

### 💬 Botões interativos do Typebot

Blocos `choice` do Typebot agora são renderizados como **mensagens com botões interativos** em vez de texto puro, tanto no chat principal quanto no widget embutível. A mudança toca três submódulos em conjunto: `evo-ai-processor-community` (#12), `evo-ai-crm-community` e `evo-ai-frontend-community`.

### 🔐 Hardening de MFA (auth-service)

* **Backup codes em texto puro de deploys pré-correção foram invalidados** (EVO-991) — uma migração one-shot zera `otp_backup_codes` e limpa `mfa_confirmed_at` para qualquer usuário cujo array ainda contenha entradas legadas não-BCrypt. Usuários afetados são marcados com `mfa_setup_incomplete: true` e contornam o desafio de MFA no próximo login até concluírem a reconfiguração.
* **Cache de sessão invalidado após reconfiguração de MFA** (EVO-1104) — `complete_mfa_setup` agora invalida o cache imediatamente, em vez de esperar até 5 minutos pelo TTL.
* **Fail-open de licensing** — quando o servidor de licensing está inacessível, o auth-service opera em uma janela curta de fail-open em vez de bloquear logins.

***

## Outras mudanças notáveis

### CRM

* **EVO-1088 — Persistência do status de execução de macros + exposição de falhas via webhook** — execuções de macro agora persistem o status (sucesso/falha/mensagem de erro) e expõem falhas no payload do webhook para que automações externas possam reagir.
* **EVO-1372 — Hardening de mensagens interativas** — validação de payload, truncamento para os limites da Meta/WhatsApp, tratamento de casos extremos.
* **Correções de premissas legadas de conta única** — caminhos internos ainda referenciavam o model `Account` removido; pontos de chamada remanescentes foram corrigidos.
* **Listeners de label/conversation reforçados** — caminhos de mutação de `label_list` agora emitem consistentemente via setter.

### Frontend

* **EVO-1088 — Resultado real da execução de macro na UI** (#89) — a UI mostra a mensagem real de sucesso/falha/erro vinda do backend.
* **EVO-1274 — Cadência adaptativa de `useRelativeTime`** (30s / 60s / 10min) — reduz re-renders em conversas com muitas mensagens.
* **EVO-1254 — Indicador de `lastSaved` em linguagem natural** — substitui o HH:MM:SS bruto por "2 minutos atrás" / "agora mesmo".
* **Correções no chat** — contagem total de conversas vinda da API, race condition de `loadMore` em redes lentas, scroll da sidebar / colapso de layout.
* **EVO-1405 — Sidebar de contato busca os dados completos do contato ao abrir**.
* **EVO-1406 / EVO-1407 — Desempacotamento do envelope do `SessionsViewer` + guards defensivos de stats**.

### Auth Service

* **EVO-1104 — Push do questionário de onboarding** — implementação do push de respostas mais um endpoint de retomada para usuários que abandonaram o fluxo.
* **Provider de storage em runtime** (EVO-1050) — mudanças na UI Admin entre S3 / GCS / storage local passam a valer no processo em execução sem restart. Log de warn emitido em caso de fallback para o default.
* **Downgrade da versão da migração do ActiveRecord 7.2 → 7.1** — alinha com a versão do Rails efetivamente em uso; evita erros de boot durante `db:migrate`.

### Processor

* **Renderização de botões interativos do Typebot** (#12) — em conjunto com as mudanças correspondentes em CRM e frontend.

### Core Service

* **Sem mudanças funcionais** — tag emitida para manter a família CRM Community alinhada em uma única versão de release-candidate.

***

## Notas de atualização

* ✅ **Automático** — a maioria das mudanças se aplica no restart do container. Nenhuma nova variável de ambiente foi introduzida para usuários finais.
* ⚠️ **Migração de auth com lock por linha** — a migração de invalidação de backup codes do EVO-991 executa um `UPDATE` com lock por linha na tabela `users`. Para bancos com mais de 100k usuários, agende uma janela curta de manutenção.
* ⚠️ **Prompt de reconfiguração de MFA** — usuários que tinham MFA habilitado antes da v1.0.0-rc4 serão solicitados a configurar o TOTP novamente no próximo login. Trata-se de medida preventiva pós-EVO-991, não de resposta a um vazamento confirmado.
* ⚠️ **Migração de limpeza de schema legado no CRM** — remove tabelas descontinuadas. Sem impacto em dados de produção (as tabelas não estavam em uso). Rode `db:migrate` na atualização.
* 📝 **Nenhuma nova env var** é exigida pela funcionalidade do Evo Hub, a menos que você opte por habilitá-la (configure via UI Admin).

***

## Compatibilidade

* Compatível com deploys da `v1.0.0-rc3` — caminho de upgrade direto.
* Nenhuma breaking change na API pública.
* Imagens Docker publicadas sob a org `evoapicloud` no Docker Hub. A tag Docker remove o `v` inicial (git `v1.0.0-rc4` → Docker `1.0.0-rc4`).

***

## Referência técnica

* [CHANGELOG — evo-crm-community (umbrella)](https://github.com/evolution-foundation/evo-crm-community/blob/main/CHANGELOG.md)
* [CHANGELOG — evo-ai-crm-community](https://github.com/evolution-foundation/evo-ai-crm-community/blob/main/CHANGELOG.md)
* [CHANGELOG — evo-ai-frontend-community](https://github.com/evolution-foundation/evo-ai-frontend-community/blob/main/CHANGELOG.md)
* [CHANGELOG — evo-auth-service-community](https://github.com/evolution-foundation/evo-auth-service-community/blob/main/CHANGELOG.md)
* [CHANGELOG — evo-ai-processor-community](https://github.com/evolution-foundation/evo-ai-processor-community/blob/main/CHANGELOG.md)
* [CHANGELOG — evo-ai-core-service-community](https://github.com/evolution-foundation/evo-ai-core-service-community/blob/main/CHANGELOG.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.