Skip to content

Epic: Reescrita incremental do core (Strangler Fig) sem interromper o runtime atual #1036

Description

@ElioNeto

Objetivo

Reescrever gradualmente os módulos críticos do packages/core em Go, sem nunca quebrar o runtime TypeScript atual em produção.

Estratégia: Strangler Fig Pattern

  • O runtime TypeScript continua 100% funcional durante toda a migração
  • Novos módulos Go são introduzidos por trás de contratos estáveis (HTTP/gRPC)
  • Cada módulo novo convive com o antigo até ter paridade total validada por testes
  • Rollback via feature flag — sem big bang migration
  • Código legado é removido apenas após estabilização confirmada

Fora de escopo

  • Reescrita do TUI / frontend (packages/app, packages/ui)
  • Reescrita do desktop Tauri (packages/desktop)
  • Troca simultânea de múltiplos módulos
  • Alteração nas integrações ativas (packages/slack, packages/mcp-security-tools)

Ordem de migração (menor → maior acoplamento)

  1. process.ts / cross-spawn-spawner.ts — process spawning dos agents
  2. filesystem.ts — I/O puro, sem estado compartilhado
  3. session-event.ts + session-message-updater.ts — streaming de sessão
  4. aisdk.ts + models.ts — abstração de providers LLM

Critérios de sucesso

  • Sistema atual continua operando durante toda a migração
  • Cada módulo novo possui testes de paridade passando em CI
  • Rollback possível via feature flag sem redeploy
  • Métricas comparando legado vs novo implementadas

Sub-issues

  • Definir arquitetura alvo do go-core
  • Criar branch strategy e workflow da reescrita
  • Mapear contratos públicos do core atual
  • Criar harness de testes de paridade
  • Introduzir feature flags de roteamento
  • Implementar bootstrap do go-core
  • Reescrever process spawning
  • Reescrever filesystem adapter
  • Reescrever session event streaming
  • Plano de cutover e rollback

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions