arcadiasuite/SESSAO_2026-03-18.md

168 lines
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Sessão de Desenvolvimento — 2026-03-18
**Branch:** `claude/analyze-project-0mXjP`
**Commits desta sessão:** `8d14fc0`, `20a0237`
**Contexto:** Continuação do ciclo iniciado em 2026-03-13 (auditoria A-Z + desenvolvimento das fases XOS)
---
## 1. O que foi feito nesta sessão
### 1.1 Correção de erros TypeScript críticos no `App.tsx`
Três classes de erros impediam o build limpo do frontend:
| Erro | Arquivo | Correção |
|---|---|---|
| `Cannot find module '@/contexts/SoeMotorContext'` | `App.tsx:8` | Criado `client/src/contexts/SoeMotorContext.tsx` |
| `Cannot find module '@/pages/SOE'` | `App.tsx:39` | Criado `client/src/pages/SOE.tsx` |
| `LazyExoticComponent` não atribuível a `() => Element` (20x) | `protected-route.tsx` | Tipo alterado para `React.ComponentType<any>` |
**Arquivos criados/modificados:**
- `client/src/contexts/SoeMotorContext.tsx` — context global com `SoeMotorProvider` e hook `useSoeMotor`
- `client/src/pages/SOE.tsx` — página SOE (Sistema de Operações Empresariais), re-export do módulo Plus/ERP
- `client/src/lib/protected-route.tsx` — tipo do prop `component` corrigido
**Resultado:** `npx tsc --noEmit` zerou todos os erros do `App.tsx`. Erros remanescentes são pré-existentes em outros arquivos e não relacionados às correções.
---
### 1.2 Guia de deploy no Coolify (`DEPLOY_COOLIFY.md`)
Documento completo de 359 linhas cobrindo:
- **Arquitetura de serviços** — mapa visual de todos os containers e redes
- **Variáveis de ambiente** — obrigatórias e opcionais por módulo (Core, IA, Superset, Plus, ERPNext)
- **Profiles Docker** — como habilitar `ai`, `bi`, `plus`, `erpnext` via `COMPOSE_PROFILES`
- **Sequência de inicialização** — ordem garantida pelos `depends_on` e healthchecks
- **Traefik + HTTPS** — labels prontas para Let's Encrypt via Coolify
- **Volumes e persistência** — tabela de criticidade + comandos de backup PostgreSQL
- **Stack de IA** — 3 tiers LiteLLM (LLMFit → Ollama → externos), como baixar modelos, como habilitar LLMFit
- **Pós-deploy** — migrations, verificação de saúde
- **Checklist final** — antes, durante e após o deploy
- **Comandos de referência rápida**
---
### 1.3 Relatório de comparação Auditoria vs Desenvolvimento
Análise completa cruzando o `ARCADIA_AUDIT_EXECUCAO.md` (auditoria de 13/Mar) com todos os 18 commits do branch:
**Resultado geral: 44% concluído, 17% parcial, 38% pendente**
| Sprint | ✅ | ⚠️ | ❌ |
|---|---|---|---|
| S — Segurança (10 itens) | 7 | 3 | 0 |
| 0 — Deploy (6 itens) | 2 | 1 | 3 |
| 1 — Inteligência (6 itens) | 2 | 2 | 2 |
| 2 — App Store (4 itens) | 3 | 0 | 1 |
| 3 — Compass IA (4 itens) | 1 | 1 | 2 |
| 4 — ERP Real (6 itens) | 0 | 0 | 6 |
| 5 — Soberania IA (4 itens) | 3 | 1 | 0 |
| 6 — Qualidade (7 itens) | 3 | 0 | 4 |
| 7 — ERPNext (5 itens) | 2 | 1 | 2 |
---
## 2. Estado do Superset BI (análise técnica)
Levantamento completo da integração Apache Superset:
**Funcionando:**
- Gateway Node.js com 4 endpoints (`/guest-token`, `/dashboards`, `/health`, proxy `/superset/*`)
- Guest Token JWT via service account com cache de 50 min
- Componente React `<SupersetDashboard>` reutilizável com fallback iframe
- Docker: init automático, banco `arcadia` registrado somente leitura, admin criado
- Feature flags: embed, drill-to-detail, cross-filters, alerts, templates Jinja
**Pendente / stub:**
- RLS por tenant — `rls: []` vazio, todos veem todos os dados
- Nenhum dashboard pré-criado — criação manual pelo usuário
- Cache Redis — usando `SimpleCache` em memória
- SSO/OAuth — auth local apenas
---
## 3. Contexto acumulado do ciclo completo (desde 13/Mar)
### O que foi construído no branch (18 commits, 71 arquivos, +9.399 linhas)
| Área | Principais entregas |
|---|---|
| **Segurança** | Auth em todas as rotas XOS, CORS Python corrigido, credentials removidas, timeout+retry, approval guard Manus |
| **XOS CRM** | Fases 14 completas: automações, SLA, horário comercial, campanhas, Socket.IO tempo real |
| **Novas páginas React** | `XosSupervisor`, `XosReports`, `XosProtocols` |
| **SOE Rule Engine** | Motor de regras contábil/fiscal + importador ERPNext |
| **Superset BI** | Integração completa embed + proxy + guest token |
| **Infra Docker** | `docker-compose.prod.yml` com profiles: `ai`, `bi`, `plus`, `erpnext` |
| **IA Soberania** | LiteLLM 3 tiers + Ollama + slot LLMFit pronto |
| **Qualidade** | Rate limiting, logging estruturado (`server/logger.ts`), paginação |
| **App Store** | `GET /api/marketplace/my-apps` + AppCenter por subscription |
| **Docs** | `DEPLOY_COOLIFY.md`, `INTEGRACAO_IA.md`, `PLANO_BI_SUPERSET.md`, `PLANO_SOE_CENTRAL_v2.md` |
---
## 4. Demandas prioritárias pendentes
### Críticas (bloqueia produção estável)
1. **LMS e Quality** — auth ainda incompleta (SEC-02, SEC-03)
- `server/lms/routes.ts` — 8 rotas ainda públicas
- `server/quality/routes.ts` — ~50 rotas revisão insuficiente
2. **WhatsApp auto-reply** — configuração ainda em `Map` na memória
- Reiniciar servidor = perda total da configuração sem aviso
- Persistir em tabela `whatsapp_auto_reply_config` (migration já existe)
3. **`pg_dump` do Replit** — exportar banco antes de encerrar o plano
- Risco de perda de dados de produção atual
### Altas (produto incompleto)
4. **Ciclo de aprendizado Manus** — embeddings não são populados automaticamente
- Busca semântica retorna vazio, sistema não aprende das interações
5. **Páginas placeholder**`Agent.tsx`, `CentralApis.tsx`, `ApiHub.tsx`
- Três das páginas mais estratégicas ainda sem implementação
6. **Sprint 4 inteiro — Integrações ERP reais**
- Adaptadores Omie e TOTVS: zero implementado
- Todos os conectores da Central de API ainda mockados
- Estrutura fragmentada em 4 lugares (`server/erpnext/`, `server/crm/frappe-service.ts`, `server/api-central/`, `server/migration/`)
### Médias (qualidade de engenharia)
7. **Error boundaries globais no React** — sem captura de erros em cascata
8. **Testes automatizados** — zero no projeto inteiro
9. **Connection pooling Python** — nova conexão DB por request nos 6 microserviços
10. **Consolidar sistemas de comunicação** — legacy (`whatsapp_*`, `chat_*`) e moderno (`comm_*`, `xosConversations`) duplicados
11. **36 tabelas sem insert schema** — risco de runtime errors no Drizzle
12. **40+ tabelas sem `createdAt`/`updatedAt`** — auditoria e ordenação impossíveis
### Decisões arquiteturais abertas
| # | Decisão |
|---|---|
| D1 | BI padrão: Metabase (existente) vs Superset (integrado)? |
| D2 | LMS: tabelas dinâmicas vs schema.ts fixo? |
| D3 | Sistema de comunicação canônico: legacy vs moderno vs XOS? |
| D4 | Marketplace público ou autenticado (hoje público — intencional)? |
---
## 5. Próxima sessão recomendada
**Sequência sugerida por impacto/risco:**
```
1. Corrigir auth LMS + Quality (23h) → fecha todas as vulnerabilidades SEC
2. Persistir WhatsApp auto-reply no banco (1h) → estabilidade em produção
3. Fechar ciclo embeddings Manus (2h) → IA começa a aprender de verdade
4. Implementar Agent.tsx com UI real (34h) → página mais estratégica
5. Adaptador Omie — primeira integração ERP real (46h)
```
---
*Sessão registrada em 2026-03-18 | Branch: `claude/analyze-project-0mXjP`*