Commit Graph

192 Commits

Author SHA1 Message Date
Jonas Pacheco 0fad3e05f7 fix: corrige loading infinito no login - pg.Pool + logs debug 2026-04-09 14:16:05 -03:00
Jonas Pacheco 41a9626f20 docs: adiciona análise de gap do Kernel
Documenta o que está implementado vs o que falta:
-  Service Discovery (parcial)
-  Health Monitor
-  Process Manager
-  Log Aggregator
-  Dashboard
-  Load Balancer
-  Circuit Breaker
-  Config Hot Reload
- ⚠️ Resource Limits (básico)
-  Secrets Management

Prioriza implementações críticas para produção.
2026-04-09 10:55:31 -03:00
Jonas Pacheco 0c4a4232bd docs: adiciona aviso de documentação histórica nos planos antigos
Adiciona aviso no topo dos arquivos trazidos da home:
- PLANO_IMPLEMENTACAO_AGENTIC.md
- PLANO_SKILL_FABRIC.md
- INDICE_PLANEJAMENTO.md
- AGENTE_MONITOR_SKILLS.md

Aviso indica que são documentos de Março/2026 e podem
estar desatualizados em relação ao sistema atual.
2026-04-09 10:50:02 -03:00
Jonas Pacheco c2c6a4a2b5 docs: adiciona PLANO_SKILL_FABRIC.md
Plano técnico de implementação do Skill Fabric - sistema de
geração e gestão de skills da Arcádia Suite.
2026-04-09 10:42:18 -03:00
Jonas Pacheco a96c161f14 docs: adiciona documentações de agentes da home do usuário
Traz documentações importantes que estavam em /home/ubuntu/:
- AGENTE_MONITOR_SKILLS.md - Especificação do agente de monitoramento
- INDICE_PLANEJAMENTO.md - Índice do planejamento estratégico
- PLANO_IMPLEMENTACAO_AGENTIC.md - Plano de implementação detalhado
- PLANO_METASET.md - Plano específico do MetaSet/Superset

Evita perda de documentação e mantém tudo centralizado em docs/.
2026-04-09 10:41:47 -03:00
Jonas Pacheco 423bf752db chore: move python-requirements.txt para raiz do projeto
Remove arquivo de configuração da pasta docs/ - não é documentação.
2026-04-09 10:14:51 -03:00
Jonas Pacheco 21e953be83 chore: arquiva documentações antigas (mar 2025) na pasta archive/
Move documentações potencialmente desatualizadas para docs/archive/:
- ANALISE_ATENDEON_XOS.md
- ANALISE_CRM_REQUISITOS.md
- ARCADIA_SUITE_ARQUITETURA.md
- DEPLOY_VPS.md
- INSTALACAO_SERVIDOR.md
- PLANO_IMPLEMENTACAO_RETAIL.md
- XOS_PLANEJAMENTO.md

Mantém na pasta docs/ apenas documentações recentes e relevantes:
- MAPA_*.md (atualizados mar 2026)
- PLANO_SOE.md (consolidado)
- PLANO_BI_SUPERSET.md (atualizado)
- KERNEL_SPEC.md, SPEC_NAVBAR.md (specs técnicas)
- AGENTS.md, CLAUDE.md (referência atual)

Reduz confusão para IA - apenas documentação atualizada na pasta principal.
2026-04-09 10:14:17 -03:00
Jonas Pacheco 2807a9d9dd chore: remove planos SOE duplicados e renomeia para versão única
Remove arquivos duplicados/confusos:
- PLANO_SOE_CENTRAL.md (duplicado)
- PLANO_SOE_CENTRAL-ignorar.md (duplicado)
- PLANO_SOE_CENTRAL_v2-concluido-testar.md (duplicado)

Renomeia:
- PLANO_SOE_CENTRAL_v2.md → PLANO_SOE.md (único arquivo oficial)

Evita confusão da IA no futuro - Single Source of Truth para plano SOE.
2026-04-09 10:12:46 -03:00
Jonas Pacheco 5d9c034a42 chore: organiza documentação na pasta docs/
Move 27 arquivos .md da raiz para docs/:
- AGENTS.md
- ARCADIA_AUDIT_EXECUCAO.md
- AUDITORIA_XOS_v1.0.md
- AVALIACAO_IMPACTO_GEOLOGIA.md
- CLAUDE.md
- DEPLOY_COOLIFY.md
- DOCUMENTATION.md
- HOSPEDAGEM.md
- INTEGRACAO_IA.md
- MAPA_*.md (10 arquivos)
- PLANO_*.md (5 arquivos)
- RELATORIO_TECNICO_RETAIL.md
- REQUISITOS_TECNICOS_ARCADIA.md
- replit.md

Mantém na raiz apenas README.md
2026-04-09 10:09:01 -03:00
Jonas Pacheco e27f2998e5 feat: adiciona pré-compressão gzip no build
- Instala vite-plugin-compression2 para gerar .gz no build
- Configura Express para servir arquivos .gz quando disponível
- Reduz transferência em ~70% para assets principais

Agent.js: 33KB → 9.9KB (gzip)
index.js: 348KB → 108KB (gzip)
2026-04-09 09:20:05 -03:00
Jonas Pacheco 58efb8c95c fix: reativa gzip no Express com threshold de 1KB
Caddy/Traefik não estavam comprimindo os assets.
Reativando gzip no Express com threshold de 1KB
para garantir compressão de todos os arquivos JS/CSS.
2026-04-09 09:12:41 -03:00
Jonas Pacheco cfb60b2d4b fix: remove gzip do Express para evitar conflito com Traefik
O Traefik (coolify-proxy) já gerencia o gzip compression.
Removendo do Express para evitar conflito e dupla compressão.
2026-04-09 09:07:51 -03:00
Jonas Pacheco 4dcecd3e63 perf: otimizações agressivas de bundle e carregamento
- Configura manualChunks no Vite: vendor, ui, charts, export
- Agent.tsx: de 893KB → 33KB (redução de 96%)
- Charts e export libs: carregamento lazy sob demanda
- Adiciona modulepreload hints automáticos no HTML
- Gzip compression ativado no Express

Resultado: Carregamento inicial ~10x mais rápido
2026-04-08 15:40:24 -03:00
Jonas Pacheco a167d9aaef perf: adiciona gzip compression e otimiza carregamento
- Adiciona middleware compression para servir assets gzipados
- Configura cache de 1 ano para assets estáticos (hash no filename)
- Remove imports pesados do Agent.tsx (jspdf, docx, recharts)
- Cria ChartRenderer com lazy loading para gráficos
- Cria export-utils com dynamic imports para PDF/Word/CSV

Reduz o chunk Agent de 893KB para 690KB (gzip 220KB).
2026-04-08 15:38:16 -03:00
Jonas Pacheco 6bd0ea6d4f chore: remove baseUrl deprecated do tsconfig.json
Remove a opção baseUrl que está obsoleta no TypeScript 5.0+.
Os paths @/* e @shared/* continuam funcionando normalmente
com moduleResolution: bundler.
2026-04-08 15:27:04 -03:00
Jonas Pacheco b037512250 fix: resolve loading infinito na navegação entre módulos
- Adiciona ErrorBoundary para capturar erros do React.lazy()
- LoadingFallback com timeout: aviso aos 3s, erro aos 10s
- Atualiza documentação (SPEC_NAVBAR.md, AGENTS.md)

O Suspense não captura falhas no lazy loading. Agora o ErrorBoundary
envolve o Suspense e exibe UI de fallback quando há erros.
2026-04-08 15:25:28 -03:00
Jonas Pacheco 317926f600 docs: adiciona seção de otimização .dockerignore no DEPLOY_COOLIFY.md
- Documenta estrutura atual do .dockerignore
- Explica o que é excluído vs incluído
- Mostra métricas de melhoria (5GB → 93MB)
- Adiciona alerta sobre assets necessários para build
2026-04-08 14:00:46 -03:00
Jonas Pacheco 2222e78999 fix: inclui attached_assets no contexto de build
- Remove attached_assets/ do .dockerignore (arquivos necessários para build)
- Mantém exclusão de docs/ e *.md
- O arquivo arcadia_suite_icon.png é necessário pelo BrowserFrame.tsx
2026-04-08 13:55:48 -03:00
Jonas Pacheco f623ee20d8 fix: otimiza .dockerignore para reduzir contexto de build
- Adiciona server/bi/metaset/superset-src/ ao .dockerignore (3.7GB)
- Adiciona server/bi/metaset/venv/ ao .dockerignore
- Remove arquivos desnecessários: docs, *.md, __pycache__, etc
- Reduz contexto de build de ~5GB para ~1GB
- Deve melhorar significativamente o tempo de deploy
2026-04-08 13:51:55 -03:00
Jonas Pacheco 1989928329 fix: remove dependência db/index do metaset-client
- Remove import de ../../db/index que quebrava o build
- Simplifica getAutoSuggestions para usar heurísticas em vez de schema query
- Mantém compatibilidade com API existente
2026-04-08 13:38:52 -03:00
Jonas Pacheco a6ac6e9dd9 docs: atualiza specs BI para refletir consolidação MetaSet
Atualiza documentação para refletir a migração Metabase → Apache Superset:

- docs/KERNEL_SPEC.md:
  - Adiciona capability 'embedding' ao MetaSet
  - Atualiza histórico de mudanças (v3.4)

- PLANO_BI_SUPERSET.md:
  - Reescrito como documentação de arquitetura consolidada
  - Adiciona estrutura de arquivos atualizada
  - Documenta API endpoints do novo cliente
  - Inclui exemplos de uso do cliente TypeScript

- MAPA_BI_ARCADIA.md:
  - Substitui todas referências Metabase → MetaSet
  - Atualiza portas: 8088 → 8100
  - Atualiza rotas: /metabase/* → /bi/metaset/*
  - Adiciona server/bi/metaset-client/ aos arquivos principais
2026-04-08 13:33:21 -03:00
Jonas Pacheco a7ecf0defb consolidate: MetaSet BI - migração Metabase → Apache Superset
- Cria novo cliente TypeScript em /server/bi/metaset-client/
  - index.ts: Cliente completo para API Superset v1
  - routes.ts: Rotas Express /api/bi/metaset/*

- Move código legado Metabase para /server/metaset/backup/
  - client.ts → backup/client.ts
  - routes.ts → backup/routes.ts

- Atualiza imports em:
  - server/autonomous/tools/metaset.ts
  - server/autonomous/tools/index.ts
  - server/manus/service.ts
  - server/bi/routes.ts

- Adiciona documentação consolidada em /server/metaset/README.md

Funcionalidades do novo cliente:
- Health check, Databases, Tables
- SQL queries com validação de segurança
- Charts (CRUD), Dashboards (CRUD)
- Guest tokens para embedding
- Auto-suggestions baseado em schema
2026-04-08 13:21:34 -03:00
Jonas Pacheco 95ee51bf68 docs: atualiza MAPA_SISTEMA_ARCADIA.md com Kernel (porta 5001)
- Adiciona porta 5001 (Arcadia Kernel) ao mapa de portas
- Documenta que Kernel roda no mesmo container da app
- Explica acesso via memória (Registry Global)
- Adiciona seção explicativa sobre o Kernel
2026-04-08 12:42:20 -03:00
Jonas Pacheco 9ec61dd932 docs: atualiza KERNEL_SPEC.md com Registry Global
- Atualiza versão para 3.3 (Produção)
- Documenta nova arquitetura com Registry Global
- Adiciona diagrama de fluxo de dados atualizado
- Documenta vantagens do acesso direto vs HTTP
- Atualiza roadmap da Semana 5
2026-04-08 12:34:44 -03:00
Jonas Pacheco bb7cff6c80 fix: Casa de Máquinas usa Registry global em vez de HTTP
O problema era que a Casa de Máquinas (porta 5000) não conseguia
conectar ao Kernel (porta 5001) via HTTP dentro do mesmo container.

Solução:
- Exporta o ServiceRegistry globalmente no server/index.ts
- Casa de Máquinas prioriza o Registry global (mesmo processo)
- Fallback para HTTP apenas se Registry global não disponível

Isso elimina a necessidade de loopback HTTP interno.
2026-04-08 12:27:21 -03:00
Jonas Pacheco da371af0e0 fix: tenta múltiplos hostnames para conectar ao Kernel
Tenta 127.0.0.1 e localhost para conectar ao Registry do Kernel.
Adiciona logs detalhados para debug.
2026-04-08 12:17:35 -03:00
Jonas Pacheco 524a049d03 fix: usa localhost em vez de 127.0.0.1 para conectar ao Kernel
No container Docker, 127.0.0.1 pode não resolver corretamente
para o próprio container. localhost é mais confiável.
2026-04-08 12:11:11 -03:00
Jonas Pacheco 71e2b654bd fix: resolve race condition entre Kernel e Casa de Máquinas
- Move início do Kernel ANTES do servidor HTTP (porta 5000)
- Adiciona retry com exponential backoff na consulta ao Registry
- Garante que Registry esteja pronto antes de receber requisições

Fixes: Casa de Máquinas mostrava 0/0 serviços porque API
chamava Registry antes do Kernel iniciar na porta 5001
2026-04-08 12:03:55 -03:00
Jonas Pacheco ea58a45ea1 fix(engine-room): usa http.get em vez de fetch
O fetch do Node.js estava falhando com loopback.
Trocado para http.get nativo que é mais confiável.

Refs: engine-room, registry, fix
2026-04-08 11:53:08 -03:00
Jonas Pacheco b0a8e73f67 fix(engine-room): usa 127.0.0.1 e adiciona logs
- Troca localhost por 127.0.0.1 (mais confiável)
- Adiciona logs para debugar chamadas ao Registry

Refs: engine-room, registry, debug
2026-04-08 11:47:21 -03:00
Jonas Pacheco fcfce87df8 fix(coolify): remove filtro de labels no CoolifyDiscovery
O Coolify não expõe os labels do Docker na API.
Removido o filtro que exigia 'arcadia.discovery.enabled=true'.
Agora todos os serviços do Coolify são registrados.

Refs: coolify, discovery, fix
2026-04-08 11:40:26 -03:00
Jonas Pacheco a5adf7e096 debug: adiciona logs detalhados no CoolifyDiscovery
Adiciona logs para debugar por que a API do Coolify
está retornando 0 serviços.

Refs: debug, coolify, discovery
2026-04-08 11:34:34 -03:00
Jonas Pacheco 6182a9c490 chore: limpa arquivos temporários e cache
Remove:
- Cache do aider (.aider.tags.cache.v4)
- Arquivos de planejamento antigos (.planning/)
- Arquivos duplicados (MAPA_TENANTS_ARCADIA copy, SESSAO_2026-03-18)
- Metadata de agentes (.agents/)

Refs: cleanup, maintenance
2026-04-08 11:26:56 -03:00
Jonas Pacheco 14e440cc1f fix(docker): expoe porta 5001 para o Kernel
Adiciona porta 5001 no serviço app para permitir
acesso ao Kernel Arcadia (Service Registry).

Refs: kernel, registry, docker
2026-04-08 11:24:32 -03:00
Jonas Pacheco 202101f0e0 refactor(engine-room): simplifica Casa de Máquinas - apenas Registry
REMOVIDO:
- Presets ENGINES (hardcoded)
- Funções checkEngineHealth, getEngineHealthUrl
- Imports de kernel-adapter (não usados mais)
- Rotas de ação (start/stop/restart) - retornam 501
- Fallback para kernel-adapter

MANTIDO:
- /api/engine-room/status (apenas do Registry)
- /api/engine-room/engines (apenas do Registry)
- /api/engine-room/agents
- Rotas de agents (start/stop)

A Casa de Máquinas agora mostra APENAS serviços descobertos
pelo Registry (Docker/Coolify/XOS). Serviços não descobertos
não aparecem.

Refs: simplificacao, registry-only, casa-de-maquinas
2026-04-08 11:18:03 -03:00
Jonas Pacheco 16bb5b9bfb docs: adiciona especificação técnica do Kernel
Cria docs/KERNEL_SPEC.md com:
- Visão geral e arquitetura
- Componentes (Core, Registry, Discovery)
- Documentação dos 4 providers de discovery
- API endpoints (Core, Registry, Casa de Máquinas)
- Fluxo de integração Casa de Máquinas
- Configuração (env vars, Docker labels)
- Roadmap (Semanas 4-7)
- Histórico de mudanças

Refs: documentation, kernel, spec
2026-04-08 11:06:22 -03:00
Jonas Pacheco b3166173df feat(kernel): implementa XOS Discovery Provider
- Cria XOSDiscovery.ts para descobrir serviços XOS
- Descobre filas de atendimento ativas
- Descobre integrações (WhatsApp, Email)
- Descobre automações ativas
- Integra ao Kernel como provider de discovery

O XOS Discovery consulta o banco de dados para encontrar
serviços configurados no XOS (CRM/Atendimento/Marketing).

Refs: xos, discovery, kernel-semana-5
2026-04-08 11:00:14 -03:00
Jonas Pacheco aa83dbdbce feat(engine-room): unifica Casa de Máquinas com Registry do Kernel
- Adiciona fetchRegistryServices() para consultar /api/registry/services
- Adiciona mapRegistryToEngine() para converter formato do Registry
- Modifica /api/engine-room/status para usar Registry como fonte primária
- Evita duplicação: se Registry tem serviços, não adiciona presets duplicados
- MetaSet só é adicionado se não houver bi-engine (evita 2 Motores BI)
- Fallback para kernel-adapter se Registry não disponível

Isso unifica a visão da Casa de Máquinas com o Discovery automático.

Refs: kernel, registry, casa-de-maquinas, unificacao
2026-04-08 10:51:19 -03:00
Jonas Pacheco 015273ffdd fix(engine-room): usa valores do preset ENGINES em vez de hardcoded
- Corrige MetaSet: usa type, displayName, category, description do preset
- Corrige Plus: usa valores do preset em vez de hardcoded
- Remove 'java' hardcoded que sobrescrevia o preset correto

Isso garante que as correções feitas no preset ENGINES
(type: python, porta: 8100) sejam refletidas na API.

Refs: metaset, casa-de-maquinas, engine-room
2026-04-08 10:01:29 -03:00
Jonas Pacheco 13abdbba3b fix(engine-room): corrige preset do MetaSet para apontar para serviço novo
- Atualiza porta: 8088 → 8100 (porta correta do container metaset)
- Atualiza tipo: java → python (Superset é Python)
- Atualiza host: SUPERSET_HOST → METASET_HOST
- Adiciona METASET_HOST e METASET_PORT no serviço app
- Atualiza descrição para refletir o MetaSet (fork Arcadia)

O preset estava apontando para o Apache Superset legado (porta 8088)
que só roda com perfil [bi]. Agora aponta corretamente para o
MetaSet novo (porta 8100) que é o serviço padrão.

Refs: metaset, casa-de-maquinas
2026-04-08 09:51:01 -03:00
Jonas Pacheco 5c884d9066 feat(kernel): implementa Coolify Discovery com chamadas reais à API
- Implementa CoolifyDiscovery.discover() buscando serviços e aplicações
- Adiciona endpoints /api/v1/services e /api/v1/applications
- Suporte a filtro por label arcadia.discovery.enabled=true
- Parse de labels customizadas do Coolify
- Mapeamento de health status do Coolify para Registry
- Adiciona 'coolify' ao tipo DiscoverySource

Refs: kernel-semana-4, service-discovery
2026-04-08 09:41:09 -03:00
Jonas Pacheco 465775ec99 feat(bi): MetaSet (Apache Superset fork) com branding ArcadiaSuite
- Rebuild completo do frontend React com branding MetaSet
- Substituição de textos 'Superset' -> 'MetaSet' em todo codebase
- Traduções atualizadas (en, pt_BR)
- Security Manager com JWT validation e RLS preparado
- Dockerfile multi-stage com assets locais
- Deploy em https://bi.onboardbi.com.br
- Banco de dados PostgreSQL migrado e inicializado
- Container Docker com rede coolify + extra_hosts IPv4
- BI-API Gateway em server/bi/index.ts (proxy manual Node.js)
- FDB-Bridge skeleton em server/bi/fdb-bridge/
- Kernel adapter atualizado para Registry integration
- .gitignore atualizado para excluir superset-src (3.7GB)
2026-04-07 16:04:09 -03:00
Jonas Pacheco 1f23256032 feat(kernel): expõe rotas do Registry no Dashboard
- Adiciona ServiceRegistry no DashboardServer
- Cria rotas /api/registry/services, /stats, /:id
- Permite acessar serviços descobertos via API
- Integração completa Registry -> Dashboard
2026-04-06 17:12:55 -03:00
Jonas Pacheco 1cf73f55ba feat(kernel): adiciona CoolifyDiscovery para descoberta automática
- Cria CoolifyDiscovery.ts para integrar com API Coolify
- Adiciona token COOLIFY_API_TOKEN no docker-compose
- Integra com StaticDiscovery e DockerDiscovery
- Permite descoberta automática de novos containers
2026-04-06 16:43:55 -03:00
Jonas Pacheco c3c91ed966 feat(kernel): adiciona StaticDiscovery via DNS interno
- Cria StaticDiscovery.ts com lista dos 7 serviços Arcádia
- Descoberta via nome DNS interno (ex: arcadia-prod-contabil-1)
- Health check em cada serviço antes de registrar
- Funciona sem acesso ao Docker (mais seguro)
- Mantém DockerDiscovery como fallback
2026-04-06 16:02:26 -03:00
Jonas Pacheco 5a99236aff feat(kernel): adiciona proxy /kernel para Dashboard
- Instala http-proxy-middleware
- Configura proxy /kernel -> localhost:5001
- Permite acessar Kernel pelo mesmo domínio da aplicação
- WebSocket support habilitado
2026-04-06 15:30:32 -03:00
Jonas Pacheco 08d6820e76 fix(kernel): ativa KERNEL_ENABLED e KERNEL_AUTOSTART no docker-compose
Adiciona variáveis de ambiente necessárias para iniciar o Kernel Arcádia
com Service Discovery habilitado por padrão.

- KERNEL_ENABLED=true: Ativa o Kernel no server/index.ts
- KERNEL_AUTOSTART=true: Inicia serviços automaticamente
2026-04-06 11:15:06 -03:00
Jonas Pacheco 7651167d72 feat(kernel): implementa Service Discovery e Registry (Semana 4)
Adiciona módulos de Service Discovery ao Kernel Arcádia:

- ServiceRegistry: catálogo central de serviços com health check
- DockerDiscovery: descoberta automática via labels Docker
- API REST /api/registry/* para consulta de serviços
- Labels arcadia.* no docker-compose.yml para auto-registro
- Integração não-destrutiva (módulos novos, código antigo preservado)

Labels suportadas:
- arcadia.discovery.enabled=true
- arcadia.name, arcadia.type, arcadia.category
- arcadia.port, arcadia.capabilities
- arcadia.requires_ia, arcadia.ia_policies

Arquitetura: MODIFICAR (adicionar) ao invés de REFATORAR
2026-04-06 11:02:49 -03:00
Jonas Pacheco 2916fb04ae fix: endpoint de health correto do Superset (/health não /api/health) 2026-04-03 18:15:45 -03:00
Jonas Pacheco d971d07327 debug: log URL em runtime para diagnosticar timeout 2026-04-03 18:07:33 -03:00