- docker-compose.yml: adiciona serviços `erpnext` (frappe/erpnext:version-15)
e `erpnext-db` (MariaDB 10.6) no perfil `erpnext`
Volumes: erpnext_db, erpnext_sites, erpnext_logs
Porta exposta: 8090 (→ :8080 interno)
- docker/erpnext/init.sh: script de inicialização que aguarda MariaDB,
cria o site `erpnext.local` com bench new-site, instala app erpnext
e sobe o servidor na porta 8080
- server/erpnext/proxy.ts: proxy transparente /erpnext-app/* → container
(ativo em DOCKER_MODE=true ou ERPNEXT_PROXY_ENABLED=true)
Reescreve Location headers, forward X-Forwarded-* e X-Site-Name
Endpoint: GET /api/erpnext/container-status
- server/soe/erpnext-rule-importer.ts: importa regras de negócio do ERPNext
(campos obrigatórios por DocType + Workflows ativos) e salva em soe_regras
13 DocTypes mapeados para triggers SOE correspondentes
Endpoint: POST /api/soe/erpnext/import-rules
- server/routes.ts: registra setupErpNextProxy e endpoint de import-rules
- .env.example: documenta variáveis para modo container e modo externo
Uso: docker compose --profile erpnext up
https://claude.ai/code/session_01DinH3VcgbAv1d9MqnNxzdb
Análise do código real revelou que:
- Superset já está no docker-compose.yml (profile: bi)
- MetaSet = Metabase com nome customizado (server/metaset/*)
- Falta apenas a integração gateway + guest token + componente React
Plano cobre:
- docker/superset/superset_config.py + init.sh
- server/superset/proxy.ts + routes.ts (guest token para embedding)
- SupersetDashboard.tsx (componente React reutilizável em qualquer tela)
- @superset-ui/embedded-sdk para embedding nativo
- Roadmap em 5 fases (1-2 dias de implementação real)
https://claude.ai/code/session_01DinH3VcgbAv1d9MqnNxzdb
Análise profunda do MAPA_SOE_ARCADIA.md revelou que o SOE já tem:
- SOE.tsx com 2.414 linhas funcionando
- 60+ endpoints /api/soe/* já existindo
- ArcadiaPlusClient e ArcadiaNextClient já implementados
- Padrão motor/adaptador já operacional
O plano v2 foca no que realmente falta:
- SOE Rule Engine (middleware entre rota e adaptador)
- Event Bus (lançamentos contábeis automáticos)
- Ocultação de Plus/ERPNext do usuário final
- Regras fiscais centralizadas no SOE
https://claude.ai/code/session_01DinH3VcgbAv1d9MqnNxzdb
Documenta a arquitetura e roadmap para transformar o Arcádia em um
SOE Central que orquestra Plus (Laravel) e ERPNext de forma invisível,
com regras fiscais, contábeis e financeiras centralizadas.
https://claude.ai/code/session_01DinH3VcgbAv1d9MqnNxzdb
- Conecta Manus ao LiteLLM via AI_INTEGRATIONS_OPENAI_BASE_URL (era hardcoded para OpenAI)
- Adiciona OLLAMA_BASE_URL ao serviço litellm no docker-compose.prod.yml (fix crítico: sem isso o fallback para Ollama não funcionava)
- Adiciona DATABASE_URL ao litellm para logging/auditoria de chamadas LLM
- Open WebUI agora também aponta para LiteLLM (acesso a todos os modelos na interface)
- litellm-config.yaml: slot comentado para LLMFit (TIER 1), Ollama como padrão soberano (TIER 2), externos como opt-in (TIER 3)
- Adiciona modelo nomic-embed-text para embeddings locais via Ollama
- .env.example: documenta AI_INTEGRATIONS_*, LLMFIT_BASE_URL, providers externos opcionais
- arcadia-default agora aponta para llama3.3 (Ollama) por padrão — soberania total sem configuração adicional
Estratégia de soberania:
Dados NUNCA saem sem configuração explícita de API key externa.
LLMFit turbocharge: quando ativado, modelos fine-tuned têm prioridade sobre Ollama.
https://claude.ai/code/session_01DinH3VcgbAv1d9MqnNxzdb
QUALIDADE:
- Rate limiting: 500 req/15min em /api; 20 req/15min em login/register
- Winston logger: JSON em prod, colorido em dev; HTTP middleware com user_id/tenant_id
- Paginacao: XOS (conversations, tickets, activities) e Quality (9 endpoints) recebem offset
MULTI-TENANCY:
- tenantId adicionado a 7 tabelas criticas: workspace_pages, quick_notes,
activity_feed, conversations, knowledge_base, chat_threads, manus_runs
- Migration 0002_tenant_isolation.sql com indices de performance
PROCESS COMPASS COM IA:
- POST /api/compass/projects/:id/ai-brief
Gera briefing executivo via GPT-4o-mini: situação, riscos, ações prioritárias,
health score — baseado em tasks, PDCA e status do projeto
- GET /api/compass/projects/:id/health
Score 0-100 calculado: 40% completude de tasks + 30% pontualidade + 30% PDCA
https://claude.ai/code/session_01DinH3VcgbAv1d9MqnNxzdb
SEGURANÇA:
- Manus: ferramentas perigosas (shell, write_file, python_execute) agora
retornam requires_approval na primeira chamada e exigem confirmação via
ask_human antes de executar
MARKETPLACE → APPCENTER:
- Novo endpoint GET /api/marketplace/my-apps (autenticado):
retorna códigos de módulos ativos do tenant (core sempre incluídos)
- AppCenter consome o endpoint via useQuery
- Apps com subscriptionCode não contratados aparecem com:
- Overlay de cadeado no ícone
- Badge "Não contratado"
- Clique redireciona ao Marketplace em vez de abrir o app
CORREÇÃO DO AUDIT:
- Agent.tsx, CentralApis.tsx, ApiHub.tsx, ArcadiaNext.tsx verificados:
todos já têm implementação real (26k+ tokens) — classificação como
"placeholder" no audit estava incorreta
https://claude.ai/code/session_01DinH3VcgbAv1d9MqnNxzdb
Infraestrutura Docker:
- Dockerfile multi-stage para app Node.js
- Dockerfile.python genérico para todos os microserviços Python
- docker-compose.yml para desenvolvimento local (com perfis: bi, ai)
- docker-compose.prod.yml para deploy no Coolify com Traefik
- docker/init-pgvector.sql — instala extensão vector no PostgreSQL
- docker/python-entrypoint.sh — seleciona serviço pelo SERVICE_NAME
- docker/litellm-config.yaml — proxy LLM com fallback OpenAI → Ollama
- .env.example com todas as variáveis documentadas
Soberania de IA:
- Ollama + Open WebUI como perfil 'ai' no docker-compose
- LiteLLM como proxy unificado (OpenAI ↔ Ollama com fallback automático)
Knowledge Graph (rotas faltantes implementadas):
- server/graph/routes.ts — CRUD completo de nodes, edges, knowledge base + busca semântica
- server/graph/service.ts — camada de serviço com indexação automática de embeddings
- server/python/embeddings_service.py — FastAPI com pgvector para busca vetorial
Correções de infraestrutura:
- server/index.ts — DOCKER_MODE=true desativa spawn de processos filhos
- server/routes.ts — registra /api/graph/* no Express
https://claude.ai/code/session_01DinH3VcgbAv1d9MqnNxzdb