# šŸ“‹ 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. |