Skip to content

[Epic] Criar Simplicio Loop Hub: processamento central compartilhado por LLMs, IDEs e agents #496

Description

@wesleysimplicio

Problema

Várias instâncias do Simplicio Loop abertas por Codex, Claude, Cursor, VS Code, CLIs e agents podem repetir scanning, polling, embeddings, chamadas LLM e subprocessos, saturando CPU, RAM, disco, GPU e limites de API.

Resultado esperado

Um único Simplicio Loop Hub por usuário/máquina recebe trabalhos de todos os clientes, centraliza filas e caches e distribui capacidade com fairness, deduplicação, quotas e backpressure. O cliente continua funcionando em modo standalone quando o Hub não estiver disponível.

Arquitetura proposta

  • Daemon singleton descoberto por lock/PID + socket Unix; named pipe no Windows; TCP local autenticado apenas como fallback.
  • Protocolo versionado para register, submit, claim, heartbeat, progress, cancel, result e report.
  • Fila durável local com WAL, idempotency key, lease/visibility timeout e dead-letter queue.
  • Scheduler DRR/WFQ por workspace/cliente/prioridade, evitando monopolização.
  • Resource governor com orçamentos de CPU, RSS, disco, GPU/VRAM, subprocessos, conexões e tokens/rate limits.
  • Deduplicação por hash de projeto+commit+task+config; single-flight para mapper, embeddings e chamadas equivalentes.
  • Cache central de mapas, precedentes, prompts e respostas permitidas, com invalidação explícita.
  • Observabilidade: fila, utilização, latência, custo/tokens, retries, motivos de throttle e auditoria.
  • Segurança: autenticação local, permissões do socket, isolamento por workspace, redaction e nenhuma exposição externa por padrão.

Plano passo a passo

  1. Especificar contratos, threat model, estados e invariantes.
  2. Implementar daemon e eleição singleton com recuperação de PID/lock obsoleto.
  3. Implementar armazenamento durável e máquina de estados idempotente.
  4. Implementar scheduler justo e limites hierárquicos global/cliente/workspace/provider.
  5. Adicionar backpressure, circuit breaker, adaptive concurrency e proteção contra OOM.
  6. Criar SDK/CLI cliente e auto-discovery com fallback standalone.
  7. Migrar internamente mapper/dev-cli/remote workers atrás de adapters.
  8. Implementar dedupe/single-flight/cache e invalidação.
  9. Adicionar dashboard/doctor/status/drain/shutdown.
  10. Executar rollout por feature flag, shadow mode e canário.
  11. Publicar contrato para loop-oss, loop-marketing, agent, sprint e runtime.
  12. Documentar operação multi-IDE/multi-LLM.

Cenários de teste

  • 20+ clientes concorrentes e múltiplos workspaces.
  • Cliente trava durante lease; daemon reinicia; rede/provider oscila.
  • Pressão de RAM/CPU/GPU e limites de rate/token.
  • Mesmo trabalho submetido simultaneamente por clientes diferentes.
  • Segurança do IPC e tentativa de acesso entre usuários.
  • Compatibilidade Windows/macOS/Linux e upgrade de protocolo.

Critérios de aceite

  • Exatamente um Hub ativo por escopo configurado.
  • Fairness mensurável e nenhum cliente causa starvation.
  • Limites impedem saturação/OOM e propagam backpressure aos clientes.
  • Dedupe executa trabalho equivalente uma vez e entrega resultado a todos os solicitantes.
  • Reinício não perde tarefas confirmadas nem duplica efeitos não idempotentes.
  • Modo standalone continua disponível.
  • Contrato versionado, métricas, threat model e runbook publicados.
  • Benchmark compara N processos isolados versus Hub em CPU, RSS, I/O, throughput e p95.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions