Reescritura del código base de 18 meses de Autonoma: lecciones sobre pruebas, deuda técnica y Acciones de Servidor

Por qué un producto exitoso necesitó una reescritura completa
Autonoma, una empresa que pivotó varias veces (búsqueda empresarial, generación de documentación, agente de codificación, plataforma de pruebas QA), desarrolló un producto durante más de 1.5 años, cerró clientes, consiguió financiación de un actor importante de la industria y contrató un equipo de 14 personas. A pesar de esta tracción, decidieron desechar toda su base de código y empezar desde cero.
La era sin pruebas y sus consecuencias
Inicialmente, el equipo utilizó un monorepositorio de TypeScript sin modo estricto y sin pruebas. Esto funcionó con 2 ingenieros que poseían grandes porciones de la base de código, pero se volvió desastroso después de contratar más personal. La base de código desarrolló problemas de null, comportamientos indefinidos y un manejo deficiente de errores, lo que llevó a que aparecieran errores "de la nada" e incluso a la pérdida de un cliente. El fundador inicialmente prohibió las pruebas para mantener una cultura de lanzamiento rápido, pero luego se dio cuenta de que esto afectaba la calidad del producto y la productividad.
Decisiones técnicas que impulsaron la reescritura
El producto original se construyó durante la era GPT-4 (no 4o) cuando los modelos requerían extensas barreras de seguridad. Construyeron envoltorios sofisticados de Playwright y Appium con inspecciones complejas y 7 estrategias de clic que se autocuraban sobre la marcha. Con los avances en los modelos, esta inspección sofisticada ya no es necesaria, lo que hace que la base de código heredada con deuda técnica sea menos valiosa.
Abandonando Next.js y Server Actions
El equipo se está alejando de Next.js y Server Actions, citando varios problemas:
- Server Actions son asíncronas, requiriendo bloques useEffect o manejo manual de estado en React
- Son difíciles de probar: las pruebas requieren crear objetos Prisma con bases de datos en memoria o simular
- Sin capacidad de inyección de dependencias
- Se ejecutan secuencialmente a nivel global, creando un "Python Global Interpreter Lock fabricado pero en TypeScript"
La nueva implementación comienza con pruebas desde cero y utiliza el modo más estricto de TypeScript.
📖 Leer la fuente completa: HN AI Agents
👀 Ver también

Las NPU de IA de AMD Ryzen obtienen soporte para LLM en Linux mediante Lemonade 10.0 y FastFlowLM
Las NPU AMD Ryzen AI ahora admiten la ejecución de modelos de lenguaje grandes en Linux a través del servidor Lemonade 10.0 con el entorno de ejecución FastFlowLM, requiriendo el kernel Linux 7.0 o back-ports del controlador AMDXDNA.

Claude Code v2.1.146: Comando /code-review, Corrección de paginación, Corrección de Windows PowerShell
Claude Code v2.1.146 renombra /simplify a /code-review con nivel de esfuerzo opcional, corrige paginación MCP y herramienta de Windows PowerShell, mejora la fiabilidad del actualizador automático y el rendimiento de renderizado de diferencias.
Startups de IA publican menos investigación: Lo que significa para el código abierto y los desarrolladores
Las principales startups de IA están publicando significativamente menos investigaciones, lo que genera preocupaciones sobre la transparencia y la reproducibilidad en el campo.

Precisión del Marco de Razonamiento STAR Cae del 100% al 0% en Prompts de Producción
Un investigador descubrió que el marco de razonamiento STAR, que elevó la precisión de Claude en un problema de restricción implícita del 0% al 100% en aislamiento, cayó a una precisión del 0-30% cuando se utilizó dentro de un prompt de sistema de producción de 60 líneas. El problema fue causado por instrucciones conflictivas en el prompt de producción que desencadenaron compromisos de respuesta prematuros.