A reescrita de 18 meses da base de código da Autonoma: lições sobre testes, dívida técnica e Server Actions

Por que um produto bem-sucedido precisou de uma reescrita completa
A Autonoma, uma empresa que pivotou várias vezes (busca empresarial, geração de documentação, agente de programação, plataforma de testes de QA), desenvolveu um produto por mais de 1,5 ano, fechou clientes, captou recursos de um grande player do setor e contratou uma equipe de 14 pessoas. Apesar dessa tração, eles decidiram descartar toda a base de código e começar do zero.
A era sem testes e suas consequências
Inicialmente, a equipe usava um monorepositório TypeScript sem modo estrito e sem testes. Isso funcionou com 2 engenheiros que dominavam grandes partes da base de código, mas se tornou desastroso após as contratações. A base de código desenvolveu problemas de null, comportamento indefinido e tratamento de erros inadequado, levando a bugs que apareciam "do nada" e até à perda de um cliente. O fundador inicialmente proibiu testes para manter uma cultura de lançamento rápido, mas depois percebeu que isso afetava a qualidade do produto e a produtividade.
Decisões técnicas que motivaram a reescrita
O produto original foi construído durante a era GPT-4 (não 4o), quando os modelos exigiam extensas proteções. Eles construíram wrappers sofisticados de Playwright e Appium com inspeções complexas e 7 estratégias de clique que se autocuravam em tempo real. Com os avanços dos modelos, essa inspeção sofisticada não é mais necessária, tornando a base de código legada com dívida técnica menos valiosa.
Abandonando Next.js e Server Actions
A equipe está abandonando o Next.js e as Server Actions, citando vários problemas:
- Server Actions são assíncronas, exigindo blocos useEffect ou manipulação manual de estado no React
- São difíceis de testar - os testes exigem criar objetos Prisma com bancos de dados em memória ou mock
- Sem capacidade de injeção de dependência
- Executam sequencialmente globalmente, criando um "Python Global Interpreter Lock fabricado, mas em TypeScript"
A nova implementação começa com testes desde o início e usa o modo TypeScript mais estrito.
📖 Read the full source: HN AI Agents
👀 See Also

Estrutura de IA Apple Core: Primeira Visão da Fundação do Agente de IA Emergente da Apple
A nova página de documentação do framework Core AI da Apple está no ar, embora o conteúdo esteja atrás de um muro JavaScript. Explicamos o que isso significa para o desenvolvimento de agentes de IA nas plataformas Apple.

Lançamento do Claude Code 2.1.83: Cache de Prompt, Verificar Habilidade e Atualizações do SDK
Claude Code 2.1.83 adiciona cache de prompt com orientação de design, substitui a habilidade de especialista em verificação por uma nova habilidade Verificar e atualiza referências do SDK em sete idiomas, incluindo suporte beta para execução de ferramentas em PHP.

Nemotron 3 4B tem desempenho inferior ao Qwen 3.5 4B em benchmarks exigentes
Um usuário do Reddit testou o Nemotron 3 4B Q8 contra o Qwen 3.5 4B Q8 em tarefas complexas de matemática e programação, constatando que o Nemotron falhou em produzir raciocínio correto e saída estruturada, enquanto o Qwen passou em todos os testes.

DeepSeek v4 Flash no Mac Studio: LLM local encontra bugs reais no código do compilador
Um desenvolvedor relata que o DeepSeek v4 Flash rodando em um Mac Studio de 128GB identifica com sucesso bugs válidos em uma base de código de compilador, uma tarefa que não era possível com LLMs locais há 5 meses.