ecom-store/HANDOFF-2026-07-06.md
Iris Florencio d8d68df884 docs: HANDOFF completo do estado M5 em 06/jul/2026
Documento de continuidade que captura:
- Ideia principal do projeto (motor e-commerce multi-canal BR)
- Inventário completo do que está rodando (20 containers, 18 skills ecom)
- Validação do que funciona (8 subdomínios HTTP 200)
- Pendências priorizadas (3 criticas, 5 importantes)
- Avaliação honesta (skill-quality: o que está otimo e o que precisa melhorar)
- 3 opções de proximo passo (A: Fase 5, B: motor, C: higienizar)

Decisao de qual seguir fica com a Iris.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-06 17:08:33 -03:00

12 KiB

HANDOFF M5 — Estado da Operação e Plano de Continuidade

Data: 06/jul/2026 VPS: 31.220.78.126 (Ubuntu 24.04, 193GB disco 36% usado, 11GB RAM 5.3GB usado) Operador: Iris Florencio Sessão atual: Conan Sonnet 4.6 via cc


🎯 IDEIA PRINCIPAL (origem do projeto)

Construir um motor e-commerce multi-canal para o mercado brasileiro operando 6 canais simultaneamente:

# Canal Tipo Status
1 Mercado Livre Marketplace skill pronta
2 Shopee Marketplace skill pronta
3 Amazon Marketplace FBA skill pronta
4 Magazine Luiza Marketplace skill pronta
5 TikTok Shop Live Commerce skill pronta
6 Site Próprio B2C + B2B skill pronta

Stack tecnológico-alvo: Saleor (motor headless) + PostgreSQL + Redis + n8n (orquestração) + Docker + Traefik (proxy TLS) + OpenWA (WhatsApp) + Twenty CRM (clientes) + Chatwoot (suporte).

Diferenciais brasileiros: LGPD, CDC, NF-e, eventos sazonais (Black Friday, Dia das Mães, Páscoa, Dia do Cliente).

Stack AI: custom:aibee (aibee.cloud) como LLM principal, Ollama localhost:11434 (qwen3.6, deepseek-v4) como fallback, NVIDIA APIs grátis (Nemotron, Kimi) como fallback secundário.


📦 O QUE TEMOS (inventário de tudo que existe)

Infraestrutura rodando agora (20 containers)

Core M5 (motor e-commerce)

  • m5_saleor (porta 8000) — motor headless, GraphQL em https://loja.m5digital.net.br
  • m5_saleor_dashboard (porta 80) — admin em https://dashboard.m5digital.net.br
  • m5_postgres (5432) — banco principal
  • m5_redis (6379) — cache/queue
  • m5_n8n (5678) — orquestração em https://n8n.m5digital.net.br
  • m5_traefik (80, 443, 8090) — proxy reverso + TLS

Comunicação

  • m5_openwa (2785) — WhatsApp Business em https://wa.m5digital.net.br (sessão marcos-pessoal READY, bussines-m5 pendente escanear QR)
  • chatwoot-chatwoot-1 + sidekiq + postgres + redis — Suporte em https://chat.m5digital.net.br

CRM (novo no lugar do Hermes CRM descartado)

  • twenty_front + twenty_postgres (5434) + twenty_redis — Twenty CRM multi-tenant em https://crm.m5digital.net.br
  • container de chatwoot mantido por enquanto (decidir se mantém ou descontinua)

Gestão

  • m5_gitea (3000, 2222) — código-fonte em https://git.m5digital.net.br
  • portainer (8000, 9000, 9443) — UI de Docker (acessível direto, sem traefik)

Proxy LLM

  • omniroute (20128) + omniroute-redis — roteador de APIs Anthropic-compatíveis com sticky sessions (gateway.digitalavello.shop)

Operações auxiliares

  • yt-pub-livesx-dashboard-1 + scheduler-1 — pipeline de vídeo (inema)

Repositórios / código produzido

Local Estado
https://git.m5digital.net.br/m5digital/ecom-store 2 commits pushados (m5log + workflows + Traefik)
Token de acesso Gitea salvo em /root/ecommerce/.gitea_token (chmod 600, fora do git)

Conteúdo atual do repo ecom-store:

ecom-store/utils/{__init__.py, example_usage.py, m5log.py}
ecom-store/README.md, .gitignore
scripts/traefik-conf/routes.yml
workflows/{README-FASE5-OPENWA-TWENTY.md, m5-openwa-to-twenty.json, m5-twenty-to-openwa.json,
           chatwoot-integration.json, n8n-current/*.json}

Capacidades AI / Skills Hermes instaladas (~40 skills)

E-commerce (18):

  • marketplaces: ecommerce-amazon, ecommerce-mercadolivre, ecommerce-shopee, ecommerce-magalu, ecommerce-tiktok-shop
  • canais próprios: ecommerce-site-proprio, ecommerce-b2b, ecommerce-b2c, ecommerce-dropshipping
  • estratégia: ecommerce-gtm, ecommerce-marketing-automation, ecommerce-peak-events, ecommerce-omni-channel, ecommerce-analytics, ecommerce-legal-br, ecommerce-logistics, ecommerce-unit-economics
  • setup: setup_ecommerce-setup, tutorial_ecommerce-tutorial
  • consolidação: ecommerce-ccops

Produtividade (5 criadas): skill-status, skill-context, skill-quality, skill-ultrathink, skill-auto-verify

N8N + DevOps: nvidia-apis, mlops, data-science, autonomous-ai-agents, computer-use

INEMA materials em /root/inema_materiais/:

  • viralads/ — curso UGC, ViralAds (skill pra anúncios)
  • yt-pub-livesx/ — pipeline de vídeo Docker (rodando)
  • ads-skill.zip (já instalado em ~/.hermes/skills/ads-skill/)
  • ClaudeOS-Hermes-V2.3.zip — dashboard operacional (88MB)

Backups críticos

Local Conteúdo
/root/backups/2026-07-06_pre-crm-reorg/ Pre-fase3 (substituição Hermes→Twenty CRM)
/root/ecommerce/backup/ 7 snapshots do vault (29/jun → 05/jul) — vault_*.tar.gz, 167KB cada
/root/ecommerce/logs/ Logs m5log (JSON clean rotacionado)
/root/backups/2026-07-06_pre-crm-reorg/hermes-crm-*.{tar.gz,dump} Hermes CRM código + DB + minio (manter 30d no mínimo por descarte)

🟢 O QUE FUNCIONA (validado hoje)

Componente Validação
loja.m5digital.net.br (Saleor) HTTP 200
dashboard.m5digital.net.br (Saleor admin) HTTP 200
git.m5digital.net.br (Gitea) HTTP 200, push feito (commit 492fed6)
n8n.m5digital.net.br HTTP 200, 3 webhooks ativos respondendo
wa.m5digital.net.br (OpenWA) HTTP 200, API key funciona, sessão marcos-pessoal READY
crm.m5digital.net.br (Twenty CRM) HTTP 200
chat.m5digital.net.br (Chatwoot) HTTP 200
video.m5digital.net.br (yt-pub-livesx) HTTP 401 auth interno (esperado, HEAD 200)
http://31.220.78.126:8090 (Traefik dashboard) UP
http://31.220.78.126:2785 (OpenWA direto) UP
Backup pre-Fase 3 íntegro, MANIFEST.md com SHA-256

Logger M5 (commit 492fed6)

  • Wrapper loguru com 3 modos: texto (default), JSON (M5_LOG_JSON=1), JSON clean para Loki/Elastic (M5_LOG_JSON_CLEAN=1)
  • 3 sinks: console colorido + m5-{date}.log (30d retenção) + m5-errors-{date}.log (90d)
  • Compressão gzip automática
  • Função bind_context(**kwargs) para agents/requests
  • example_usage.py com 4 cenários reais

🔴 O QUE ESTÁ PENDENTE / QUEBRADO

Crítico (bloqueia operação)

  1. Setup manual do Twenty CRM via browser (https://crm.m5digital.net.br)

    • Você está fazendo agora
    • Bloqueia: criação de workspace, schema customizado, configurações iniciais
  2. Setup manual do n8n via wizard de login (https://n8n.m5digital.net.br)

    • DB resetado via user-management:reset, precisa definir nova senha
    • Login web está rejeitando qualquer senha (problema de auth auth—investigar separadamente)
    • 3 webhooks legados ativos mas são apenas stubs sem lógica
  3. Sessão WhatsApp bussines-m5 não foi escaneada

    • Acessar dashboard https://wa.m5digital.net.br, escanear QR
    • Bloqueia testes WhatsApp → Twenty CRM

Importante

  1. Workflows n8n precisam ser importados via UI

    • m5-openwa-to-twenty.json (WhatsApp → CRM)
    • m5-twenty-to-openwa.json (CRM → WhatsApp)
    • README com passo-a-passo: /root/ecommerce/workflows/README-FASE5-OPENWA-TWENTY.md
  2. Registrar webhook OpenWA → n8n

    • curl pronto no README, depende da sessão ativa
  3. Webhook Twenty → n8n (configurar via Settings do Twenty)

  4. Saleor sem produtos (zerado em 21/jun/2026)

    • Pendência desde 22/jun (vide PONTO-DE-PARTIDA-22jun2026.md)
    • Criar admin + catalogar produtos
  5. Sessão WhatsApp bussines-m5 (repete #3, está aqui também)

Melhorias

  1. n8n warning X-Forwarded-ForN8N_TRUST_PROXY=true já está setado mas o warning persiste
  2. Gitea está usando HTTP interno (porta 3000), precisa fix se quiser parar de usar Traefik
  3. Multi-tenant workspace Twenty — configurar quando finalizar setup inicial
  4. INEMA materials instalados mas parcialmente explorados (yt-pub rodando, viralads parado)
  5. Chave do gateway.digitalavello.shop (omniroute) — token OK mas config de sticky sessions precisa ser afinada
  6. Pipeline de vídeos (yt-pub-livesx) tem auth interna, documentar credenciais para a Iris

Descontinuado / descontinuável

  • Hermes CRM — substituído por Twenty (containers parados, removidos; backups em /root/backups/2026-07-06_pre-crm-reorg/)
  • 5 services Traefik (crm-frontend, crm-backend, e routers associados) removidos
  • Rede hermes_crm_network órfã (só tem m5_traefik conectado, pode ser removida se quiser limpar)

💡 AVALIAÇÃO HONESTA (skill-quality: questionar respostas medíocres)

O que está ótimo

  • Traefik limpo e validado — IP fixos eliminados, todos os subdomínios respondem
  • Logger M5 — implementação profissional (3 modos, rotação, contexto), reutilizável em todo o motor
  • Documentação de Fase 5 — README detalhado pra você executar tudo no browser quando voltar
  • Substituição Hermes → Twenty CRM — conservadora (backup completo + validação HTTP), sem perda de dados
  • Repo no Gitea + token versionado — push feito, autoria sua

O que precisa melhorar

  • Zero automação rodando de verdade — workflows são stubs ou JSON não-importados
  • Falta E2E test — nenhum teste validou WhatsApp→CRM→WhatsApp ponta-a-ponta
  • Investimento em "como fazer" ainda alto — cada fase precisa decisão sua (Twenty wizard, n8n wizard, escanear QR, importar workflows manualmente)
  • Vault Obsidian não foi atualizado nesta sessão (fonte de verdade está dessincronizada)
  • Integração com 6 marketplaces (Mercado Livre, Shopee, etc) tem skills prontas mas 0 código de integração feito

Riscos identificados

  1. Login n8n quebrado — o user-management:reset recriou o user mas a senha nunca pega. Pode ser cache de cookie/IP rate-limited (HTTP 429 visto). Solução temporária: n8n import:entities --truncateTables no DB limpo + re-import dos JSON. Solução definitiva: investigar JWT secret vs encryptionKey
  2. Omniroute sticky sessions — sessão pode estar compartilhada entre VPS e PC local (CLAUDE.md alerta: "SAME bot Telegram em VPS + PC local = CONFLITO"). Verificar se omniroute tem o mesmo problema
  3. Hermes CRM backups em /disk — arquivos pequenos (5KB DB, 42KB source) — pode ser CRM vazio mesmo. Verificar se vale manter 30d ou apagar logo

🛣️ PRÓXIMOS PASSOS SUGERIDOS (sem começar nada ainda)

Você disse "antes de prosseguir" — sugiro a Iris decidir entre:

Opção A — Continuar Fase 5 (integração WhatsApp ↔ Twenty)

  • Você finaliza wizard Twenty + wizard n8n (browser)
  • Eu importo os 2 workflows via n8n CLI (sem precisar de auth web)
  • Crio sessão bussines-m5 (escaneando QR com você)
  • Teste end-to-end com 1 mensagem real

Opção B — Pular pra motor e-commerce

  • Larga WhatsApp/Twenty pra depois
  • Foca em catalogar produtos no Saleor (1 categoria → 100 SKUs de teste)
  • Cria API token Saleor para uso programático
  • Ativa 1 marketplace (provavelmente Mercado Livre, o de maior prioridade)

Opção C — Higienizar instância

  • Apaga arquivos do Hermes CRM (já tem backup)
  • Limpa hermes_crm_network órfã
  • Remove stubs do n8n
  • Cria README operacional atualizado (esse doc)
  • Commita tudo no Gitea

Eu sugiro A (continuar o que começamos), mas decisão é sua. Posso seguir A direto, ou aguardar seu OK.


📁 ARQUIVOS IMPORTANTES REVISITAR

Caminho Para que serve
/root/ecommerce/HANDOFF-2026-07-06.md ESTE ARQUIVO
/root/ecommerce/CLAUDE.md Visão geral do projeto (última atualização 22/jun)
/root/ecommerce/PONTO-DE-PARTIDA-22jun2026.md Status detalhado do dia 22/jun
/root/ecommerce/workflows/README-FASE5-OPENWA-TWENTY.md Passo-a-passo pra finalizar Fase 5
/root/ecommerce/scripts/traefik-conf/routes.yml Roteamento HTTP, 9 subdomínios
/root/ecommerce/ecom-store/utils/m5log.py Logger M5 (303 linhas, núcleo do motor)
/root/.claude/CLAUDE.md Skills Hermes auto-invocadas
/root/inema_materiais/ Material INEMA (cursos, ads, vídeo)
/root/backups/2026-07-06_pre-crm-reorg/MANIFEST.md Inventário com SHA-256