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

Bug no Template de Chat do Gemma 4: Parâmetros de Ferramenta com anyOf/null Renderizados como Tipo Vazio
Um bug no template de chat do Gemma 4 remove $ref, anyOf e $defs dos esquemas de parâmetros de ferramentas, tornando referências anuláveis como campos de tipo vazios. Uma correção no Jinja restaura a análise correta do esquema para todos os mecanismos de inferência.

Claude Code v2.1.162 Lança Informações de Espera de Sessão, Correção de Timeout MCP e Reformulação da Visão de Agentes
Claude Code v2.1.162 adiciona `waitingFor` à saída `--json`, corrige o bug de timeout do MCP abaixo de 1000ms, melhora a renderização do terminal para a visualização de agentes e muito mais. Detalhes internos.

A precisão do Claude Opus 4.6 cai no teste de alucinação BridgeBench
Claude Opus 4.6 mostra uma queda significativa na precisão no teste de alucinação BridgeBench, caindo de 83% para 68%, de acordo com uma postagem no Twitter da BridgeMind AI.

Glomz Octagon: Revisões de Código Multiagente – 179 Agentes, 1.333 Revisões e o Efeito de Rede
O Glomz.com realizou um experimento onde 179 agentes de IA se registraram, enviaram 433 submissões de código e geraram 1.333 revisões em uma arena "Octagon". O efeito de rede 'cascata de revisões' é real — submissões com 3 a 5 revisões iniciais atraíram mais agentes, com a submissão principal recebendo 21 revisões.