# newwhats.clube67.com — Tarefas / Pendências (checklist) > Lista mestra de pendências do motor ↔ satélites. Sincronizada com a task list > da sessão. Atualizar marcando `[x]` ao concluir e mover detalhes para a doc de > estado correspondente. Última revisão: 28/jun/2026. ## Regra de ouro (registro bidirecional) - Cada **plugin satélite é único do projeto onde está instalado** (ex.: o `newwhats` do `mercado.clube67.com` ≠ o de outro projeto). - **Toda mudança no plugin deve ser registrada no motor, e toda mudança no motor que afete o contrato deve ser registrada em cada plugin.** Ver [integracao-satelites.md](integracao-satelites.md) (contrato central) e o `INTEGRACAO-MOTOR.md` dentro de cada plugin. - O **plugin é um braço inteligente do motor** — não duplica lógica; consome, alimenta e configura o motor. ## Integração satélite ↔ motor (faseado) - [x] **Fase 1** — Contrato documentado (`integracao-satelites.md`). - [x] **Fase 2** — Compatibilidade de API: alias `GET /secretaria/numbers` no ext-api. - [ ] **Fase 3** — Validar config/conexão (`newwhats_url`, `integration_key`, `api_token`, `webhook_secret`) do satélite → motor (dev/prod) + HMAC do webhook. _Bloqueado: requer credenciais reais._ - [ ] **Fase 4** — Rodar `sync-knowledge` end-to-end (satélite → motor) e validar RAG. _Bloqueado: requer satélite rodando + Fase 3._ - [ ] **Fase 5** — Satélite consumir `messages.transcription` do motor e **remover `media-transcribe.js`** redundante. Unificar fonte da chave Gemini (`cfg.gemini_key` vs `process.env.GEMINI_API_KEY`). ## Wasabi / mídias - [x] Upload fire-and-forget + proxy público de leitura (avatares e mídias). - [x] `StorageProvider.deletePrefix(prefix)` (delete por prefixo). - [x] **Index de mídias** — `GET /api/instances/:id/media-index` (chat/tipo/período, byType, paginado). Ver [wasabi-midias.md](wasabi-midias.md). - [x] **Delete em lote** — `POST /api/instances/:id/media-batch-delete`, coordenado **DB ↔ Wasabi**, dryRun por padrão + `deleteObjects` em lote. - [ ] Index por tamanho (bytes) — falta coluna `mediaSize`. - [ ] Reconciliação DB ↔ bucket (achar órfãos). - [ ] Política de retenção (arquivar/descartar áudio após transcrição salva). ## Ativação do WhatsApp (trajeto inteligente) - [ ] Transformar `POST /` + `POST /:id/connect` em um **trajeto guiado e idempotente** que cria e configura a conta no motor automaticamente (instância, pair/tenant, setor + secretária default, webhook, engine, detecção Business). Ver [ativacao-whatsapp.md](ativacao-whatsapp.md). O satélite orquestra como braço do motor. ## Inbox / Secretária (já entregue nesta frente) - [x] Transcrição/descrição no motor (Gemini) → `messages.transcription`. - [x] Exibição da transcrição no inbox (🎤 áudio / 👁 imagem) + socket `message:transcription`. - [x] Memória de longo prazo por contato (`sec_contact_memory`). - [ ] Ritmo humano da Secretária (typing + delay + quebra em 2–3 msgs). - [ ] Resposta em áudio (TTS) — opcional. ## Validações pendentes de ambiente - [ ] Pareamento do WhatsApp dev (avatares/fixados) quando o aparelho voltar.