Anthropic corrige el parpadeo de la terminal de Claude Code: del análisis de la causa raíz a la reconstrucción del sistema de renderizado Una presentación del desarrollador de Claude Code, @trq212, detalla el problema de parpadeo de pantalla de larga data en Claude Code y cómo el equipo redujo el parpadeo en aproximadamente un 85 % al reescribir el sistema de renderizado. La causa raíz del problema de parpadeo es que la interfaz del terminal consta de dos partes: • Ventana gráfica: el área inferior actualmente visible para el usuario. • Buffer de retroceso: el contenido histórico sobre el que se ha desplazado. Las herramientas de línea de comandos comunes (como ls o echo) imprimen su salida una vez y luego salen, sin actualizar la interfaz con frecuencia. Sin embargo, Claude Code es una interfaz de usuario interactiva de larga duración que puede redibujar la ventana gráfica decenas de veces por segundo. Cuando el contenido excede la altura de la ventana gráfica, la fila superior se desplaza hacia el búfer de desplazamiento, lo que provoca que parte del renderizado se realice fuera de la pantalla. Para evitar errores de renderizado o confusiones al redimensionar el contenido, los sistemas antiguos requerían borrar todo el búfer de desplazamiento cada vez, lo que provocaba un parpadeo notable. Solución: Reescribir el sistema de renderizado. Durante los últimos meses, el equipo reescribió el motor de renderizado desde cero. Las mejoras clave incluyen: • Diferenciación: compara los cambios en cada celda terminal uno por uno y solo emite las secuencias de escape ANSI necesarias para actualizar las partes modificadas. Minimizar el redibujado de pantalla completa: realice un redibujado completo solo cuando sea absolutamente necesario (por ejemplo, cuando cambia el tamaño del terminal). ¿Por qué no utilizar el modo "pantalla alternativa"? Algunas aplicaciones de terminal (como Emacs o Vim) cambiarán al modo de "pantalla alternativa": • El programa tiene control completo sobre el desplazamiento, la selección y otras funciones. • Al salir, se restaurará automáticamente el contenido original del terminal. Esto puede eliminar completamente el parpadeo. Sin embargo, la desventaja es la pérdida de la experiencia de usuario nativa del dispositivo, por ejemplo: • Búsqueda global Cmd+F. • Selección de texto con el ratón. • Funcionalidad copiar/pegar, etc. El equipo valora mucho estas funciones nativas del dispositivo, por lo que actualmente se centra en mantener el modo de pantalla principal. Es posible que exploren pantallas alternativas en el futuro, pero los estándares son altos y no cederán fácilmente. ¿Por qué tarda tanto la reparación? El código de renderizado inicial carecía de suficientes pruebas automatizadas. Modificar una parte solía provocar errores inesperados en otras partes, lo que ralentizaba el progreso. El avance clave fue la introducción de pruebas basadas en propiedades: Genere miles de estados de IU aleatorios (con diferentes anchos de terminal, longitudes de contenido, casos extremos Unicode, etc.). • Representar simultáneamente el mismo estado a través de los sistemas antiguo y nuevo, y comparar automáticamente las salidas para verificar la coherencia.
Cargando el detalle del hilo
Obteniendo los tweets originales de X para ofrecer una lectura limpia.
Esto suele tardar solo unos segundos.
