Durum
console.logÇalışıyorconsole.clearNadiren kullanılırYogaÇalışıyorTurbolog encoderÇalışıyorDevTools ThrottlerDikkate alınırtextjs.orgÇalışıyorCanlı 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üm | Tam kare | Yazma | Boşta | %c span’leri |
|---|---|---|---|---|
0.1.0Mar 2025 · @textjs/core · 7c91cea | 0.194ms | 0.065ms | 0.043ms | 205 |
0.2.0Tem 2025 · textjs.org · 92437cc | 0.192ms | 0.067ms | 0.042ms | 205 |
0.3.0Kas 2025 · 10× input · 8c2d1b1 | 0.205ms | 0.065ms | 0.043ms | 146 |
0.3.0Kas 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.0Eki 2026 · Text.js 1.0 · 57968b6 | 0.163ms | 0.011ms | 0.000ms | 149 |
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ü | FPS | Boş boyamalar | Boyanan / üretilen | Gecikme p50 |
|---|---|---|---|---|
| Sona ekleme (mevcut) | 15 | 1.0% | 74 / 75 | 10.4ms |
| Her karede temizleme | 15 | 70.6% | 70 / 75 | 60.4ms |
| Sona ekleme, hız sınırsız | 60 | 0.8% | 67 / 295 | 31.2ms |
| Her karede temizleme | 60 | 81.1% | 45 / 300 | 9.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ü
- Çözüldü
Bu olay çözüldü.
- İzleniyor
Bir düzeltme dağıtıldı. Kaydırma sabitlemesi kapalı (
overflow-anchor: none). İzliyoruz. - 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.
- İzleniyor
Bir düzeltme dağıtıldı. Bu öğeler artık yalnızca yatay kayıyor ve
scrollbar-gutter: stableyalnızca fare kullanan cihazlarda uygulanıyor. - 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: stableda iOS’ta ilk kaydırmada sıçramaya neden oluyor. - İ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=scrollartı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- Çözüldü
CI’da başarısız olan lint kuralı testleri23 Eki 2026 · Çözüldü
- Çözüldü
Test aracı artık
it.onlydeğerini ihtiyaç anında, bir testRuleTester.itOnlyçağrısı yaptığında okuyor. CI başarılı. - Neden belirlendi
CIortam değişkeni ayarlıykenit.onlyokunduğunda Bun hata fırlatıyor. Kural test aracı içe aktarma sırasındaRuleTester.itOnly = it.onlyatamasını yapıyor, bu yüzden yüklenemiyor. - İnceleniyor
eslint-plugin-textjstest 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ıRuleTesterstatik özellikleri olarak alır. Düzeltme,it.onlydeğerini bir fonksiyonla sarmalıyor. Hiçbir paket veya sayfa etkilenmedi.Düzeltme:
eca3f78- Çözüldü
/playground ve /opencode üzerinde layout kayması21 Eki – 22 Eki 2026 · Çözüldü
- Çözüldü
Kümülatif layout kayması her rotada 0.
- İ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.
- 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. - İ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- Çözüldü
textjs paket adı npm’de kullanılamıyor14 Eki – 15 Eki 2026 · Çözüldü
- Çözüldü
Bu olay çözüldü.
- İzleniyor
Framework ve CLI paketi artık
@textjs/coreve@textjs/reactile aynı kapsamda bulunan@textjs/next. İçe aktarımlartextjsyerine@textjs/nextkullanıyor. - Neden belirlendi
textjsadı 25 Mart 2016’dan beri başka bir npm paketine ait. - İnceleniyor
textjsframework paketini npm’e yayımlama işlemi403 Forbiddenhatasıyla başarısız oluyor.
Olay sonrası inceleme
Text.js 1.0’dan itibaren uygulamalar
textjsyerine@textjs/nextüzerinden içe aktarıyor ve OpenCode köprüsü, her dizinden çalışabilenbunx @textjs/app proxykomutunu kullanıyor.- Çözüldü
Eylül 2026
Satır sonlarında boş boyama katmanları15 Eyl – 16 Eyl 2026 · Çözüldü
- Çözüldü
Bu olay çözüldü.
- İzleniyor
Bir düzeltme dağıtıldı. Bir diziyi devam ettirmeyen satır sonları artık önce
%cstilini boşaltıyor; böylece DevTools düz bir satır sonu üretiyor. Her kare tek bir perde taşıyor. - Neden belirlendi
Stil uygulanmış bir dizi satır sonunda bittiğinde
\n, dizinin%cspan’inin içine yazılıyor. DevTools, span’i satır sonunda bölüyor ve boş kalan kısım,contain: paintiçeren birdisplay: inline-blockspan’ine dönüşerek kendi boyama katmanını alıyor. - İ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.- Çözüldü
Ağustos 2026
console.clear sonrası artan görüntüleme gecikmesi27 Ağu – 31 Ağu 2026 · Çözüldü
- Çözüldü
bench/devtoolsmedyan görüntüleme gecikmesi 10,4 ms. Düzeltme Text.js 1.0 ile geliyor. - İ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.
- 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.
- İ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.
- Çözüldü
Dönme göstergesinin DevTools konsolunda satır hizasını bozması11 Ağu – 12 Ağu 2026 · Çözüldü
- Çözüldü
Bu olay çözüldü. Düzeltme Text.js 1.0 ile geliyor.
- İzleniyor
Bir düzeltme dağıtıldı. Varsayılan
dotsdönme göstergesi artık Menlo’da her biri tek hücre olan çeyrek bloklar (▘ ▝ ▗ ▖) çiziyor. Braille kareleri terminaller içinvariant="braille"ile kullanılabiliyor. - 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.
- İ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
LineChartaynı nedenle varsayılan olarak çeyrek noktalar çiziyor. Braille,marker="braille"ile kullanılabiliyor.- Çözüldü
Mayıs 2026
DevTools konsolunda artan boş boyamalar5 May – 19 May 2026 · Çözüldü
- Çö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.
- İ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.
- 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. - İ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 birconsole.log()gönderiyordu. Chrome for Testing içinde gerçek DevTools arayüzünü çalıştıranbench/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- Çözüldü
Nisan 2026
Konsol karelerinde dosya yollarının bağlantı stili alması14 Nis – 15 Nis 2026 · Çözüldü
- Çözüldü
Bu olay çözüldü.
- İzleniyor
Bir düzeltme dağıtıldı. Hücre bağlantılara izin vermiyorsa kodlayıcı
path:line,//host:portvedata:metinlerine bir word joiner (U+2060) ekliyor. - Neden belirlendi
DevTools, konsol mesajlarındaki URL’leri,
path:lineve//host:portmetinlerini bağlantıya dönüştürüyor ve kendi tema renklerini bunlara zorunlu olarak uyguluyor. Kodlayıcı zaten://vewww.dizilerini bölüyordu ancakpath:lineve şemadan sonraki//host:porthâlâ eşleşiyor. - İnceleniyor
src/app.tsx:12vehttp://localhost:3000gibi metinler,%cstili yerine DevTools’un bağlantı renginde render ediliyor.
Bu olayın etkilediği bileşenler: Turbolog encoder.
Olay sonrası inceleme
://vewww., 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.- Çözüldü
Kasım 2025
Konsol uygulamalarında geciken tuş girişleri4 Kas – 18 Kas 2025 · Çözüldü
- Çözüldü
Düzeltme Text.js 0.3.0 sürümünde yayımlandı.
- İ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â
requestAnimationFramesırasında uygulanıyor. - 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. - İ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- Çözüldü