स्थिति

सभी सिस्टम चालूअपडेट किया गया 31 अक्टूबर 2026
console.logचालू
90 दिन पहलेहर बदले हुए फ़्रेम पर एक कॉल, निष्क्रिय होने पर कोई नहीं।आज
console.clearबहुत कम इस्तेमाल
90 दिन पहलेपहले फ़्रेम पर, invalidate() के बाद, निष्क्रिय होने पर जब 100 फ़्रेम जमा हों, और 300 पर।आज
Yogaचालू
90 दिन पहलेWebAssembly flexbox लेआउट, pointScaleFactor 1।आज
Turbolog encoderचालू
90 दिन पहलेरो-हैश गेट और रन-लेंथ %c एन्कोडिंग।आज
DevTools Throttlerपालन होता है
90 दिन पहले50 ms व्यूपोर्ट थ्रॉटल। फ़्रेम के बीच कम से कम 66 ms का अंतर रखा जाता है।आज
textjs.orgचालू
90 दिन पहलेडॉक्स, सीखें, Playground, ब्लॉग और स्टोर।आज

लाइव बेंचमार्क

@textjs/core पाइपलाइन इस टैब में 100×32 डैशबोर्ड पर चलती है और इन-मेमोरी कंसोल में फ़्रेम लिखती है।

पूरा फ़्रेम
—
लेआउट + पेंट + एनकोड
टाइपिंग
—
एक पंक्ति में बदलाव
निष्क्रिय फ़्रेम
—
कुछ नहीं बदला
%c span
—
3,200 सेल

पेज के निष्क्रिय होने पर अपने आप शुरू होता है।

परफ़ॉर्मेंस इतिहास

हर माइलस्टोन पर packages/core/test/perf.test.ts, उसी मशीन (Apple M5 Pro · Bun 1.4.4) पर। 1,000 फ़्रेम का औसत।

रिलीज़पूरा फ़्रेमटाइपिंगनिष्क्रिय%c span
0.1.0मार्च 2025 · @textjs/core · 7c91cea0.194ms0.065ms0.043ms205
0.2.0जुल॰ 2025 · textjs.org · 92437cc0.192ms0.067ms0.042ms205
0.3.0नव॰ 2025 · 10× input · 8c2d1b10.205ms0.065ms0.043ms146
0.3.0नव॰ 2025 · Mobile pass · e2e6e460.212ms0.067ms0.045ms146
0.4.0मई 2026 · Zero-flash frames · f007ade0.184ms0.046ms0.028ms146
1.0.0अक्टू॰ 2026 · Text.js 1.0 · 57968b60.163ms0.011ms0.000ms149

DevTools फ़्रंटएंड

Chrome for Testing में bench/devtools: खाली पेंट, डिलीवर किए गए फ़्रेम और डिस्प्ले लैग, हर रन 5 सेकंड। हम कैसे मापते हैं।

ड्राइवरFPSखाली पेंटपेंट किए / भेजे गएलैग p50
जोड़ना (मौजूदा रिलीज़)151.0%74 / 7510.4ms
हर फ़्रेम पर साफ़ करना1570.6%70 / 7560.4ms
जोड़ना, बिना अंतराल600.8%67 / 29531.2ms
हर फ़्रेम पर साफ़ करना6081.1%45 / 3009.8ms

पिछले इंसिडेंट

सबसे नए पहले। समय UTC में है।

अक्टूबर 2026

  • iOS Safari में हेडर के नीचे अटके पेज27 अक्टू॰ – 28 अक्टू॰ 2026 · हल हो गया
    1. हल हो गया

      यह इंसिडेंट सुलझ गया है।

    2. निगरानी जारी

      फ़िक्स डिप्लॉय कर दिया गया है। स्क्रॉल ऐंकरिंग बंद है (overflow-anchor: none)। हम निगरानी कर रहे हैं।

    3. कारण की पहचान

      नीचे स्क्रॉल करके वापस ऊपर आने पर हीरो हेडलाइन अब भी स्टिकी हेडर के नीचे अटक सकती है। Safari की स्क्रॉल ऐंकरिंग स्क्रॉल की स्थिति बदल रही है।

    4. निगरानी जारी

      फ़िक्स डिप्लॉय कर दिया गया है। ये एलिमेंट अब सिर्फ़ हॉरिज़ॉन्टल दिशा में स्क्रॉल होते हैं, और scrollbar-gutter: stable सिर्फ़ माउस वाले डिवाइस पर लागू होता है।

    5. कारण की पहचान

      ऐक्टिव टैब की अंडरलाइन से फ़ाइल टैब, कोड ब्लॉक और टेक्स्ट वाली टेबल में 1 px का वर्टिकल ओवरफ़्लो होता है, इसलिए वे दोनों दिशाओं में स्क्रॉल होते हैं और iOS पेज के लिए किए गए वर्टिकल स्वाइप उन्हें दे देता है। scrollbar-gutter: stable भी iOS पर पहले स्क्रॉल में उछाल लाता है।

    6. जांच जारी

      हम उन रिपोर्ट की जांच कर रहे हैं जिनके मुताबिक iOS Safari में textjs.org के पेजों को वापस ऊपर तक स्क्रॉल नहीं किया जा सकता।

    इस इंसिडेंट से प्रभावित: textjs.org।

    पोस्टमॉर्टम

    textjs.org के पेज लोड होते समय खिसकते नहीं हैं, इसलिए स्क्रॉल ऐंकरिंग के पास सुधारने के लिए कुछ नहीं था। iOS Safari पर इसने हीरो को स्टिकी हेडर के नीचे अटका दिया और वापस ऊपर तक स्क्रॉल करना रोक दिया। textjs.org पर ?debug=scroll अब स्क्रॉल, टच और रीसाइज़ इवेंट की लाइव जानकारी दिखाता है और हर प्रोग्रामैटिक फ़ोकस या स्क्रॉल कॉल को कॉल करने वाले का नाम बताता है।

    फ़िक्स: 297c5d7, 55da525, 8424fcd · चेंजलॉग: 1.0.0

  • CI में लिंट नियमों के टेस्ट फ़ेल23 अक्टू॰ 2026 · हल हो गया
    1. हल हो गया

      टेस्टर अब it.only को ज़रूरत पड़ने पर पढ़ता है, जब कोई टेस्ट RuleTester.itOnly को कॉल करता है। CI पास हो रहा है।

    2. कारण की पहचान

      CI एनवायरनमेंट वैरिएबल सेट होने पर it.only को पढ़ते समय Bun एरर देता है। रूल टेस्टर इंपोर्ट के समय RuleTester.itOnly = it.only असाइन करता है, इसलिए उसे लोड करना फ़ेल हो जाता है।

    3. जांच जारी

      eslint-plugin-textjs टेस्ट सूट CI में किसी भी नियम का टेस्ट चलने से पहले फ़ेल हो जाता है। लोकल रन पास होते हैं।

    पोस्टमॉर्टम

    @typescript-eslint/rule-tester अपने टेस्ट फ़ंक्शन RuleTester की स्टैटिक प्रॉपर्टी के तौर पर लेता है। फ़िक्स it.only को एक फ़ंक्शन में रैप करता है। कोई पैकेज या पेज प्रभावित नहीं हुआ।

    फ़िक्स: eca3f78

  • /playground और /opencode पर लेआउट शिफ़्ट21 अक्टू॰ – 22 अक्टू॰ 2026 · हल हो गया
    1. हल हो गया

      हर रूट पर क्यूमुलेटिव लेआउट शिफ़्ट 0 है।

    2. निगरानी जारी

      फ़िक्स डिप्लॉय कर दिया गया है। दोनों पेज एक पैड लेआउट साझा करते हैं, और “कंसोल में फ़िट करें” को खिसकाए बिना साइज़ जोड़ा जाता है। हम निगरानी कर रहे हैं।

    3. कारण की पहचान

      कंसोल साइज़ कंट्रोल हाइड्रेशन के बाद अपने लेबल में मापा गया साइज़ जोड़ता है (Fit console · 120×36), जिससे “कंसोल फ़िट करें” टेक्स्ट नोड खिसकता है। दोनों पेजों पर पैड की ऊपरी और निचली पंक्तियों की ऊंचाई भी अलग है, इसलिए नेविगेशन पर पैड फिर से बीच में आ जाता है।

    4. जांच जारी

      हमारा लेआउट-शिफ़्ट ऑडिट /playground और /opencode पर 0.0001 का कुल लेआउट शिफ़्ट रिपोर्ट करता है। इसके दायरे में आने वाले बाकी सभी रूट 0 रिपोर्ट करते हैं। इन दोनों पेजों के बीच नेविगेट करने पर फ़ोकस पैड भी खिसकता है।

    इस इंसिडेंट से प्रभावित: textjs.org।

    पोस्टमॉर्टम

    पैड में अब ऊपर और नीचे तय ऊंचाई वाले स्लॉट हैं, और हर डेमो समान पंक्तियां आरक्षित रखता है, इसलिए पेज या डेमो बदलने पर कुछ नहीं खिसकता। OpenCode कनेक्शन पैनल हर स्थिति में एक स्टेटस लाइन दिखाता है, हाइड्रेशन होने तक स्केलेटन के साथ। apps/web/scripts/e2e-layout.mjs सभी रूट, डेमो, व्यूपोर्ट साइज़ और कनेक्शन स्थितियों में एक जैसे बॉक्स होने की जांच करता है।

    फ़िक्स: 8f22b9b · चेंजलॉग: 1.0.0

  • लंबे पेजों के अंत में डॉक्स साइडबार स्क्रॉल होकर नज़र से बाहर16 अक्टू॰ – 17 अक्टू॰ 2026 · हल हो गया
    1. हल हो गया

      यह इंसिडेंट सुलझ गया है।

    2. निगरानी जारी

      फ़िक्स डिप्लॉय कर दिया गया है। सीखें सेक्शन के चैप्टर भी फ़ुटर को कॉन्टेंट कॉलम के अंदर रेंडर करते हैं। हम निगरानी कर रहे हैं।

    3. कारण की पहचान

      सीखें सेक्शन के चैप्टर साइडबार में भी यही समस्या है।

    4. निगरानी जारी

      फ़िक्स डिप्लॉय कर दिया गया है। डॉक्यूमेंटेशन के पेज फ़ुटर को कॉन्टेंट कॉलम के अंदर रेंडर करते हैं, इसलिए लेआउट पेज के नीचे तक पहुंचता है।

    5. कारण की पहचान

      साइडबार डॉक्स लेआउट के अंदर position: sticky है, और साइट का फ़ुटर उस लेआउट के बाद रेंडर होता है। स्टिकी एलिमेंट तभी तक टिका रहता है जब तक उसका कंटेनिंग ब्लॉक स्क्रीन पर होता है, इसलिए फ़ुटर स्क्रॉल होकर आने पर साइडबार भी उसके साथ खिसक जाता है।

    6. जांच जारी

      हम उन रिपोर्ट की जांच कर रहे हैं जिनमें लंबे पेजों के नीचे डॉक्स साइडबार स्क्रॉल होकर नज़र से बाहर हो जाता है।

    इस इंसिडेंट से प्रभावित: textjs.org।

    पोस्टमॉर्टम

    स्टिकी साइडबार वाले पेज (डॉक्यूमेंटेशन और सीखें सेक्शन के चैप्टर) फ़ुटर को अपने कॉन्टेंट कॉलम में रेंडर करते हैं। बाकी पेज साझा फ़ुटर रखते हैं।

    फ़िक्स: 131ac96 · चेंजलॉग: 1.0.0

  • npm पर textjs पैकेज नाम उपलब्ध नहीं14 अक्टू॰ – 15 अक्टू॰ 2026 · हल हो गया
    1. हल हो गया

      यह इंसिडेंट सुलझ गया है।

    2. निगरानी जारी

      फ़्रेमवर्क और CLI पैकेज अब @textjs/next है, जो @textjs/core और @textjs/react के स्कोप में है। इंपोर्ट textjs से बदलकर @textjs/next होते हैं।

    3. कारण की पहचान

      textjs नाम 25 मार्च 2016 से दूसरे npm पैकेज का है।

    4. जांच जारी

      फ़्रेमवर्क पैकेज textjs को npm पर पब्लिश करना 403 Forbidden एरर के साथ विफल होता है।

    पोस्टमॉर्टम

    Text.js 1.0 से ऐप textjs के बजाय @textjs/next से इंपोर्ट करते हैं, और OpenCode ब्रिज bunx @textjs/app proxy है, जो किसी भी डायरेक्टरी से चलता है।

    Text.js 1.0: एक नाम बदला · चेंजलॉग: 1.0.0

सितंबर 2026

  • पंक्ति ब्रेक पर खाली पेंट लेयर15 सित॰ – 16 सित॰ 2026 · हल हो गया
    1. हल हो गया

      यह इंसिडेंट सुलझ गया है।

    2. निगरानी जारी

      फ़िक्स डिप्लॉय कर दिया गया है। जो पंक्ति ब्रेक रन को जारी नहीं रखते, वे अब पहले %c को खाली स्टाइल पर रीसेट करते हैं, इसलिए DevTools सादा न्यूलाइन बनाता है। हर फ़्रेम में एक कर्टेन होता है।

    3. कारण की पहचान

      जब स्टाइल वाला रन पंक्ति ब्रेक पर खत्म होता है, तो \n उस रन के %c span के अंदर लिखा जाता है। DevTools लाइन ब्रेक पर span को बांटता है, और खाली बचा हिस्सा contain: paint वाला display: inline-block span बन जाता है, जिसे अपनी पेंट लेयर मिलती है।

    4. जांच जारी

      हम DevTools फ़्रेम में अधिकतर पंक्ति ब्रेक पर खाली <span> एलिमेंट और कुछ फ़्रेम में दोगुने कर्टेन span की जांच कर रहे हैं।

    इस इंसिडेंट से प्रभावित: Turbolog encoder।

    पोस्टमॉर्टम

    समान स्टाइल वाले span अब भी पंक्ति ब्रेक के पार जुड़ते हैं। कर्टेन भी अपनी अलग लाइन पर चला गया है: DevTools सोर्स लिंक (VM12:1) को मैसेज की पहली लाइन के दाईं ओर फ़्लोट करता है, और इनलाइन कर्टेन उस लिंक को पंक्ति 0 के पास छोड़ देता था, जिससे वह संकरी हो जाती थी।

    चेंजलॉग: 1.0.0

अगस्त 2026

  • console.clear के बाद डिस्प्ले लेटेंसी में बढ़ोतरी27 अग॰ – 31 अग॰ 2026 · हल हो गया
    1. हल हो गया

      bench/devtools में मीडियन डिस्प्ले लैग 10.4 ms है। यह फ़िक्स Text.js 1.0 में मिलता है।

    2. निगरानी जारी

      फ़िक्स डिप्लॉय कर दिया गया है। साफ़ करने वाले किसी भी फ़्रेम के बाद रेंडरर एक बार 110 ms रुकता है, ताकि बाद के फ़्रेम DevTools के पिछले रिफ़्रेश से 50 ms से अधिक समय बाद आएं और उसके तत्काल पाथ का इस्तेमाल करें।

    3. कारण की पहचान

      साफ़ करने के बाद DevTools “कंसोल साफ़ किया गया” पंक्ति जोड़ता है। वह थ्रॉटलर का तत्काल स्लॉट ले लेती है और अगले फ़्रेम को 50 ms वाले टाइमर पर धकेल देती है। फ़्रेम के बीच 66 ms का अंतर होने से बाद का हर फ़्रेम उसी टाइमर पर रहता है।

    4. जांच जारी

      कंसोल साफ़ होने के बाद bench/devtools में मीडियन डिस्प्ले लैग 63 ms आता है। बाद के हर फ़्रेम में लैग उसी स्तर पर रहता है।

    इस इंसिडेंट से प्रभावित: DevTools Throttler, console.clear।

    पोस्टमॉर्टम

    फ़्रेम अंतराल अनुमति दे तो डिस्क्रीट इनपुट अब भी सिंक्रोनस रूप से रेंडर होता है।

    फ़ेज़ लॉक तोड़ना · चेंजलॉग: 1.0.0

  • DevTools कंसोल में स्पिनर से पंक्तियों का अलाइनमेंट बिगड़ना11 अग॰ – 12 अग॰ 2026 · हल हो गया
    1. हल हो गया

      यह इंसिडेंट हल हो गया है। यह फ़िक्स Text.js 1.0 में मिलता है।

    2. निगरानी जारी

      फ़िक्स डिप्लॉय कर दिया गया है। डिफ़ॉल्ट dots स्पिनर अब क्वाड्रेंट ब्लॉक (▘ ▝ ▗ ▖) बनाता है, जो Menlo में एक-एक सेल लेते हैं। टर्मिनल के लिए ब्रेल फ़्रेम variant="braille" के रूप में उपलब्ध हैं।

    3. कारण की पहचान

      डिफ़ॉल्ट स्पिनर ब्रेल पैटर्न (U+2800 से U+28FF) बनाता है। Text.js हर पैटर्न को एक सेल मापता है, लेकिन macOS पर DevTools कंसोल के फ़ॉन्ट Menlo में ब्रेल ग्लिफ़ नहीं हैं। फ़ॉलबैक ग्लिफ़ सेल से चौड़ा होता है और बाकी पंक्ति को दाईं ओर धकेल देता है।

    4. जांच जारी

      macOS पर <Spinner> वाली पंक्तियों का अलाइनमेंट DevTools में बिगड़ जाता है। स्पिनर के दाईं ओर के सेल ग्रिड से हट जाते हैं।

    इस इंसिडेंट से प्रभावित: console.log।

    पोस्टमॉर्टम

    इसी वजह से LineChart डिफ़ॉल्ट रूप से क्वाड्रेंट डॉट बनाता है। ब्रेल marker="braille" के साथ उपलब्ध है।

    चेंजलॉग: 1.0.0

मई 2026

  • DevTools कंसोल में खाली पेंट की बढ़ी दर5 मई – 19 मई 2026 · हल हो गया
    1. हल हो गया

      फ़िक्स Text.js 0.4.0 में रिलीज़ हुआ है। खाली पेंट 1.0% पर हैं, और सभी पहले फ़्रेम पर हैं।

    2. निगरानी जारी

      textjs.org अब साफ़ करने के बजाय फ़्रेम जोड़ता है। शून्य चौड़ाई वाला कर्टेन span पुराने फ़्रेम को नज़र से बाहर रखता है, और फ़्रेम के बीच कम से कम 66 ms का अंतर रखा जाता है।

    3. कारण की पहचान

      DevTools console.clear() को सिंक्रोनस रूप से लागू करता है, लेकिन नए मैसेज 50 ms के थ्रॉटल पर पेंट करता है। हर फ़्रेम पिछले फ़्रेम को तुरंत हटाता है और 50 ms तक बाद पेंट होता है। bench/devtools में 100×32 डैशबोर्ड 15 fps पर DevTools के 70.6% पेंट और 60 fps पर 81.1% पेंट में खाली था।

    4. जांच जारी

      हम उन रिपोर्ट की जांच कर रहे हैं जिनमें लोड के दौरान DevTools कंसोल फ़्रेम के बीच खाली झलकता है।

    इस इंसिडेंट से प्रभावित: console.clear, DevTools Throttler।

    पोस्टमॉर्टम

    0.1.0 से Turbolog हर बदले हुए फ़्रेम पर एक console.clear() और एक console.log() भेजता था। bench/devtools, जो Chrome for Testing में असली DevTools फ़्रंटएंड चलाता है, इस इंसिडेंट को मापने के लिए बनाया गया था और इससे ऊपर दी गई DevTools फ़्रंटएंड टेबल के आंकड़े मिले।

    फ़िक्स: f007ade · Turbolog: झिलमिलाहट हटाना · चेंजलॉग: 0.4.0

अप्रैल 2026

  • कंसोल फ़्रेम में फ़ाइल पाथ को लिंक की स्टाइल मिलना14 अप्रैल – 15 अप्रैल 2026 · हल हो गया
    1. हल हो गया

      यह इंसिडेंट सुलझ गया है।

    2. निगरानी जारी

      फ़िक्स डिप्लॉय कर दिया गया है। एनकोडर path:line, //host:port और data: टेक्स्ट में word joiner (U+2060) जोड़ता है, जब तक सेल लिंक की अनुमति न देता हो।

    3. कारण की पहचान

      DevTools कंसोल मैसेज में URL, path:line और //host:port टेक्स्ट को लिंक में बदलता है और उन पर अपने थीम रंग लागू करता है। एनकोडर पहले से :// और www. को तोड़ता था, लेकिन path:line और स्कीम के बाद का //host:port अब भी मैच होते हैं।

    4. जांच जारी

      src/app.tsx:12 और http://localhost:3000 जैसे टेक्स्ट अपनी %c स्टाइल के बजाय DevTools के लिंक रंग में रेंडर होते हैं।

    इस इंसिडेंट से प्रभावित: Turbolog encoder।

    पोस्टमॉर्टम

    :// और www. में 0.1.0 से word joiner है। जिन सेल को क्लिक करने लायक रहना चाहिए, वे allow-link एट्रिब्यूट सेट करते हैं और बिना बदलाव लिखे जाते हैं।

    चेंजलॉग: 0.4.0

नवंबर 2025

  • कंसोल ऐप में कीस्ट्रोक की देरी4 नव॰ – 18 नव॰ 2025 · हल हो गया
    1. हल हो गया

      यह सुधार Text.js 0.3.0 में रिलीज़ हो गया है।

    2. निगरानी जारी

      फ़िक्स डिप्लॉय कर दिया गया है। कीप्रेस या पेस्ट जैसे डिस्क्रीट इनपुट अब उसी टास्क में सिंक्रोनस रूप से रेंडर होते हैं। बाकी अपडेट अब भी requestAnimationFrame पर कमिट होते हैं।

    3. कारण की पहचान

      कीप्रेस समेत हर अपडेट अगले requestAnimationFrame का इंतज़ार करता है, जिसके बाद React कमिट करता है और फ़्रेम लॉग होता है।

    4. जांच जारी

      कंसोल ऐप में टाइपिंग कीबोर्ड से पीछे रहती है, जो textjs.org पर OpenCode में सबसे ज़्यादा दिखता है।

    इस इंसिडेंट से प्रभावित: textjs.org।

    पोस्टमॉर्टम

    कीप्रेस अब अगले ऐनिमेशन फ़्रेम का इंतज़ार नहीं करते। इनपुट से न आने वाले कमिट, जैसे टाइमर और स्ट्रीम किए गए डेटा के कमिट, अब भी हर ऐनिमेशन फ़्रेम पर बैच किए जाते हैं।

    फ़िक्स: 8c2d1b1 · चेंजलॉग: 0.3.0