Repository navigation
v0.9.0 — Times privados, cofre de credenciais para a IA e tempo real consertado
Times ganham acesso privado e roteamento, as tools de IA ganham um cofre de credenciais, o tempo real do painel foi consertado e o painel ficou mais leve sob carga.
Destaques
- Times de atendimento, segunda parte. Um time agora tem três modos de acesso: aberto, lista oculta (a conversa some da listagem para quem não é do time, mas abre por link) e privado (a conversa some de tudo — link, detalhe, busca, tempo real e mídia respondem como se não existisse). Cada canal pode definir um time padrão para conversas novas e reabertas, a conversa mostra o time na barra lateral, e a IA ganha uma tool com trava para transferir a conversa a um time. Quem precisa enxergar tudo ganha uma permissão própria (
conversation.team.read_any); o administrador a recebe automaticamente. - Cofre de credenciais para as tools de IA. Uma tool de código que chama uma API externa não precisa mais ter a chave colada no próprio código (que fica no histórico de versões). Cadastre a credencial na aba Tools — vários campos por credencial — e libere para as tools que podem usá-la. O valor entra pela API, chega à tool de forma isolada e é trocado por
***em tudo que a tool devolve. A listagem nunca mostra o valor; um "olho", auditado e re-ocultado em 30 s, revela um campo por vez. - Contador da janela do cliente. Nos canais com janela de resposta (Meta), um chip ao lado do seletor Responder/Mensagem Privada mostra quanto tempo falta, e fica âmbar abaixo de 1 hora.
- Grupos: popup Ver membros (clicar num membro leva ao "Novo contato" já preenchido), filtro de conversas por tipo (grupo/individual) e avisos de "entrou/saiu do grupo" com link. A lista de participantes passou a ser pedida ao número certo quando a instalação tem mais de um canal GOWA.
- Menos peso em picos. Mensagens de grupos que não são permitidos no canal agora são descartadas logo na entrada — antes um disparo em massa em grupos esgotou os descritores de arquivo do servidor em produção. As permissões do usuário passam a ser calculadas uma vez por requisição, e a checagem de quem recebe cada evento do tempo real é feita em lote.
Corrigido
- A barra lateral só atualizava com F5. Uma mudança de segurança no tempo real descartava em silêncio o evento que reordena a lista de conversas. Corrigido, e o contrato de roteamento do WebSocket foi documentado.
- "Mídia indisponível" até recarregar a página. Mídia enviada pelo atendente e mídia recebida do cliente ao vivo chegavam sem identificador na bolha e não carregavam; só o F5 resolvia.
- A IA respondia com letras de outro alfabeto (armênio, japonês…) por engano. Agora a resposta é conferida e, se vier suja, é regerada uma vez sem tools.
- Transferência entre agentes especialistas não acontecia. Um especialista que pedia outro especialista recebia um erro e o turno terminava sem passar a conversa. O pedido agora é redirecionado ao roteador.
- Card de tool assinado pelo agente errado, e turnos de IA fora do webhook (nota privada, plugins) que não deixavam nenhuma execução registrada para investigar.
- Transcrição de áudio chegando ao painel com horário e identificador errados.
- Áudios
.opus,.mp3,.aace.amrbaixavam em vez de abrir em instalações em container (o tipo de mídia não era reconhecido). - Chave
checkout_api_keymascarada na trilha de auditoria.
Também nesta versão
- "Selecionar todos" nos filtros de lista (um botão por grupo nos filtros agrupados).
- Cards de sistema passam a exibir a mensagem citada.
- Lista de modelos de IA usa o endpoint do proxy que já exclui os modelos bloqueados, com fallback para o anterior.
- Monitor de atraso do servidor: registra um aviso no log quando o processamento trava por mais de 1 s.
- Botão Resolver/Reabrir mostra um indicador enquanto a requisição está em andamento.
- Para quem desenvolve plugin: a API de plugins avançou de 1.9.0 para 1.10.0 (aditiva — o método
Channel.should_drop_inboundtem valor padrão, nenhum plugin existente precisa mudar). Changelog emdocs/PLUGIN_API_CHANGELOG.md.
Ações de atualização
- Suba a versão; as duas migrações novas (times e cofre de credenciais) rodam sozinhas no boot.
- Times continuam como estavam. Quem já usava um time restrito permanece no modo lista oculta; o modo privado só vale se você ligar.
⚠️ Credenciais do cofre ficam em texto puro no banco (sem cifra em repouso). Um dump ou backup do Postgres as carrega em claro — proteja o acesso ao banco e aos backups como protegeria uma senha.- Se o executor agêntico usa os papéis
whatsbot_ro/whatsbot_rw, a migração já revoga o acesso deles às tabelas do cofre. Nada a fazer. - Quem tem a permissão de gerenciar tools passa a receber a de gerenciar credenciais automaticamente.
- Se você mantém plugin próprio, confira o
docs/PLUGIN_API_CHANGELOG.md.
📦 O WhatsBot é distribuído enxuto: núcleo + canal WhatsApp (QR Code). Telegram, WhatsApp Cloud API, Messenger, Instagram, widget de site, protocolos de atendimento e follow-up automático entram por Gerenciar Plugins → Importar (.zip).
Changelog completo: v0.8.0...v0.9.0