Estado
console.logOperativoconsole.clearUso poco frecuenteYogaOperativoTurbolog encoderOperativoDevTools ThrottlerRespetadotextjs.orgOperativoPrueba de rendimiento en vivo
El pipeline de @textjs/core se ejecuta en esta pestaña sobre un panel de 100×32 y escribe fotogramas en una consola en memoria.
- Fotograma completo
- —
- layout + pintado + codificación
- Escritura
- —
- edición de una fila
- Fotograma inactivo
- —
- sin cambios
- spans %c
- —
- 3200 celdas
Se inicia automáticamente cuando la página está inactiva.
Historial de rendimiento
packages/core/test/perf.test.ts en cada hito, en el mismo equipo (Apple M5 Pro · Bun 1.4.4). Media de 1000 fotogramas.
| Versión | Fotograma completo | Escritura | Inactividad | spans %c |
|---|---|---|---|---|
0.1.0mar 2025 · @textjs/core · 7c91cea | 0.194ms | 0.065ms | 0.043ms | 205 |
0.2.0jul 2025 · textjs.org · 92437cc | 0.192ms | 0.067ms | 0.042ms | 205 |
0.3.0nov 2025 · 10× input · 8c2d1b1 | 0.205ms | 0.065ms | 0.043ms | 146 |
0.3.0nov 2025 · Mobile pass · e2e6e46 | 0.212ms | 0.067ms | 0.045ms | 146 |
0.4.0may 2026 · Zero-flash frames · f007ade | 0.184ms | 0.046ms | 0.028ms | 146 |
1.0.0oct 2026 · Text.js 1.0 · 57968b6 | 0.163ms | 0.011ms | 0.000ms | 149 |
Frontend de DevTools
bench/devtools en Chrome for Testing: repintados en blanco, fotogramas entregados y retraso de visualización, 5 s por ejecución. Cómo medimos.
| Controlador | FPS | Repintados en blanco | Pintados / emitidos | Retraso p50 |
|---|---|---|---|---|
| Añadir al final (en producción) | 15 | 1.0% | 74 / 75 | 10.4ms |
| Borrar en cada fotograma | 15 | 70.6% | 70 / 75 | 60.4ms |
| Añadir al final, sin pausas | 60 | 0.8% | 67 / 295 | 31.2ms |
| Borrar en cada fotograma | 60 | 81.1% | 45 / 300 | 9.8ms |
Incidentes anteriores
Más recientes primero. Las horas se indican en UTC.
octubre de 2026
Páginas atascadas bajo la cabecera en Safari para iOS27 oct – 28 oct 2026 · Resuelto
- Resuelto
Este incidente se ha resuelto.
- En seguimiento
Se ha desplegado una corrección. El anclaje de desplazamiento está desactivado (
overflow-anchor: none). Seguimos supervisando. - Identificado
El título principal aún puede quedar fijado bajo la cabecera fija tras desplazarse hacia abajo y volver a subir. El anclaje de desplazamiento de Safari está ajustando la posición de desplazamiento.
- En seguimiento
Se ha desplegado una corrección. Esos elementos ahora solo se desplazan horizontalmente, y
scrollbar-gutter: stablesolo se aplica a dispositivos con ratón. - Identificado
Las pestañas de archivos, los bloques de código y las tablas del texto tienen un desbordamiento vertical de 1 px por el subrayado de la pestaña activa, por lo que se desplazan en ambos ejes e iOS les asigna los gestos verticales destinados a la página.
scrollbar-gutter: stabletambién provoca un salto en el primer desplazamiento en iOS. - En investigación
Estamos investigando informes de que no se puede volver al inicio de las páginas de textjs.org al desplazarse en Safari para iOS.
Este incidente afectó a: textjs.org.
Análisis posterior
Las páginas de textjs.org no se mueven mientras cargan, así que el anclaje de desplazamiento no tenía nada que corregir. En Safari para iOS fijaba la sección principal bajo la cabecera fija e impedía volver al inicio al desplazarse.
?debug=scrollen textjs.org ahora muestra en tiempo real los eventos de desplazamiento, interacción táctil y cambio de tamaño e identifica quién origina cada llamada programática de foco o desplazamiento.Correcciones:
297c5d7,55da525,8424fcd· Registro de cambios: 1.0.0- Resuelto
Fallos en las pruebas de reglas de lint en CI23 oct 2026 · Resuelto
- Resuelto
El comprobador ahora lee
it.onlybajo demanda, cuando una prueba llama aRuleTester.itOnly. Las pruebas de CI pasan. - Identificado
Bun lanza una excepción al leer
it.onlycuando la variable de entornoCIestá definida. El comprobador de reglas asignaRuleTester.itOnly = it.onlyal importarse, por lo que falla al cargarlo. - En investigación
La suite de pruebas de
eslint-plugin-textjsfalla en CI antes de ejecutar ninguna prueba de reglas. Las ejecuciones locales pasan.
Análisis posterior
@typescript-eslint/rule-testerrecibe sus funciones de prueba como propiedades estáticas deRuleTester. La corrección envuelveit.onlyen una función. Ningún paquete ni página se vio afectado.Corrección:
eca3f78- Resuelto
Desplazamiento del layout en /playground y /opencode21 oct – 22 oct 2026 · Resuelto
- Resuelto
El desplazamiento acumulado del layout es 0 en todas las rutas.
- En seguimiento
Se ha desplegado una corrección. Ambas páginas comparten un layout de panel, y el tamaño se añade al final sin mover «Ajustar consola». Seguimos supervisando.
- Identificado
El control de tamaño de la consola añade al final de su etiqueta el tamaño medido tras la hidratación (
Fit console · 120×36), lo que mueve el nodo de texto «Ajustar consola». Las filas superior e inferior del panel también tienen alturas distintas en ambas páginas, por lo que el panel se vuelve a centrar al navegar. - En investigación
Nuestra auditoría de desplazamiento del layout registra un desplazamiento acumulado del layout de 0,0001 en /playground y /opencode. Todas las demás rutas que cubre registran 0. El panel de foco también se mueve al navegar entre ambas páginas.
Este incidente afectó a: textjs.org.
Análisis posterior
El panel ahora tiene espacios superior e inferior de altura fija, y todas las demos reservan las mismas filas, por lo que cambiar de página o demo no mueve nada. El panel de conexión de OpenCode muestra una línea de estado en todos los estados, con un esqueleto hasta que se hidrata.
apps/web/scripts/e2e-layout.mjscomprueba que los rectángulos sean idénticos entre rutas, demos, tamaños del área de visualización y estados de conexión.Corrección:
8f22b9b· Registro de cambios: 1.0.0- Resuelto
Nombre de paquete textjs no disponible en npm14 oct – 15 oct 2026 · Resuelto
- Resuelto
Este incidente se ha resuelto.
- En seguimiento
El paquete del framework y la CLI ahora es
@textjs/next, en el mismo ámbito que@textjs/corey@textjs/react. Las importaciones cambian detextjsa@textjs/next. - Identificado
El nombre
textjspertenece a otro paquete de npm desde el 25 de marzo de 2016. - En investigación
La publicación del paquete del framework
textjsen npm falla con403 Forbidden.
Análisis posterior
A partir de Text.js 1.0, las apps importan desde
@textjs/nexten lugar detextjs, y el puente de OpenCode esbunx @textjs/app proxy, que se ejecuta desde cualquier directorio.Text.js 1.0: Un cambio de nombre · Registro de cambios: 1.0.0
- Resuelto
septiembre de 2026
Capas de pintura vacías en los saltos de fila15 sept – 16 sept 2026 · Resuelto
- Resuelto
Este incidente se ha resuelto.
- En seguimiento
Se ha desplegado una corrección. Los saltos de fila que no continúan un tramo ahora restablecen primero
%ca un estilo vacío, para que DevTools emita un salto de línea sin estilo. Cada fotograma lleva una cortina. - Identificado
Cuando un tramo con estilo termina en un salto de fila, el
\nse escribe dentro del span%cdel tramo. DevTools divide el span en el salto de línea, y el resto vacío se convierte en un spandisplay: inline-blockconcontain: paint, que obtiene su propia capa de pintura. - En investigación
Estamos investigando elementos
<span>vacíos en la mayoría de los saltos de fila de los fotogramas de DevTools, y un span de cortina duplicado en algunos fotogramas.
Este incidente afectó a: Turbolog encoder.
Análisis posterior
Los spans con el mismo estilo siguen fusionándose entre saltos de fila. La cortina también se ha movido a su propia línea: DevTools sitúa el enlace al código fuente (
VM12:1) a la derecha de la primera línea de un mensaje, y una cortina en línea dejaba ese enlace junto a la fila 0, reduciendo su anchura.- Resuelto
agosto de 2026
Mayor latencia de visualización tras console.clear27 ago – 31 ago 2026 · Resuelto
- Resuelto
La mediana del retraso de visualización en
bench/devtoolses de 10,4 ms. La corrección se incluye en Text.js 1.0. - En seguimiento
Se ha desplegado una corrección. Tras cualquier fotograma que limpie la consola, el renderizador espera 110 ms una sola vez, para que los fotogramas posteriores lleguen más de 50 ms después de la actualización anterior de DevTools y se procesen de inmediato.
- Identificado
Tras una limpieza, DevTools inserta una fila «Se ha borrado la consola». Esta ocupa el turno inmediato del limitador y desplaza el siguiente fotograma al temporizador de 50 ms. Con fotogramas separados por 66 ms, todos los posteriores siguen usando ese temporizador.
- En investigación
bench/devtoolsregistra una mediana de retraso de visualización de 63 ms tras limpiar la consola. El retraso se mantiene en ese nivel en todos los fotogramas posteriores.
Este incidente afectó a: DevTools Throttler, console.clear.
Análisis posterior
La entrada discreta sigue renderizándose de forma síncrona cuando el intervalo entre fotogramas lo permite.
- Resuelto
El indicador de carga desalinea las filas en la consola de DevTools11 ago – 12 ago 2026 · Resuelto
- Resuelto
Este incidente se ha resuelto. La corrección se incluye en Text.js 1.0.
- En seguimiento
Se ha desplegado una corrección. El indicador de carga
dotspredeterminado ahora dibuja bloques de cuadrante (▘ ▝ ▗ ▖), cada uno de una celda en Menlo. Los fotogramas braille están disponibles convariant="braille"para terminales. - Identificado
El indicador de carga predeterminado dibuja patrones braille (de U+2800 a U+28FF). Text.js mide cada uno como una celda, pero Menlo, la fuente de la consola de DevTools en macOS, no tiene glifos braille. El glifo de sustitución es más ancho que una celda y desplaza el resto de la fila a la derecha.
- En investigación
En macOS, las filas que contienen un
<Spinner>se desalinean en DevTools. Las celdas a la derecha del indicador de carga quedan fuera de la cuadrícula.
Este incidente afectó a: console.log.
Análisis posterior
LineChartdibuja puntos de cuadrante de forma predeterminada por el mismo motivo. Braille está disponible conmarker="braille".- Resuelto
mayo de 2026
Aumento de renderizados en blanco en la consola de DevTools5 may – 19 may 2026 · Resuelto
- Resuelto
La corrección se ha publicado en Text.js 0.4.0. Los renderizados en blanco están en el 1,0 %, todos en el primer fotograma.
- En seguimiento
textjs.org ahora añade los fotogramas al final en lugar de limpiar la consola. Un span de cortina de anchura cero mantiene los fotogramas anteriores fuera de la vista, y los fotogramas se separan al menos 66 ms.
- Identificado
DevTools aplica
console.clear()de forma síncrona, pero limita el renderizado de mensajes nuevos a intervalos de 50 ms. Cada fotograma elimina el anterior de inmediato y se renderiza hasta 50 ms después. Enbench/devtools, un panel de 100×32 quedó en blanco en el 70,6 % de los renderizados de DevTools a 15 fps y en el 81,1 % a 60 fps. - En investigación
Estamos investigando informes de que la consola de DevTools queda brevemente vacía entre fotogramas bajo carga.
Este incidente afectó a: console.clear, DevTools Throttler.
Análisis posterior
Desde 0.1.0, Turbolog enviaba un
console.clear()y unconsole.log()por cada fotograma modificado.bench/devtools, que controla la interfaz real de DevTools en Chrome for Testing, se creó para medir este incidente y produjo las cifras de la tabla de la interfaz de DevTools anterior.Corrección:
f007ade· Turbolog: eliminar el parpadeo · Registro de cambios: 0.4.0- Resuelto
abril de 2026
Rutas de archivos en los fotogramas de la consola con estilo de enlace14 abr – 15 abr 2026 · Resuelto
- Resuelto
Este incidente se ha resuelto.
- En seguimiento
Se ha desplegado una corrección. El codificador inserta un word joiner (U+2060) en los textos
path:line,//host:portydata:, salvo que la celda permita enlaces. - Identificado
DevTools convierte las URL y los textos
path:liney//host:portde los mensajes de la consola en enlaces y les impone los colores de su tema. El codificador ya dividía://ywww., peropath:liney//host:porttras un esquema siguen coincidiendo. - En investigación
Textos como
src/app.tsx:12yhttp://localhost:3000se renderizan con el color de enlace de DevTools en lugar de su estilo%c.
Este incidente afectó a: Turbolog encoder.
Análisis posterior
://ywww.llevan un word joiner desde 0.1.0. Las celdas que deben seguir siendo clicables establecen el atributo allow-link y se escriben sin cambios.- Resuelto
noviembre de 2025
Pulsaciones con retraso en las apps de consola4 nov – 18 nov 2025 · Resuelto
- Resuelto
La corrección se ha publicado en Text.js 0.3.0.
- En seguimiento
Se ha desplegado una corrección. La entrada discreta, como una pulsación o un pegado, ahora se renderiza de forma síncrona en la misma tarea. Las demás actualizaciones siguen confirmándose en
requestAnimationFrame. - Identificado
Cada actualización, incluida una pulsación, espera al siguiente
requestAnimationFrameantes de que React confirme los cambios y se registre el fotograma. - En investigación
La escritura en las apps de consola va por detrás del teclado, de forma más visible en OpenCode en textjs.org.
Este incidente afectó a: textjs.org.
Análisis posterior
Las pulsaciones ya no esperan al siguiente fotograma de animación. Las confirmaciones que no proceden de la entrada, como los temporizadores y los datos en streaming, siguen agrupándose por fotograma de animación.
Corrección:
8c2d1b1· Registro de cambios: 0.3.0- Resuelto