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)
process.ts / cross-spawn-spawner.ts — process spawning dos agentsfilesystem.ts — I/O puro, sem estado compartilhadosession-event.ts + session-message-updater.ts — streaming de sessãoaisdk.ts + models.ts — abstração de providers LLM
Critérios de sucesso
Sub-issues
Objetivo
Reescrever gradualmente os módulos críticos do
packages/coreem Go, sem nunca quebrar o runtime TypeScript atual em produção.Estratégia: Strangler Fig Pattern
Fora de escopo
packages/app,packages/ui)packages/desktop)packages/slack,packages/mcp-security-tools)Ordem de migração (menor → maior acoplamento)
process.ts/cross-spawn-spawner.ts— process spawning dos agentsfilesystem.ts— I/O puro, sem estado compartilhadosession-event.ts+session-message-updater.ts— streaming de sessãoaisdk.ts+models.ts— abstração de providers LLMCritérios de sucesso
Sub-issues