- Mantém Fase 4 Sprint 1+2 do local (OpenClaw backend + frontend)
- Incorpora do remoto: Fase 3 MiroFlow, Fase 4 melhorias, Fase 5 Automation Fabric
- Resolve conflito openclaw~origin_Servidor (mantido local)
- Histórias unidas com --allow-unrelated-histories -X ours
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Adiciona deepseek-r1:14b e alias arcadia-agent no litellm-config.yaml
- arcadia-default agora aponta para R1 14B (era llama3.2:3b)
- Timeout LiteLLM aumentado de 120s para 300s
- Adiciona rede ollama-net (external) ao serviço litellm no compose
para comunicação com container Ollama via hostname estável
- .gitignore: ignora arquivos .aider*
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- superset_config.py: adiciona FLASK_APP_MUTATOR que seta g.user a partir
do Bearer JWT quando o usuário está como anônimo (necessário porque o
papel Public com can_read on Dashboard faz protect() pular verificação JWT)
- superset_config.py: TALISMAN_ENABLED=False, X_FRAME_OPTIONS=ALLOWALL
para permitir embedding cross-origin via iframe
- routes.ts: adiciona session cookie nas chamadas de busca do dashboard
além de incluir X-CSRFToken + Cookie no guest token request
- SupersetDashboard.tsx: usa bi.onboardbi.com.br como supersetDomain,
tela de unavailable com UI adequada (sem iframe de fallback)
- BiWorkspace.tsx: link "Abrir em Nova Aba" aponta para bi.onboardbi.com.br
- docker-compose.prod.yml: labels HTTP→HTTPS redirect para Superset
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
init.sh tentava conectar ao banco 'superset' (inexistente) para o health
check, causando loop infinito. Agora usa banco 'postgres' para verificar
se o PostgreSQL está disponível, depois cria o banco 'superset' antes de
rodar as migrações.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Inclui:
- .env real de produção (repo privado, auditoria total)
- docker-compose.prod.yml atualizado (LiteLLM/LLMFit, Superset)
- docker/superset/superset_config.py
- client/src/pages/BiWorkspace.tsx
- server/superset/routes.ts
- .gitignore: remove .env da lista de ignorados
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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
- 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
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