Files

4.3 KiB

📋 LISTA DE TAREFAS — DEPLOY NEWWHATS (FRENTE A: WASABI STORAGE)

Este documento registra o escopo de implementação física, build, deploy e validação das correções da Frente A (Wasabi Storage) realizadas no ambiente de produção da VPS 1.


🚀 FRENTE A: Correções Wasabi Storage

ID Tarefa Arquivo(s) Afetado(s) Status Detalhes
T1 Evitar vazamento de mídia local MessageHandler.ts CONCLUÍDO Adicionado fs.unlink() assíncrono para limpar arquivos locais após upload para Wasabi.
T2 Correção de mediaPath no DB MessageHandler.ts CONCLUÍDO Salvamento de mediaPath = null para mídias salvas com sucesso em storage remoto, forçando o carregamento direto do remote link.
T3 Evitar duplicação de handlers Express UnifiedStorageProvider/index.ts CONCLUÍDO Adicionada flag privada routesRegistered para evitar múltiplos registros de rotas HTTP no Express em reativações.
T4 Interface para deleção recursiva types.ts, StorageProvider.ts CONCLUÍDO Adicionado o método deletePrefix no contrato StorageProviderInterface e wrapper no StorageProviderRegistry.
T5 Implementação de limpeza Wasabi + Fallback UnifiedStorageProvider/index.ts CONCLUÍDO Implementado deletePrefix usando ListObjectsV2Command + DeleteObjectsCommand paginados e remoção recursiva local.
T6 Limpeza de mídias ao deletar instância whatsapp.routes.ts CONCLUÍDO Integrada chamada assíncrona ao storageProvider.deletePrefix na rota DELETE /:id usando prefixo correto.
T7 Correção de carregamento de plugins (Container) Dockerfile, docker-compose.yml CONCLUÍDO Corrigida a ausência da pasta de plugins no container montando-a como volume e criando symlinks para resolução de imports.

📈 Resumo do Status

  • Fase de Planejamento: 100% Concluído
  • Implementação do Código: 100% Concluído
  • Compilação e Transpilação (Plugins): 100% Concluído
  • Build da Imagem e Re-deploy (Docker): 100% Concluído
  • Validação de Logs e Ativação de Plugins: 100% Concluído (Todos os plugins ativos sem erros!)

🔒 Próximos Passos recomendados ao Usuário

  1. Reconexão de Instâncias: Reconectar as instâncias no painel administrativo para reativar as conexões de mensagens e testar o envio de mídias direto ao Wasabi.
  2. Validação do Bucket: Confirmar que os novos arquivos estão sendo gerados sob o prefixo correto whatsapp/{tenantId}/{instanceId}/ dentro do bucket whatsbasemidia.
  3. Validação da Exclusão: Excluir uma instância de teste e verificar a remoção automática das mídias correspondentes tanto localmente quanto no bucket Wasabi.

Última atualização: 08 de Maio de 2026 às 02:00 (UTC).


🚀 FRENTE B: Baileys Engine Swap (Mensagens Ricas no WA Web)

ID Tarefa Arquivo(s) Afetado(s) Status Detalhes / Critérios de Aceite
B1 Instalar fork InfiniteAPI package.json CONCLUÍDO Instalar baileys@github:rsalcara/InfiniteAPI sob alias/coexistência no backend.
B2 Camada de abstração engine engine/official.ts, engine/infinite.ts, engine/index.ts CONCLUÍDO Criar arquivos de ponte de re-export dinâmico dependentes de BAILEYS_ENGINE (infinite ou official).
B3 Mapeamento de imports WhatsAppConnectionManager.ts, MessageHandler.ts, ContactHandler.ts, rich-message.ts, etc. CONCLUÍDO Redirecionar todos os imports diretos de @whiskeysockets/baileys para a nova camada unificada ./engine.
B4 Simplificação de envio de mídias ricas rich-message.ts CONCLUÍDO Refatorar a lógica complexa de binary nodes para invocar os campos nativos do fork InfiniteAPI com fallback inteligente.
B5 Endpoints de Administração & Reinício admin.routes.ts, whatsapp.routes.ts CONCLUÍDO Adicionar rotas GET /engine e POST /engine para persistir escolha no arquivo .env e auto-reiniciar o processo (PM2/Docker).
B6 Componente de Toggle no Painel Admin Frontend (Páginas Admin) CONCLUÍDO Criar interface visual de seleção de engine com aviso de reinicialização (~10s) na aba Sistema de admin/settings.tsx.