OBrain Sovereign Engine
Architecture & Core01_backendAudit

2026 01 17_diagnosis_report

Diagnóstico Profundo do Sistema OBrain

Data: 17/01/2026 Auditor: Pipeline Antigravity


1. Diagnóstico em 10 Pontos (Fatos Observáveis)

  1. Infraestrutura Hardcoded: O endereço do scraper (http://64.181.167.63...) está fixo no código (price-watch.ts), não em variáveis de ambiente.
    • Evidência: backend-worker/src/services/agents/price-watch.ts:49
  2. God Objects: Arquivos gigantes como admin.ts (51KB) e public-api.ts (35KB) concentram lógica de diversos domínios, dificultando manutenção.
    • Evidência: ls -lh backend-worker/src/routes/
  3. Configuração Incompleta: A interface Bindings (types.ts) não declara explicitamente a URL do scraper, levando ao uso hardcoded.
    • Evidência: backend-worker/src/types.ts
  4. Componentes Desconectados: O serviço deploy/vps-scraper existe mas o processo de deploy dele é manual e desconectado do CI/CD principal.
    • Evidência: deploy/vps-scraper/README.md (instruções manuais).
  5. Tipagem "Any": Uso de any em lugares críticos (ex: AI: any em Bindings) anula a segurança do TypeScript.
  6. Documentação Fragmentada: Docs espalhados em ./README.md, backend-worker/audit_report.md, deploy/.../README.md.
  7. Dependências Implícitas: O root/package.json orquestra scripts mas não gerencia dependências compartilhadas (não é um workspace npm real).
  8. Secrets Misturados: Chaves de diversos serviços (Stripe, ML, CJ) estão em um único objeto Bindings, aumentando a superfície de ataque.
  9. Lógica Cron Oculta: O agendamento de tarefas (PriceWatch) está misturado no index.ts em vez de ter um "Dispatcher" dedicado.
  10. Tratamento de Erros: O PriceWatchAgent engole erros com try/catch genéricos que apenas logam, dificultando alertas automáticos.

2. Por que estamos "apagando incêndios"?

O time vive em modo reativo porque a configuração do sistema é frágil e oculta. Quando o IP da VPS muda (evento comum), o sistema de monitoramento de preços para de funcionar silenciosamente, pois o IP está "chumbado" no código (Ponto 1). Ninguém percebe até um usuário reclamar, pois o erro é apenas logado num console (Ponto 10), sem disparar um alerta real. Além disso, cada mudança no Back-office (admin.ts) carrega o risco de quebrar outras partes, pois o arquivo é monolítico (Ponto 2). A falta de documentação centralizada (Ponto 6) obriga cada desenvolvedor a "redescobrir" como o sistema funciona a cada incidente.


3. Plano de Execução

L0 - Correções Imediatas (Baixo Risco)

  • Config: Mover VPS_SCRAPER_URL e VPS_SCRAPER_API_KEY para wrangler.toml (.env).
  • Docs: Criar estrutura docs/_consolidated e mover arquivos.

L1 - Refatoração Segura

  • Cron: Extrair lógica de scheduled do index.ts para services/scheduler.ts.
  • Types: Tipar corretamente o objeto AI e remover any de public-api.ts.
  • CI: Adicionar script de lint/typecheck no nível raiz.

L2 - Arquitetura (Futuro)

  • Modularização: Quebrar admin.ts em admin/users.ts, admin/products.ts, etc.
  • Deploy: Criar GitHub Action para deploy automático do vps-scraper (via SSH).

4. Plano de Consolidação de Documentos

Destino: docs/_consolidated/

  • 00_overview/
    • README.md (Original da raiz)
    • ARCHITECTURE.md
  • 01_backend/
    • audit/ (Relatórios antigos)
    • TESTING_GUIDE.md
  • 02_frontend/
    • (Docs específicos se houver)
  • 03_infra/
    • vps-scraper.md (Cópia/Link do README do deploy)
    • ops-runbooks/*
  • 99_archive/
    • scraper.log (se não deletado)
    • .cron_results

Ação: Criar esta estrutura e mover os arquivos.

On this page