Pre-release candidate for 2.4.0. Built from
develop(commit5624bda). Not merged tomain. Use for validation only; do not deploy to production without further testing.
2.4.0-rc2 (2026-05-17)
Estabilização sobre 2.4.0-rc1. Sem mudanças de banco nem de contrato HTTP — apenas fixes em fluxos do Baileys/WhatsApp e Evolution Channel, suporte nativo a GIF e um caminho opcional de auto-ativação headless da licença.
Fixed
-
WhatsApp — bypass de validação
onWhatsApppara contatos@lid(#2544). Após a migração para LID (Linked Identity) do WhatsApp, contatos cujo JID termina em@lidretornavamexists: falsenoonWhatsAppda Baileys, fazendosendMessageWithTypingesendPresencelançaremBadRequestException. O bypass que já existia para@broadcastfoi estendido para incluir@lid. -
WhatsApp —
quotedagora é propagado emsendWhatsAppAudio(#2516, corrige #2485). Envios de áudio com payloadquoteddeixavam de chegar como resposta encadeada — o áudio caía como mensagem solta. Corrigido nos dois caminhos doaudioWhatsapp(encoded e direct). -
Instance API —
instanceNameagora é trimado na criação (#2546, corrige #2543). Nomes com espaços inicial/final eram persistidos no banco mas, ao serem chamados via URL (DELETE /instance/delete/:name), os espaços eram normalizados, gerando404por mismatch. Aplicado.trim()no início decreateInstance. -
Evolution Channel — instâncias deixam de ficar travadas em
close(#2420, corrige #2419). Como o Evolution Channel é webhook-only (passivo), a instância deveria estar sempreopen. Agora, no boot do monitor e na criação da instância,connectToWhatsapp()é chamado para instânciasEVOLUTIONe oconnectionStatusé persistido comoopenno banco.
Added
-
WhatsApp — suporte nativo a GIF sem conversão para vídeo (#2540). DTO e schema de envio de mídia agora aceitam
gifPlayback(boolean) egifAttribution(0/1/2), propagados para a Baileys. Backward-compat preservado: default seguegifPlayback: falsequando o cliente não envia o campo. -
Licensing — auto-ativação headless via
EVOLUTION_OPERATOR_EMAIL. Quando a envEVOLUTION_OPERATOR_EMAILestá configurada, oinitializeRuntimechama silenciosamente o endpoint/v1/register/autodo licensing server no boot, persiste aapi_keyretornada e ativa a instância — pulando o fluxo de registro pelo browser. Pré-requisito: o e-mail precisa ter sido registrado uma vez previamente no licensing server. Em qualquer falha (e-mail desconhecido, servidor inacessível, key suspensa) o sistema faz fallback não-fatal para o fluxo de registro manual no/manager.
Notas para upgrade a partir de 2.4.0-rc1
- Não há mudança de banco nem de contrato HTTP — basta atualizar a imagem.
- Quem usa
sendWhatsAppAudiocomquotedpassa a ver o áudio como resposta encadeada (comportamento agora alinhado aos demais métodos de envio). - Instâncias do Evolution Channel que estavam em
closeno banco serão promovidas aopenno próximo boot. Se você dependia desse estado para pausar instâncias manualmente, considere usar outro mecanismo de gate, pois esse fluxo passa a ser sobrescrito.
Histórico técnico: CHANGELOG.md