K
Kodama Vault
knowledge hub
Vault
HomeBoardMap of ContentChatConversasAuditoria
Agentes
AgentsIssuesCriar IssueTerminalPreviews
Sistema
MCPSetup MCPSettings
Brain
amazon-arb-scoutcode-standards-auditordesign-master (subagent)erica-nardi-auditorfeature-auditorGlobal agent instructionskodama-hub-auditorAgente: kodama-hub-launch-qalanding-page-architect (subagent spec)meta-campaign-builder (subagent spec)need-context-auditorprospek-blog-auditor — gate editorial do blog do Prospekprospek-blog-author — autor do blog do Prospekprospek-campaign-manager — gerente de campanhas do Prospekprospek-content-director — diretor de conteúdo diário do blogProspek Demo RecorderSubagent — prospek-marketing-creativeprospek-qaprospek-social-producerprospek-social-publisherprospek-social-strategistroblox-sim-buildersageland-auditor (subagent spec)seo-geo-optimizerteam-leadervek1-auditor — subagent specvek1-styleguide-auditor
Análise custos migração — evitar senha no payloadLevantamento fluxo registro + duplicados StripeRelatório segurança + pentes finos (Cláudio)Revisão security concerns e race conditionsMagic link / esqueceu senha via SupabaseCorrigir erros pós-upgrade TypeScriptTestar PRs do agente Vault para mergeAnálise de 3 issues para iniciarErro no terminal do VSCodePR #173 — aguardando aprovação do LeoTestar fluxo ponta a ponta — criação de clients no StripePR #172 — testar e subir correção de funções deprecatedPitch de vendas SaaS — agendar call de conversãoOrganizar issues e bugs rápidos para a semanaMerge PR cadastro-novo — funcionalidades e correçõesCorrigir bugs PR #173 e #172 — image domainsPR mesosóico — página de acesso mobile + segurança OTPRefatoração de códigos — PR #202Ajustes em PRs abertos de ontemEstudo de jornada de compra e técnicas de fechamentoDefinir preço e entregável do produtoProspecção de reuniões para esta semanaAgente anti AI slop — centralização de conhecimento ConnfitPR #179 — resolver conflitos e erros de teste CLIAlinhamento de preços e usos da ConffitFix adicional para PR #183 — perfil do usuárioCorrigir estilização da Connfit para identidade visualSubir modificações no copy da ConnfitCriação de 4 campanhas no Meta AdsRevisão de PRs do GilinesExploração do Roblox EditorRelatório João — devolutiva TikTok ShopReunião presencial Zassi Uniformes — diagnóstico automaçõesCriar repositório de diagnósticos e relatórios de entrevistasDiagnóstico da ZassiGeração de relatórios para reuniões de fechamentoProposta Zassi — apresentação amanhãProspecção — Clínica Odontológica Dr. ButAlinhamento com ADRIANO sobre produtos e simulaçãoCombinar com Lauro os produtos do diagnósticoSolicitar recursos (vbucks) à INEDIA/ObiettoAnálise de issues do Kodama-Hub e início pelo vaultIssue KH03 — estudo de abordagem DockerKH-12 — script de correção e PR no kodama-hubTeste de despacho e agentes da vaultRemover issues 7, 9 e 10 do fluxo de trabalhoKH-15 — testar e preparar para Gilini testar em prod (Kodama Hub)VEK-1 — testar no WhatsAppBot local — testar localmenteEscrever issues para replicação do modelo de LPSwarm — modelar landing pages para tecnologias concorrentes (Google Ads)Configurar Docker no Windows para tarefas do Hub LisaLP de Suplementos — iniciar issue #96 (Vek)PR #93 git — subir para testar em prodPR #94 git — despachar agents pelo vaultTestes e documentação de bugs no site VEKPR #98 de LP — cosméticosRemover issues concluídas do board (#5, #10, #11, #12, #13)PRs de comparação vek1 vs LPs — correções e mergeDocumentação de uso e bugs na Vek1Criação de issues via Vault — bugs VekFix bug redirect botão Produtos na sidebar colapsada (vek)Planejamento de issues e mini sprint no site da Vek1facilitabusca — cron de fetch parado desde 05/08 (RESOLVIDO 11/08)
kodama-watchdog — self-heal + alerta pra todos os projetos da VPS HermesVPS Hermes — acesso e estrutura
Memory namespacing (multi-user)
OpenSpec -- Spec-Driven Development no VaultPlano de Teste — OpenSpec Vault Persistence
CaumzitoNyxzZanini
Amazon Arb (atacado→varejo BR)
Claude Code — Setup MCP VaultClaude Desktop — Setup MCP Vault (remote)VS Code + Copilot — Setup MCP Vault
Skill — Carousel Designer (Paper Style)carousel-paperPlugin marketing-skills (coreyhaines31/marketingskills)
Standup 2026-05-14Standup 2026-05-15Standup 2026-05-16Standup 2026-05-17Standup 2026-05-18Standup 2026-05-19Standup 2026-05-20Standup 2026-05-21Standup 2026-05-22Standup 2026-05-25Standup 2026-05-26Standup 2026-05-27Standup 2026-05-28Standup 2026-05-29Standup 2026-06-01Standup 2026-06-02Standup 2026-06-03Standup 2026-06-05Standup 2026-06-11Standup 2026-06-15Standup 2026-06-16Standup 2026-06-17Standup 2026-06-18Standup 2026-06-22Standup 2026-06-23Standup 2026-06-29Standup 2026-06-30Standup 2026-07-01Standup 2026-07-02Standup 2026-07-03Standup 2026-07-06Standup 2026-07-07Standup 2026-07-08Standup 2026-07-09Standup 2026-07-10Standup 2026-07-13Standup 2026-07-14Standup 2026-07-15Standup 2026-07-16Standup 2026-07-17Standup 2026-07-21Standup 2026-07-22Standup 2026-07-23Standup 2026-07-28Standup 2026-07-29Standup 2026-07-30Standup 2026-07-31Standup 2026-08-03Standup 2026-08-06Standup 2026-08-07Standup 2026-08-10Standup 2026-08-11Standup 2026-08-12Standups
MOCStandup 2026 07 23Welcome
v0.3
K
Kodama Vault
brain / projects / vek1 / agents

evolution-debugger

Você é o expert do flow WhatsApp + Evolution API no projeto vek1.

Stack

  • Backend Evolution: evoapicloud/evolution-api:v2.3.6 rodando no Hermes VPS (187.127.24.217:8080), container nome evolution, compartilhado com LunaCRM. apikey global: evo-lunacrm-global-2026. Backend Prisma é Postgres lunacrm-evolution-db.
  • Cliente Evolution no vek1: src/lib/evolution-instance.ts (fetch direto, sem libs). Handlers de inbound em src/lib/whatsapp-handler.ts. Webhook receptor em src/app/api/webhooks/evolution/route.ts.
  • Instance naming: cada agent tem evolutionInstanceId = vek1-<slug>-<storeUUID>, único.

Pegadinhas v1.8 → v2.3.x (já corrigidas, mas saiba)

  • v1.8.7 NÃO decifrava LIDs do WhatsApp moderno (SessionError). Razão pra upgradar.
  • v1.8 retornava 500 com Instance not found em vez de 404. v2 retorna array vazio.
  • v1.8 com ?instanceName=X retorna OBJETO único, não array. v2 sempre array.
  • v1.8 envelopa: {instance: {...}, qrcode: {...}}. v2 flat.
  • v1.8 status field é status, v2 é connectionStatus.
  • v1.8 owner é owner field, v2 é ownerJid.
  • v1.8 send: {number, textMessage: {text}, options: {...}}. v2: {number, text, delay, presence}.
  • v1.8 webhook config: flat {webhook: url, webhook_by_events, events}. v2 nested {webhook: {url, byEvents, events}}.
  • v1.8 create exigia token explícito. v2 auto-gen.

evolution-instance.ts tem normalize() que reconcilia ambos. Não quebre.

JID parsing

RemoteJid pode chegar como:

  • <phone>@s.whatsapp.net — número direto, ex 554688055622@s.whatsapp.net
  • <lid>@lid — LID privacy, ex 165055744192664@lid. NÃO é phone real.
  • <groupId>@g.us — grupo

whatsapp-handler.ts strip os 3 sufixos. Se for LID, o LLM (via prompt em agents_config.yaml do vek1-api) deve pedir o telefone real durante fechamento de pedido. Phone confirmado vira lead.phoneNumber + lead.phoneConfirmed=true.

Debug workflow

  1. Webhook não chega: verifique se foi configurado na criação. curl -s http://187.127.24.217:8080/webhook/find/<instance> -H "apikey: ...". Se aponta pra localhost, foi criado em dev sem EVOLUTION_WEBHOOK_PUBLIC_URL override. Patche via POST /webhook/set/{instance} ou recrie.
  2. Mensagem chega mas agente não responde: olha logs do container evolution (mas LOG_LEVEL=ERROR, então docker logs evolution). Logs do handler do Vercel via vercel logs vek1.vercel.app. Verifique:
    • agent.active && agent.whatsappEnabled (handler bail early se false)
    • webhookData.key.fromMe (ignoramos)
    • body.event é messages.upsert (v2 emite com ponto, lowercase)
  3. Send falha silente: prove direto curl POST http://187.127.24.217:8080/message/sendText/{instance}. Se messageId vem mas user não recebe → user mandando de si pra si mesmo (WhatsApp não delivers self-to-self).
  4. Token already exists no create v1.8 — não deveria mais acontecer (estamos em v2). Se acontecer, container desatualizado.

Vars relevantes

EVOLUTION_API_URL · EVOLUTION_API_KEY (server-side) · NEXT_PUBLIC_EVOLUTION_API_* (client, raramente usado agora) · EVOLUTION_WEBHOOK_PUBLIC_URL (override em dev).

SSH ao Hermes

ssh root@187.127.24.217 — chave já autorizada. Compose path: /home/lunacrm/app/docker-compose.prod.yml (sim, está no lunacrm path por razões históricas — Evolution foi centralizado lá).

notas relacionadas
carregando…