Durum

Tüm sistemler çalışıyorGüncelleme: 31 Ekim 2026
console.logÇalışıyor
90 gün önceDeğişen her kare için bir çağrı, boşta çağrı yok.Bugün
console.clearNadiren kullanılır
90 gün önceİlk karede, invalidate() sonrasında, 100 kare biriktiğinde boşta ve 300 karede.Bugün
YogaÇalışıyor
90 gün önceWebAssembly flexbox layout, pointScaleFactor 1.Bugün
Turbolog encoderÇalışıyor
90 gün önceSatır hash denetimi ve koşu uzunluklu %c kodlama.Bugün
DevTools ThrottlerDikkate alınır
90 gün önceGörünüm alanı 50 ms aralıklarla güncellenir. Kareler arasında en az 66 ms bulunur.Bugün
textjs.orgÇalışıyor
90 gün önceBelgeler, Öğren, Playground, blog ve mağaza.Bugün

Canlı performans testi

@textjs/core işlem hattı bu sekmede 100×32 boyutlu bir panoda çalışır ve kareleri bellekteki bir konsola yazar.

Tam kare
—
layout + boyama + kodlama
Yazma
—
tek satır düzenleme
Boşta kare
—
değişiklik yok
%c span’leri
—
3.200 hücre

Sayfa boşta kaldığında otomatik başlar.

Performans geçmişi

Her dönüm noktasında, aynı makinede (Apple M5 Pro · Bun 1.4.4) packages/core/test/perf.test.ts. 1.000 karenin ortalaması.

SürümTam kareYazmaBoşta%c span’leri
0.1.0Mar 2025 · @textjs/core · 7c91cea0.194ms0.065ms0.043ms205
0.2.0Tem 2025 · textjs.org · 92437cc0.192ms0.067ms0.042ms205
0.3.0Kas 2025 · 10× input · 8c2d1b10.205ms0.065ms0.043ms146
0.3.0Kas 2025 · Mobile pass · e2e6e460.212ms0.067ms0.045ms146
0.4.0May 2026 · Zero-flash frames · f007ade0.184ms0.046ms0.028ms146
1.0.0Eki 2026 · Text.js 1.0 · 57968b60.163ms0.011ms0.000ms149

DevTools ön yüzü

Chrome for Testing’de bench/devtools: boş boyamalar, iletilen kareler ve görüntüleme gecikmesi, çalıştırma başına 5 sn. Nasıl ölçüyoruz.

SürücüFPSBoş boyamalarBoyanan / üretilenGecikme p50
Sona ekleme (mevcut)151.0%74 / 7510.4ms
Her karede temizleme1570.6%70 / 7560.4ms
Sona ekleme, hız sınırsız600.8%67 / 29531.2ms
Her karede temizleme6081.1%45 / 3009.8ms

Geçmiş olaylar

En yeniden eskiye. Saatler UTC cinsindendir.

Ekim 2026

  • iOS Safari’de üstbilginin altında takılan sayfalar27 Eki – 28 Eki 2026 · Çözüldü
    1. Çözüldü

      Bu olay çözüldü.

    2. İzleniyor

      Bir düzeltme dağıtıldı. Kaydırma sabitlemesi kapalı (overflow-anchor: none). İzliyoruz.

    3. Neden belirlendi

      Aşağı ve tekrar yukarı kaydırdıktan sonra ana başlık hâlâ yapışkan üstbilginin altında sabitlenebiliyor. Safari’nin kaydırma sabitlemesi kaydırma konumunu değiştiriyor.

    4. İzleniyor

      Bir düzeltme dağıtıldı. Bu öğeler artık yalnızca yatay kayıyor ve scrollbar-gutter: stable yalnızca fare kullanan cihazlarda uygulanıyor.

    5. Neden belirlendi

      Dosya sekmelerinde, kod bloklarında ve metin tablolarında etkin sekmenin alt çizgisinden kaynaklanan 1 px dikey taşma var; bu yüzden iki eksende de kayıyorlar ve iOS, sayfaya yönelik dikey kaydırma hareketlerini bu öğelere yönlendiriyor. scrollbar-gutter: stable da iOS’ta ilk kaydırmada sıçramaya neden oluyor.

    6. İnceleniyor

      iOS Safari’de textjs.org sayfalarının en başa geri kaydırılamadığına dair bildirimleri inceliyoruz.

    Bu olayın etkilediği bileşenler: textjs.org.

    Olay sonrası inceleme

    textjs.org sayfaları yüklenirken yer değiştirmediğinden kaydırma sabitlemesinin düzelteceği bir şey yoktu. iOS Safari’de ana bölümü yapışkan üstbilginin altına sabitliyor ve en başa geri kaydırmayı engelliyordu. textjs.org üzerindeki ?debug=scroll artık kaydırma, dokunma ve yeniden boyutlandırma olaylarını canlı gösteriyor ve programatik her odaklama veya kaydırma çağrısını yapanı belirtiyor.

    Düzeltmeler: 297c5d7, 55da525, 8424fcd · Değişiklik günlüğü: 1.0.0

  • CI’da başarısız olan lint kuralı testleri23 Eki 2026 · Çözüldü
    1. Çözüldü

      Test aracı artık it.only değerini ihtiyaç anında, bir test RuleTester.itOnly çağrısı yaptığında okuyor. CI başarılı.

    2. Neden belirlendi

      CI ortam değişkeni ayarlıyken it.only okunduğunda Bun hata fırlatıyor. Kural test aracı içe aktarma sırasında RuleTester.itOnly = it.only atamasını yapıyor, bu yüzden yüklenemiyor.

    3. İnceleniyor

      eslint-plugin-textjs test paketi, CI’da herhangi bir kural testi çalışmadan başarısız oluyor. Yerel çalıştırmalar başarılı.

    Olay sonrası inceleme

    @typescript-eslint/rule-tester, test fonksiyonlarını RuleTester statik özellikleri olarak alır. Düzeltme, it.only değerini bir fonksiyonla sarmalıyor. Hiçbir paket veya sayfa etkilenmedi.

    Düzeltme: eca3f78

  • /playground ve /opencode üzerinde layout kayması21 Eki – 22 Eki 2026 · Çözüldü
    1. Çözüldü

      Kümülatif layout kayması her rotada 0.

    2. İzleniyor

      Bir düzeltme dağıtıldı. Her iki sayfa aynı pad layout’unu paylaşıyor ve boyut, “Konsola sığdır” taşınmadan sona ekleniyor. İzliyoruz.

    3. Neden belirlendi

      Konsol boyutu denetimi, hydration sonrasında ölçülen boyutu etiketinin sonuna ekliyor (Fit console · 120×36); bu da “Konsola sığdır” metin düğümünü kaydırıyor. Odak alanının üst ve alt satırlarının yüksekliği de iki sayfa arasında farklı olduğundan gezinirken alan yeniden ortalanıyor.

    4. İnceleniyor

      Layout kayması denetimimiz /playground ve /opencode üzerinde 0,0001 kümülatif layout kayması bildiriyor. Kapsadığı diğer tüm rotalarda 0 bildiriyor. Odak alanı da iki sayfa arasında gezinirken yer değiştiriyor.

    Bu olayın etkilediği bileşenler: textjs.org.

    Olay sonrası inceleme

    Pad artık üstte ve altta sabit yükseklikte alanlara sahip ve her demo aynı satırları ayırıyor; böylece sayfa veya demo değiştirince hiçbir şey yerinden oynamıyor. OpenCode bağlantı paneli her durumda tek bir durum satırı gösteriyor; hidrasyon tamamlanana kadar bir iskelet kullanıyor. apps/web/scripts/e2e-layout.mjs, rotalar, demolar, görünüm alanı boyutları ve bağlantı durumları arasında kutuların aynı olduğunu doğruluyor.

    Düzeltme: 8f22b9b · Değişiklik günlüğü: 1.0.0

  • Belgeler kenar çubuğunun uzun sayfaların sonunda görünümden çıkması16 Eki – 17 Eki 2026 · Çözüldü
    1. Çözüldü

      Bu olay çözüldü.

    2. İzleniyor

      Bir düzeltme dağıtıldı. Öğren bölümleri de altbilgiyi içerik sütununda render ediyor. İzliyoruz.

    3. Neden belirlendi

      Öğren bölüm kenar çubuğunda da aynı sorun var.

    4. İzleniyor

      Bir düzeltme dağıtıldı. Belgeler sayfaları altbilgiyi içerik sütununda render ediyor; böylece layout sayfanın altına kadar uzanıyor.

    5. Neden belirlendi

      Kenar çubuğu, belgeler layout’u içinde position: sticky kullanıyor ve site altbilgisi bu layout’tan sonra render ediliyor. Yapışkan bir öğe, kapsayıcı bloğu ekranda olduğu sürece sabit kalıyor; bu yüzden altbilgi kayarak göründüğünde kenar çubuğunu da beraberinde götürüyor.

    6. İnceleniyor

      Belgeler kenar çubuğunun uzun sayfaların altında görünümden çıktığına dair bildirimleri araştırıyoruz.

    Bu olayın etkilediği bileşenler: textjs.org.

    Olay sonrası inceleme

    Yapışkan kenar çubuğu olan sayfalar (belgeler ve Öğren bölümleri) altbilgiyi içerik sütununda render ediyor. Diğer sayfalar ortak altbilgiyi koruyor.

    Düzeltme: 131ac96 · Değişiklik günlüğü: 1.0.0

  • textjs paket adı npm’de kullanılamıyor14 Eki – 15 Eki 2026 · Çözüldü
    1. Çözüldü

      Bu olay çözüldü.

    2. İzleniyor

      Framework ve CLI paketi artık @textjs/core ve @textjs/react ile aynı kapsamda bulunan @textjs/next. İçe aktarımlar textjs yerine @textjs/next kullanıyor.

    3. Neden belirlendi

      textjs adı 25 Mart 2016’dan beri başka bir npm paketine ait.

    4. İnceleniyor

      textjs framework paketini npm’e yayımlama işlemi 403 Forbidden hatasıyla başarısız oluyor.

    Olay sonrası inceleme

    Text.js 1.0’dan itibaren uygulamalar textjs yerine @textjs/next üzerinden içe aktarıyor ve OpenCode köprüsü, her dizinden çalışabilen bunx @textjs/app proxy komutunu kullanıyor.

    Text.js 1.0: Tek ad değişikliği · Değişiklik günlüğü: 1.0.0

Eylül 2026

  • Satır sonlarında boş boyama katmanları15 Eyl – 16 Eyl 2026 · Çözüldü
    1. Çözüldü

      Bu olay çözüldü.

    2. İzleniyor

      Bir düzeltme dağıtıldı. Bir diziyi devam ettirmeyen satır sonları artık önce %c stilini boşaltıyor; böylece DevTools düz bir satır sonu üretiyor. Her kare tek bir perde taşıyor.

    3. Neden belirlendi

      Stil uygulanmış bir dizi satır sonunda bittiğinde \n, dizinin %c span’inin içine yazılıyor. DevTools, span’i satır sonunda bölüyor ve boş kalan kısım, contain: paint içeren bir display: inline-block span’ine dönüşerek kendi boyama katmanını alıyor.

    4. İnceleniyor

      DevTools karelerinde çoğu satır sonundaki boş <span> öğelerini ve bazı karelerde yinelenen perde span’ini araştırıyoruz.

    Bu olayın etkilediği bileşenler: Turbolog encoder.

    Olay sonrası inceleme

    Aynı stildeki span’ler satır sonları boyunca birleşmeye devam ediyor. Perde de kendi satırına taşındı: DevTools, kaynak bağlantısını (VM12:1) mesajın ilk satırının sağına yerleştiriyor ve satır içi perde bu bağlantıyı 0. satırın yanında bırakarak satırı daraltıyordu.

    Değişiklik günlüğü: 1.0.0

Ağustos 2026

  • console.clear sonrası artan görüntüleme gecikmesi27 Ağu – 31 Ağu 2026 · Çözüldü
    1. Çözüldü

      bench/devtools medyan görüntüleme gecikmesi 10,4 ms. Düzeltme Text.js 1.0 ile geliyor.

    2. İzleniyor

      Bir düzeltme dağıtıldı. Render motoru, temizleme yapan her kareden sonra bir defalığına 110 ms bekliyor; böylece sonraki kareler DevTools’un önceki yenilemesinden 50 ms’den fazla süre sonra geliyor ve anında işleniyor.

    3. Neden belirlendi

      Temizleme sonrası DevTools bir “Konsol temizlendi” satırı ekliyor. Bu satır, hız sınırlayıcının anında işleme yuvasını alıyor ve sonraki kareyi 50 ms zamanlayıcısına itiyor. Kareler arasında 66 ms olduğundan sonraki her kare bu zamanlayıcıda kalıyor.

    4. İnceleniyor

      bench/devtools, konsol temizlendikten sonra 63 ms medyan görüntüleme gecikmesi bildiriyor. Sonraki her karede gecikme bu düzeyde kalıyor.

    Bu olayın etkilediği bileşenler: DevTools Throttler, console.clear.

    Olay sonrası inceleme

    Ayrık girdiler, kare aralığı izin verdiğinde eşzamanlı render edilmeye devam ediyor.

    Faz kilidini kırma · Değişiklik günlüğü: 1.0.0

  • Dönme göstergesinin DevTools konsolunda satır hizasını bozması11 Ağu – 12 Ağu 2026 · Çözüldü
    1. Çözüldü

      Bu olay çözüldü. Düzeltme Text.js 1.0 ile geliyor.

    2. İzleniyor

      Bir düzeltme dağıtıldı. Varsayılan dots dönme göstergesi artık Menlo’da her biri tek hücre olan çeyrek bloklar (▘ ▝ ▗ ▖) çiziyor. Braille kareleri terminaller için variant="braille" ile kullanılabiliyor.

    3. Neden belirlendi

      Varsayılan dönme göstergesi braille desenleri çiziyor (U+2800 ile U+28FF arası). Text.js her birini tek hücre olarak ölçüyor ancak macOS’ta DevTools konsolunun yazı tipi olan Menlo’da braille glifleri yok. Yedek glif bir hücreden daha geniş ve satırın geri kalanını sağa itiyor.

    4. İnceleniyor

      macOS’ta <Spinner> içeren satırlar DevTools’ta yanlış hizalanıyor. Dönme göstergesinin sağındaki hücreler ızgaranın dışında kalıyor.

    Bu olayın etkilediği bileşenler: console.log.

    Olay sonrası inceleme

    LineChart aynı nedenle varsayılan olarak çeyrek noktalar çiziyor. Braille, marker="braille" ile kullanılabiliyor.

    Değişiklik günlüğü: 1.0.0

Mayıs 2026

  • DevTools konsolunda artan boş boyamalar5 May – 19 May 2026 · Çözüldü
    1. Çözüldü

      Düzeltme Text.js 0.4.0 ile yayımlandı. Boş boyamalar %1,0 düzeyinde ve tamamı ilk karede gerçekleşiyor.

    2. İzleniyor

      textjs.org artık temizlemek yerine kareleri sona ekliyor. Sıfır genişlikli bir perde span’i önceki kareleri görünüm dışında tutuyor ve kareler en az 66 ms aralıkla gönderiliyor.

    3. Neden belirlendi

      DevTools, console.clear() çağrısını eşzamanlı uyguluyor ancak yeni mesajları 50 ms aralıkla boyuyor. Her kare öncekini hemen kaldırıyor ve en fazla 50 ms sonra boyanıyor. bench/devtools ölçümünde 100×32 boyutlu bir pano, 15 fps hızında DevTools boyamalarının %70,6’sında, 60 fps hızında ise %81,1’inde boştu.

    4. İnceleniyor

      Yük altında DevTools konsolunun kareler arasında anlık olarak boş göründüğüne dair bildirimleri araştırıyoruz.

    Bu olayın etkilediği bileşenler: console.clear, DevTools Throttler.

    Olay sonrası inceleme

    0.1.0’dan beri Turbolog, değişen her kare için bir console.clear() ve bir console.log() gönderiyordu. Chrome for Testing içinde gerçek DevTools arayüzünü çalıştıran bench/devtools, bu olayı ölçmek için geliştirildi ve yukarıdaki DevTools arayüzü tablosundaki sayıları üretti.

    Düzeltme: f007ade · Turbolog: parlamayı giderme · Değişiklik günlüğü: 0.4.0

Nisan 2026

  • Konsol karelerinde dosya yollarının bağlantı stili alması14 Nis – 15 Nis 2026 · Çözüldü
    1. Çözüldü

      Bu olay çözüldü.

    2. İzleniyor

      Bir düzeltme dağıtıldı. Hücre bağlantılara izin vermiyorsa kodlayıcı path:line, //host:port ve data: metinlerine bir word joiner (U+2060) ekliyor.

    3. Neden belirlendi

      DevTools, konsol mesajlarındaki URL’leri, path:line ve //host:port metinlerini bağlantıya dönüştürüyor ve kendi tema renklerini bunlara zorunlu olarak uyguluyor. Kodlayıcı zaten :// ve www. dizilerini bölüyordu ancak path:line ve şemadan sonraki //host:port hâlâ eşleşiyor.

    4. İnceleniyor

      src/app.tsx:12 ve http://localhost:3000 gibi metinler, %c stili yerine DevTools’un bağlantı renginde render ediliyor.

    Bu olayın etkilediği bileşenler: Turbolog encoder.

    Olay sonrası inceleme

    :// ve www., 0.1.0’dan beri bir word joiner içeriyor. Tıklanabilir kalması gereken hücreler allow-link özniteliğini ayarlıyor ve değiştirilmeden yazılıyor.

    Değişiklik günlüğü: 0.4.0

Kasım 2025

  • Konsol uygulamalarında geciken tuş girişleri4 Kas – 18 Kas 2025 · Çözüldü
    1. Çözüldü

      Düzeltme Text.js 0.3.0 sürümünde yayımlandı.

    2. İzleniyor

      Bir düzeltme dağıtıldı. Tuş basımı veya yapıştırma gibi ayrık girdiler artık aynı görevde eşzamanlı render ediliyor. Diğer güncellemeler hâlâ requestAnimationFrame sırasında uygulanıyor.

    3. Neden belirlendi

      Tuş basımı dahil her güncelleme, React değişiklikleri uygulamadan ve kare günlüğe yazılmadan önce bir sonraki requestAnimationFrame çağrısını bekliyor.

    4. İnceleniyor

      Konsol uygulamalarında yazı girişi klavyenin gerisinde kalıyor; bu durum en çok textjs.org üzerindeki OpenCode’da görülüyor.

    Bu olayın etkilediği bileşenler: textjs.org.

    Olay sonrası inceleme

    Tuş basışları artık bir sonraki animasyon karesini beklemiyor. Zamanlayıcılar ve akış verileri gibi girdiden kaynaklanmayan commit’ler hâlâ animasyon karesi başına toplu işleniyor.

    Düzeltme: 8c2d1b1 · Değişiklik günlüğü: 0.3.0