2a99eb9c16
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.7 KiB
3.7 KiB
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
newwhatsdomercado.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 (contrato central) e o
INTEGRACAO-MOTOR.mddentro 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)
- Fase 1 — Contrato documentado (
integracao-satelites.md). - Fase 2 — Compatibilidade de API: alias
GET /secretaria/numbersno ext-api. - Fase 3 — Config/conexão auditada: ext-api
x-nw-keycasa (satélitenw_t…_001=apiKeydo motor, teste vivo 200); webhook HMAC casa (secretlen 64, url127.0.0.1:4001, eventos ok). Topologia co-locada; live ponta-a-ponta exige satélite rodando co-locado. ⚠️/nw/*usa chave diferente (nwk_…1039) — reconciliar se esse sentido for usado. - Fase 4 —
sync-knowledgerodado end-to-end (driver combuildKnowledgeTextreal do satélitemercado@VPS3 → motor dev). Nóknowledgeatualizado; RAG indexou 4 chunks com embedding Gemini 768d. ⚠️ geração LLM em 429 quota (billing). Fix de brinde:/secretaria/askremoteJid→jid. - Fase 5 — Satélite consumir
messages.transcriptiondo motor e removermedia-transcribe.jsredundante. Unificar fonte da chave Gemini (cfg.gemini_keyvsprocess.env.GEMINI_API_KEY).
Wasabi / mídias
- Upload fire-and-forget + proxy público de leitura (avatares e mídias).
StorageProvider.deletePrefix(prefix)(delete por prefixo).- Index de mídias —
GET /api/instances/:id/media-index(chat/tipo/período, byType, paginado). Ver wasabi-midias.md. - Delete em lote —
POST /api/instances/:id/media-batch-delete, coordenado DB ↔ Wasabi, dryRun por padrão +deleteObjectsem 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)
POST /api/instances/provision— trajeto guiado e idempotente (instância + enginebaileys7+ setor default + webhook/connect opcionais), devolve otrajeto[]visível. Ver ativacao-whatsapp.md.- Detecção Business no connect (grava
isBusiness). - Secretária default automática (plugin) + webhook a partir do pair.
- Gatilho de
sync-knowledgeno fim do trajeto + UI de onboarding.
Inbox / Secretária (já entregue nesta frente)
- Transcrição/descrição no motor (Gemini) →
messages.transcription. - Exibição da transcrição no inbox (🎤 áudio / 👁 imagem) + socket
message:transcription. - 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.