Status

Semua sistem beroperasiDiperbarui 31 Oktober 2026
console.logBeroperasi
90 hari laluSatu panggilan per frame yang berubah, tidak ada saat idle.Hari ini
console.clearJarang digunakan
90 hari laluPada frame pertama, setelah invalidate(), saat idle setelah 100 frame menumpuk, dan pada 300 frame.Hari ini
YogaBeroperasi
90 hari laluLayout flexbox WebAssembly, pointScaleFactor 1.Hari ini
Turbolog encoderBeroperasi
90 hari laluGerbang hash baris dan pengodean run-length %c.Hari ini
DevTools ThrottlerDipatuhi
90 hari laluThrottle viewport 50 ms. Jarak antarframe minimal 66 ms.Hari ini
textjs.orgBeroperasi
90 hari laluDokumentasi, Belajar, Playground, blog, dan toko.Hari ini

Benchmark langsung

Pipeline @textjs/core berjalan di tab ini pada dasbor 100×32 dan menulis frame ke konsol dalam memori.

Frame penuh
—
layout + paint + encode
Mengetik
—
edit satu baris
Frame diam
—
tidak ada perubahan
span %c
—
3.200 sel

Dimulai otomatis saat halaman menganggur.

Riwayat performa

packages/core/test/perf.test.ts pada setiap tonggak, mesin yang sama (Apple M5 Pro · Bun 1.4.4). Rata-rata dari 1.000 frame.

RilisFrame penuhMengetikMenganggurspan %c
0.1.0Mar 2025 · @textjs/core · 7c91cea0.194ms0.065ms0.043ms205
0.2.0Jul 2025 · textjs.org · 92437cc0.192ms0.067ms0.042ms205
0.3.0Nov 2025 · 10× input · 8c2d1b10.205ms0.065ms0.043ms146
0.3.0Nov 2025 · Mobile pass · e2e6e460.212ms0.067ms0.045ms146
0.4.0Mei 2026 · Zero-flash frames · f007ade0.184ms0.046ms0.028ms146
1.0.0Okt 2026 · Text.js 1.0 · 57968b60.163ms0.011ms0.000ms149

Frontend DevTools

bench/devtools di Chrome for Testing: penggambaran kosong, frame terkirim, dan jeda tampilan, 5 d per pengujian. Cara kami mengukur.

DriverFPSPenggambaran kosongDigambar / dikirimJeda p50
Menambahkan di akhir (dirilis)151.0%74 / 7510.4ms
Bersihkan tiap frame1570.6%70 / 7560.4ms
Menambahkan di akhir, tanpa jeda600.8%67 / 29531.2ms
Bersihkan tiap frame6081.1%45 / 3009.8ms

Insiden sebelumnya

Terbaru di atas. Waktu dalam UTC.

Oktober 2026

  • Halaman tersangkut di bawah header pada iOS Safari27 Okt – 28 Okt 2026 · Teratasi
    1. Teratasi

      Insiden ini telah diselesaikan.

    2. Dipantau

      Perbaikan telah di-deploy. Penjangkaran gulir dinonaktifkan (overflow-anchor: none). Kami sedang memantau.

    3. Teridentifikasi

      Judul utama masih bisa tersangkut di bawah header melekat setelah menggulir ke bawah lalu kembali ke atas. Penjangkaran gulir Safari menyesuaikan posisi gulir.

    4. Dipantau

      Perbaikan telah di-deploy. Elemen tersebut kini hanya bergulir secara horizontal, dan scrollbar-gutter: stable hanya berlaku pada perangkat dengan mouse.

    5. Teridentifikasi

      Tab file, blok kode, dan tabel dalam teks memiliki luapan vertikal sebesar 1 px dari garis bawah tab aktif, sehingga bergulir pada kedua sumbu dan iOS meneruskan usapan vertikal yang ditujukan untuk halaman ke elemen tersebut. scrollbar-gutter: stable juga membuat guliran pertama meloncat pada iOS.

    6. Diselidiki

      Kami sedang menyelidiki laporan bahwa halaman textjs.org tidak bisa digulir kembali ke atas pada iOS Safari.

    Insiden ini berdampak pada: textjs.org.

    Analisis pascainsiden

    Halaman textjs.org tidak bergeser saat dimuat, sehingga penjangkaran gulir tidak perlu mengoreksi apa pun. Pada iOS Safari, fitur ini menjepit bagian utama di bawah header melekat dan menghalangi guliran kembali ke atas. ?debug=scroll pada textjs.org kini menampilkan pembacaan langsung peristiwa gulir, sentuh, dan perubahan ukuran serta menyebutkan pemanggil tiap panggilan fokus atau gulir terprogram.

    Perbaikan: 297c5d7, 55da525, 8424fcd · Catatan perubahan: 1.0.0

  • Pengujian aturan lint gagal di CI23 Okt 2026 · Teratasi
    1. Teratasi

      Penguji kini menunda pembacaan it.only hingga pengujian memanggil RuleTester.itOnly. CI kini lulus.

    2. Teridentifikasi

      Bun melempar error saat it.only dibaca ketika variabel lingkungan CI diatur. Penguji aturan menetapkan RuleTester.itOnly = it.only saat impor, sehingga pemuatannya gagal.

    3. Diselidiki

      Rangkaian pengujian eslint-plugin-textjs gagal di CI sebelum pengujian aturan berjalan. Pengujian lokal lulus.

    Analisis pascainsiden

    @typescript-eslint/rule-tester menerima fungsi pengujiannya sebagai properti statis RuleTester. Perbaikan ini membungkus it.only dalam fungsi. Tidak ada paket atau halaman yang terdampak.

    Perbaikan: eca3f78

  • Pergeseran layout pada /playground dan /opencode21 Okt – 22 Okt 2026 · Teratasi
    1. Teratasi

      Pergeseran layout kumulatif bernilai 0 di setiap route.

    2. Dipantau

      Perbaikan telah di-deploy. Kedua halaman memakai satu layout pad, dan ukuran ditambahkan di akhir tanpa menggeser “Sesuaikan konsol”. Kami terus memantau.

    3. Teridentifikasi

      Kontrol ukuran konsol menambahkan ukuran terukur di akhir labelnya setelah hidrasi (Fit console · 120×36), yang menggeser node teks “Fit console”. Tinggi baris atas dan bawah pad juga berbeda antara kedua halaman, sehingga pad kembali ke tengah saat navigasi.

    4. Diselidiki

      Audit pergeseran layout kami melaporkan pergeseran layout kumulatif sebesar 0,0001 pada /playground dan /opencode. Setiap route lain yang diaudit melaporkan 0. Focus pad juga bergerak saat berpindah antara kedua halaman.

    Insiden ini berdampak pada: textjs.org.

    Analisis pascainsiden

    Pad kini memiliki slot atas dan bawah dengan tinggi tetap, dan setiap demo menyediakan baris yang sama, sehingga pergantian halaman atau demo tidak menggeser apa pun. Panel koneksi OpenCode menampilkan satu baris status di setiap keadaan, dengan skeleton hingga hidrasi selesai. apps/web/scripts/e2e-layout.mjs memastikan kotak identik di semua route, demo, ukuran viewport, dan keadaan koneksi.

    Perbaikan: 8f22b9b · Catatan perubahan: 1.0.0

  • Bilah samping dokumentasi bergulir keluar dari tampilan di akhir halaman panjang16 Okt – 17 Okt 2026 · Teratasi
    1. Teratasi

      Insiden ini telah diselesaikan.

    2. Dipantau

      Perbaikan telah di-deploy. Bab Belajar juga me-render footer di dalam kolom konten. Kami terus memantau.

    3. Teridentifikasi

      Bilah samping bab di Belajar mengalami masalah yang sama.

    4. Dipantau

      Perbaikan telah di-deploy. Halaman dokumentasi me-render footer di dalam kolom konten, sehingga layout mencapai bagian bawah halaman.

    5. Teridentifikasi

      Bilah samping memakai position: sticky di dalam layout dokumentasi, dan footer situs di-render setelah layout itu. Elemen sticky tetap menempel hanya selama blok penampungnya ada di layar, sehingga saat footer bergulir masuk, bilah samping ikut bergeser.

    6. Diselidiki

      Kami sedang menyelidiki laporan bahwa bilah samping dokumentasi bergulir keluar dari tampilan di bagian bawah halaman panjang.

    Insiden ini berdampak pada: textjs.org.

    Analisis pascainsiden

    Halaman dengan bilah samping sticky (dokumentasi dan bab Belajar) me-render footer di kolom kontennya. Halaman lain tetap memakai footer bersama.

    Perbaikan: 131ac96 · Catatan perubahan: 1.0.0

  • Nama paket textjs tidak tersedia di npm14 Okt – 15 Okt 2026 · Teratasi
    1. Teratasi

      Insiden ini telah diselesaikan.

    2. Dipantau

      Paket framework dan CLI kini bernama @textjs/next, dalam scope yang sama dengan @textjs/core dan @textjs/react. Impor berubah dari textjs menjadi @textjs/next.

    3. Teridentifikasi

      Nama textjs telah dimiliki paket npm lain sejak 25 Maret 2016.

    4. Diselidiki

      Publikasi paket framework textjs ke npm gagal dengan 403 Forbidden.

    Analisis pascainsiden

    Mulai Text.js 1.0, aplikasi mengimpor dari @textjs/next alih-alih textjs, dan bridge OpenCode adalah bunx @textjs/app proxy, yang berjalan dari direktori mana pun.

    Text.js 1.0: Satu pergantian nama · Catatan perubahan: 1.0.0

September 2026

  • Lapisan paint kosong pada pergantian baris15 Sep – 16 Sep 2026 · Teratasi
    1. Teratasi

      Insiden ini telah diselesaikan.

    2. Dipantau

      Perbaikan telah di-deploy. Pergantian baris yang tidak melanjutkan rangkaian kini lebih dulu mereset %c ke gaya kosong, sehingga DevTools menghasilkan baris baru biasa. Setiap frame membawa satu tirai.

    3. Teridentifikasi

      Saat rangkaian bergaya berakhir pada pergantian baris, \n ditulis di dalam span %c rangkaian itu. DevTools memisahkan span pada pergantian baris, dan sisa kosongnya menjadi span display: inline-block dengan contain: paint, yang mendapat lapisan paint tersendiri.

    4. Diselidiki

      Kami sedang menyelidiki elemen <span> kosong pada sebagian besar pergantian baris dalam frame DevTools, serta span tirai ganda pada beberapa frame.

    Insiden ini berdampak pada: Turbolog encoder.

    Analisis pascainsiden

    Span dengan gaya yang sama tetap digabungkan melintasi pergantian baris. Tirai juga dipindahkan ke baris tersendiri: DevTools menempatkan tautan sumber (VM12:1) di kanan baris pertama pesan, dan tirai inline membuat tautan itu berada di samping baris 0, sehingga mempersempitnya.

    Catatan perubahan: 1.0.0

Agustus 2026

  • Latensi tampilan meningkat setelah console.clear27 Agu – 31 Agu 2026 · Teratasi
    1. Teratasi

      Median jeda tampilan di bench/devtools adalah 10,4 ms. Perbaikan ini disertakan dalam Text.js 1.0.

    2. Dipantau

      Perbaikan telah di-deploy. Setelah frame yang membersihkan konsol, renderer menunggu 110 ms sekali, sehingga frame berikutnya tiba lebih dari 50 ms setelah penyegaran DevTools sebelumnya dan memakai jalur langsungnya.

    3. Teridentifikasi

      Setelah pembersihan, DevTools menyisipkan baris “Konsol dibersihkan”. Baris ini mengambil slot langsung throttler dan mendorong frame berikutnya ke timer 50 ms. Dengan jarak antarframe 66 ms, setiap frame berikutnya tetap memakai timer itu.

    4. Diselidiki

      bench/devtools melaporkan median jeda tampilan sebesar 63 ms setelah konsol dibersihkan. Jeda tetap di tingkat itu untuk setiap frame berikutnya.

    Insiden ini berdampak pada: DevTools Throttler, console.clear.

    Analisis pascainsiden

    Input diskret tetap di-render secara sinkron saat interval frame memungkinkan.

    Memutus penguncian fase · Catatan perubahan: 1.0.0

  • Spinner membuat baris tidak sejajar di konsol DevTools11 Agu – 12 Agu 2026 · Teratasi
    1. Teratasi

      Insiden ini telah diselesaikan. Perbaikan ini disertakan dalam Text.js 1.0.

    2. Dipantau

      Perbaikan telah di-deploy. Spinner dots bawaan kini menggambar blok kuadran (▘ ▝ ▗ ▖), masing-masing satu sel di Menlo. Frame braille tersedia sebagai variant="braille" untuk terminal.

    3. Teridentifikasi

      Spinner bawaan menggambar pola braille (U+2800 hingga U+28FF). Text.js mengukur masing-masing sebagai satu sel, tetapi Menlo, font konsol DevTools di macOS, tidak memiliki glif braille. Glif pengganti lebih lebar dari satu sel dan mendorong sisa baris ke kanan.

    4. Diselidiki

      Di macOS, baris yang berisi <Spinner> tidak sejajar di DevTools. Sel di kanan spinner keluar dari kisi.

    Insiden ini berdampak pada: console.log.

    Analisis pascainsiden

    LineChart menggambar titik kuadran secara bawaan karena alasan yang sama. Braille tersedia dengan marker="braille".

    Catatan perubahan: 1.0.0

Mei 2026

  • Peningkatan paint kosong di konsol DevTools5 Mei – 19 Mei 2026 · Teratasi
    1. Teratasi

      Perbaikan dirilis dalam Text.js 0.4.0. Paint kosong kini sebesar 1,0%, semuanya pada frame pertama.

    2. Dipantau

      textjs.org kini menambahkan frame di akhir alih-alih membersihkan konsol. Span tirai selebar nol menyembunyikan frame sebelumnya, dan jarak antarframe diatur minimal 66 ms.

    3. Teridentifikasi

      DevTools menerapkan console.clear() secara sinkron tetapi menggambar pesan baru dengan throttle 50 ms. Setiap frame langsung menghapus frame sebelumnya dan digambar hingga 50 ms kemudian. Di bench/devtools, dasbor 100×32 kosong pada 70,6% paint DevTools di 15 fps dan 81,1% di 60 fps.

    4. Diselidiki

      Kami sedang menyelidiki laporan bahwa konsol DevTools berkedip kosong di antara frame saat beban tinggi.

    Insiden ini berdampak pada: console.clear, DevTools Throttler.

    Analisis pascainsiden

    Sejak 0.1.0, Turbolog mengirim satu console.clear() dan satu console.log() per frame yang berubah. bench/devtools, yang menjalankan frontend DevTools asli di Chrome for Testing, dibuat untuk mengukur insiden ini dan menghasilkan angka pada tabel frontend DevTools di atas.

    Perbaikan: f007ade · Turbolog: menghilangkan kilatan · Catatan perubahan: 0.4.0

April 2026

  • Gaya path file dalam frame konsol berubah menjadi tautan14 Apr – 15 Apr 2026 · Teratasi
    1. Teratasi

      Insiden ini telah diselesaikan.

    2. Dipantau

      Perbaikan telah di-deploy. Encoder menyisipkan word joiner (U+2060) ke dalam teks path:line, //host:port, dan data:, kecuali sel mengizinkan tautan.

    3. Teridentifikasi

      DevTools mengubah URL, path:line, dan teks //host:port dalam pesan konsol menjadi tautan dan memaksakan warna temanya. Encoder sudah memecah :// dan www., tetapi path:line dan //host:port setelah skema masih cocok.

    4. Diselidiki

      Teks seperti src/app.tsx:12 dan http://localhost:3000 di-render dengan warna tautan DevTools alih-alih gaya %c-nya.

    Insiden ini berdampak pada: Turbolog encoder.

    Analisis pascainsiden

    :// dan www. telah memuat word joiner sejak 0.1.0. Sel yang harus tetap bisa diklik menetapkan atribut allow-link dan ditulis tanpa perubahan.

    Catatan perubahan: 0.4.0

November 2025

  • Penekanan tombol tertunda di aplikasi konsol4 Nov – 18 Nov 2025 · Teratasi
    1. Teratasi

      Perbaikannya dirilis di Text.js 0.3.0.

    2. Dipantau

      Perbaikan telah di-deploy. Input diskret, seperti penekanan tombol atau penempelan, kini di-render secara sinkron dalam tugas yang sama. Pembaruan lain tetap melakukan commit pada requestAnimationFrame.

    3. Teridentifikasi

      Setiap pembaruan, termasuk penekanan tombol, menunggu requestAnimationFrame berikutnya sebelum React melakukan commit dan frame dicatat ke konsol.

    4. Diselidiki

      Pengetikan di aplikasi konsol tertinggal dari keyboard, paling terlihat di OpenCode pada textjs.org.

    Insiden ini berdampak pada: textjs.org.

    Analisis pascainsiden

    Penekanan tombol tidak lagi menunggu frame animasi berikutnya. Commit yang bukan berasal dari input, seperti timer dan data streaming, tetap dikelompokkan per frame animasi.

    Perbaikan: 8c2d1b1 · Catatan perubahan: 0.3.0