स्थिति
console.logचालूconsole.clearबहुत कम इस्तेमालYogaचालूTurbolog encoderचालूDevTools Throttlerपालन होता हैtextjs.orgचालूलाइव बेंचमार्क
@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 · 7c91cea | 0.194ms | 0.065ms | 0.043ms | 205 |
0.2.0जुल॰ 2025 · textjs.org · 92437cc | 0.192ms | 0.067ms | 0.042ms | 205 |
0.3.0नव॰ 2025 · 10× input · 8c2d1b1 | 0.205ms | 0.065ms | 0.043ms | 146 |
0.3.0नव॰ 2025 · Mobile pass · e2e6e46 | 0.212ms | 0.067ms | 0.045ms | 146 |
0.4.0मई 2026 · Zero-flash frames · f007ade | 0.184ms | 0.046ms | 0.028ms | 146 |
1.0.0अक्टू॰ 2026 · Text.js 1.0 · 57968b6 | 0.163ms | 0.011ms | 0.000ms | 149 |
DevTools फ़्रंटएंड
Chrome for Testing में bench/devtools: खाली पेंट, डिलीवर किए गए फ़्रेम और डिस्प्ले लैग, हर रन 5 सेकंड। हम कैसे मापते हैं।
| ड्राइवर | FPS | खाली पेंट | पेंट किए / भेजे गए | लैग p50 |
|---|---|---|---|---|
| जोड़ना (मौजूदा रिलीज़) | 15 | 1.0% | 74 / 75 | 10.4ms |
| हर फ़्रेम पर साफ़ करना | 15 | 70.6% | 70 / 75 | 60.4ms |
| जोड़ना, बिना अंतराल | 60 | 0.8% | 67 / 295 | 31.2ms |
| हर फ़्रेम पर साफ़ करना | 60 | 81.1% | 45 / 300 | 9.8ms |
पिछले इंसिडेंट
सबसे नए पहले। समय UTC में है।
अक्टूबर 2026
iOS Safari में हेडर के नीचे अटके पेज27 अक्टू॰ – 28 अक्टू॰ 2026 · हल हो गया
- हल हो गया
यह इंसिडेंट सुलझ गया है।
- निगरानी जारी
फ़िक्स डिप्लॉय कर दिया गया है। स्क्रॉल ऐंकरिंग बंद है (
overflow-anchor: none)। हम निगरानी कर रहे हैं। - कारण की पहचान
नीचे स्क्रॉल करके वापस ऊपर आने पर हीरो हेडलाइन अब भी स्टिकी हेडर के नीचे अटक सकती है। Safari की स्क्रॉल ऐंकरिंग स्क्रॉल की स्थिति बदल रही है।
- निगरानी जारी
फ़िक्स डिप्लॉय कर दिया गया है। ये एलिमेंट अब सिर्फ़ हॉरिज़ॉन्टल दिशा में स्क्रॉल होते हैं, और
scrollbar-gutter: stableसिर्फ़ माउस वाले डिवाइस पर लागू होता है। - कारण की पहचान
ऐक्टिव टैब की अंडरलाइन से फ़ाइल टैब, कोड ब्लॉक और टेक्स्ट वाली टेबल में 1 px का वर्टिकल ओवरफ़्लो होता है, इसलिए वे दोनों दिशाओं में स्क्रॉल होते हैं और iOS पेज के लिए किए गए वर्टिकल स्वाइप उन्हें दे देता है।
scrollbar-gutter: stableभी iOS पर पहले स्क्रॉल में उछाल लाता है। - जांच जारी
हम उन रिपोर्ट की जांच कर रहे हैं जिनके मुताबिक iOS Safari में textjs.org के पेजों को वापस ऊपर तक स्क्रॉल नहीं किया जा सकता।
इस इंसिडेंट से प्रभावित: textjs.org।
पोस्टमॉर्टम
textjs.org के पेज लोड होते समय खिसकते नहीं हैं, इसलिए स्क्रॉल ऐंकरिंग के पास सुधारने के लिए कुछ नहीं था। iOS Safari पर इसने हीरो को स्टिकी हेडर के नीचे अटका दिया और वापस ऊपर तक स्क्रॉल करना रोक दिया। textjs.org पर
?debug=scrollअब स्क्रॉल, टच और रीसाइज़ इवेंट की लाइव जानकारी दिखाता है और हर प्रोग्रामैटिक फ़ोकस या स्क्रॉल कॉल को कॉल करने वाले का नाम बताता है।फ़िक्स:
297c5d7,55da525,8424fcd· चेंजलॉग: 1.0.0- हल हो गया
CI में लिंट नियमों के टेस्ट फ़ेल23 अक्टू॰ 2026 · हल हो गया
- हल हो गया
टेस्टर अब
it.onlyको ज़रूरत पड़ने पर पढ़ता है, जब कोई टेस्टRuleTester.itOnlyको कॉल करता है। CI पास हो रहा है। - कारण की पहचान
CIएनवायरनमेंट वैरिएबल सेट होने परit.onlyको पढ़ते समय Bun एरर देता है। रूल टेस्टर इंपोर्ट के समयRuleTester.itOnly = it.onlyअसाइन करता है, इसलिए उसे लोड करना फ़ेल हो जाता है। - जांच जारी
eslint-plugin-textjsटेस्ट सूट CI में किसी भी नियम का टेस्ट चलने से पहले फ़ेल हो जाता है। लोकल रन पास होते हैं।
पोस्टमॉर्टम
@typescript-eslint/rule-testerअपने टेस्ट फ़ंक्शनRuleTesterकी स्टैटिक प्रॉपर्टी के तौर पर लेता है। फ़िक्सit.onlyको एक फ़ंक्शन में रैप करता है। कोई पैकेज या पेज प्रभावित नहीं हुआ।फ़िक्स:
eca3f78- हल हो गया
/playground और /opencode पर लेआउट शिफ़्ट21 अक्टू॰ – 22 अक्टू॰ 2026 · हल हो गया
- हल हो गया
हर रूट पर क्यूमुलेटिव लेआउट शिफ़्ट 0 है।
- निगरानी जारी
फ़िक्स डिप्लॉय कर दिया गया है। दोनों पेज एक पैड लेआउट साझा करते हैं, और “कंसोल में फ़िट करें” को खिसकाए बिना साइज़ जोड़ा जाता है। हम निगरानी कर रहे हैं।
- कारण की पहचान
कंसोल साइज़ कंट्रोल हाइड्रेशन के बाद अपने लेबल में मापा गया साइज़ जोड़ता है (
Fit console · 120×36), जिससे “कंसोल फ़िट करें” टेक्स्ट नोड खिसकता है। दोनों पेजों पर पैड की ऊपरी और निचली पंक्तियों की ऊंचाई भी अलग है, इसलिए नेविगेशन पर पैड फिर से बीच में आ जाता है। - जांच जारी
हमारा लेआउट-शिफ़्ट ऑडिट /playground और /opencode पर 0.0001 का कुल लेआउट शिफ़्ट रिपोर्ट करता है। इसके दायरे में आने वाले बाकी सभी रूट 0 रिपोर्ट करते हैं। इन दोनों पेजों के बीच नेविगेट करने पर फ़ोकस पैड भी खिसकता है।
इस इंसिडेंट से प्रभावित: textjs.org।
पोस्टमॉर्टम
पैड में अब ऊपर और नीचे तय ऊंचाई वाले स्लॉट हैं, और हर डेमो समान पंक्तियां आरक्षित रखता है, इसलिए पेज या डेमो बदलने पर कुछ नहीं खिसकता। OpenCode कनेक्शन पैनल हर स्थिति में एक स्टेटस लाइन दिखाता है, हाइड्रेशन होने तक स्केलेटन के साथ।
apps/web/scripts/e2e-layout.mjsसभी रूट, डेमो, व्यूपोर्ट साइज़ और कनेक्शन स्थितियों में एक जैसे बॉक्स होने की जांच करता है।फ़िक्स:
8f22b9b· चेंजलॉग: 1.0.0- हल हो गया
npm पर textjs पैकेज नाम उपलब्ध नहीं14 अक्टू॰ – 15 अक्टू॰ 2026 · हल हो गया
- हल हो गया
यह इंसिडेंट सुलझ गया है।
- निगरानी जारी
फ़्रेमवर्क और CLI पैकेज अब
@textjs/nextहै, जो@textjs/coreऔर@textjs/reactके स्कोप में है। इंपोर्टtextjsसे बदलकर@textjs/nextहोते हैं। - कारण की पहचान
textjsनाम 25 मार्च 2016 से दूसरे npm पैकेज का है। - जांच जारी
फ़्रेमवर्क पैकेज
textjsको npm पर पब्लिश करना403 Forbiddenएरर के साथ विफल होता है।
पोस्टमॉर्टम
Text.js 1.0 से ऐप
textjsके बजाय@textjs/nextसे इंपोर्ट करते हैं, और OpenCode ब्रिजbunx @textjs/app proxyहै, जो किसी भी डायरेक्टरी से चलता है।- हल हो गया
सितंबर 2026
पंक्ति ब्रेक पर खाली पेंट लेयर15 सित॰ – 16 सित॰ 2026 · हल हो गया
- हल हो गया
यह इंसिडेंट सुलझ गया है।
- निगरानी जारी
फ़िक्स डिप्लॉय कर दिया गया है। जो पंक्ति ब्रेक रन को जारी नहीं रखते, वे अब पहले
%cको खाली स्टाइल पर रीसेट करते हैं, इसलिए DevTools सादा न्यूलाइन बनाता है। हर फ़्रेम में एक कर्टेन होता है। - कारण की पहचान
जब स्टाइल वाला रन पंक्ति ब्रेक पर खत्म होता है, तो
\nउस रन के%cspan के अंदर लिखा जाता है। DevTools लाइन ब्रेक पर span को बांटता है, और खाली बचा हिस्साcontain: paintवालाdisplay: inline-blockspan बन जाता है, जिसे अपनी पेंट लेयर मिलती है। - जांच जारी
हम DevTools फ़्रेम में अधिकतर पंक्ति ब्रेक पर खाली
<span>एलिमेंट और कुछ फ़्रेम में दोगुने कर्टेन span की जांच कर रहे हैं।
इस इंसिडेंट से प्रभावित: Turbolog encoder।
पोस्टमॉर्टम
समान स्टाइल वाले span अब भी पंक्ति ब्रेक के पार जुड़ते हैं। कर्टेन भी अपनी अलग लाइन पर चला गया है: DevTools सोर्स लिंक (
VM12:1) को मैसेज की पहली लाइन के दाईं ओर फ़्लोट करता है, और इनलाइन कर्टेन उस लिंक को पंक्ति 0 के पास छोड़ देता था, जिससे वह संकरी हो जाती थी।- हल हो गया
अगस्त 2026
console.clear के बाद डिस्प्ले लेटेंसी में बढ़ोतरी27 अग॰ – 31 अग॰ 2026 · हल हो गया
- हल हो गया
bench/devtoolsमें मीडियन डिस्प्ले लैग 10.4 ms है। यह फ़िक्स Text.js 1.0 में मिलता है। - निगरानी जारी
फ़िक्स डिप्लॉय कर दिया गया है। साफ़ करने वाले किसी भी फ़्रेम के बाद रेंडरर एक बार 110 ms रुकता है, ताकि बाद के फ़्रेम DevTools के पिछले रिफ़्रेश से 50 ms से अधिक समय बाद आएं और उसके तत्काल पाथ का इस्तेमाल करें।
- कारण की पहचान
साफ़ करने के बाद DevTools “कंसोल साफ़ किया गया” पंक्ति जोड़ता है। वह थ्रॉटलर का तत्काल स्लॉट ले लेती है और अगले फ़्रेम को 50 ms वाले टाइमर पर धकेल देती है। फ़्रेम के बीच 66 ms का अंतर होने से बाद का हर फ़्रेम उसी टाइमर पर रहता है।
- जांच जारी
कंसोल साफ़ होने के बाद
bench/devtoolsमें मीडियन डिस्प्ले लैग 63 ms आता है। बाद के हर फ़्रेम में लैग उसी स्तर पर रहता है।
इस इंसिडेंट से प्रभावित: DevTools Throttler, console.clear।
पोस्टमॉर्टम
फ़्रेम अंतराल अनुमति दे तो डिस्क्रीट इनपुट अब भी सिंक्रोनस रूप से रेंडर होता है।
- हल हो गया
DevTools कंसोल में स्पिनर से पंक्तियों का अलाइनमेंट बिगड़ना11 अग॰ – 12 अग॰ 2026 · हल हो गया
- हल हो गया
यह इंसिडेंट हल हो गया है। यह फ़िक्स Text.js 1.0 में मिलता है।
- निगरानी जारी
फ़िक्स डिप्लॉय कर दिया गया है। डिफ़ॉल्ट
dotsस्पिनर अब क्वाड्रेंट ब्लॉक (▘ ▝ ▗ ▖) बनाता है, जो Menlo में एक-एक सेल लेते हैं। टर्मिनल के लिए ब्रेल फ़्रेमvariant="braille"के रूप में उपलब्ध हैं। - कारण की पहचान
डिफ़ॉल्ट स्पिनर ब्रेल पैटर्न (U+2800 से U+28FF) बनाता है। Text.js हर पैटर्न को एक सेल मापता है, लेकिन macOS पर DevTools कंसोल के फ़ॉन्ट Menlo में ब्रेल ग्लिफ़ नहीं हैं। फ़ॉलबैक ग्लिफ़ सेल से चौड़ा होता है और बाकी पंक्ति को दाईं ओर धकेल देता है।
- जांच जारी
macOS पर
<Spinner>वाली पंक्तियों का अलाइनमेंट DevTools में बिगड़ जाता है। स्पिनर के दाईं ओर के सेल ग्रिड से हट जाते हैं।
इस इंसिडेंट से प्रभावित: console.log।
पोस्टमॉर्टम
इसी वजह से
LineChartडिफ़ॉल्ट रूप से क्वाड्रेंट डॉट बनाता है। ब्रेलmarker="braille"के साथ उपलब्ध है।- हल हो गया
मई 2026
DevTools कंसोल में खाली पेंट की बढ़ी दर5 मई – 19 मई 2026 · हल हो गया
- हल हो गया
फ़िक्स Text.js 0.4.0 में रिलीज़ हुआ है। खाली पेंट 1.0% पर हैं, और सभी पहले फ़्रेम पर हैं।
- निगरानी जारी
textjs.org अब साफ़ करने के बजाय फ़्रेम जोड़ता है। शून्य चौड़ाई वाला कर्टेन span पुराने फ़्रेम को नज़र से बाहर रखता है, और फ़्रेम के बीच कम से कम 66 ms का अंतर रखा जाता है।
- कारण की पहचान
DevTools
console.clear()को सिंक्रोनस रूप से लागू करता है, लेकिन नए मैसेज 50 ms के थ्रॉटल पर पेंट करता है। हर फ़्रेम पिछले फ़्रेम को तुरंत हटाता है और 50 ms तक बाद पेंट होता है।bench/devtoolsमें 100×32 डैशबोर्ड 15 fps पर DevTools के 70.6% पेंट और 60 fps पर 81.1% पेंट में खाली था। - जांच जारी
हम उन रिपोर्ट की जांच कर रहे हैं जिनमें लोड के दौरान 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 · हल हो गया
- हल हो गया
यह इंसिडेंट सुलझ गया है।
- निगरानी जारी
फ़िक्स डिप्लॉय कर दिया गया है। एनकोडर
path:line,//host:portऔरdata:टेक्स्ट में word joiner (U+2060) जोड़ता है, जब तक सेल लिंक की अनुमति न देता हो। - कारण की पहचान
DevTools कंसोल मैसेज में URL,
path:lineऔर//host:portटेक्स्ट को लिंक में बदलता है और उन पर अपने थीम रंग लागू करता है। एनकोडर पहले से://औरwww.को तोड़ता था, लेकिनpath:lineऔर स्कीम के बाद का//host:portअब भी मैच होते हैं। - जांच जारी
src/app.tsx:12औरhttp://localhost:3000जैसे टेक्स्ट अपनी%cस्टाइल के बजाय DevTools के लिंक रंग में रेंडर होते हैं।
इस इंसिडेंट से प्रभावित: Turbolog encoder।
पोस्टमॉर्टम
://औरwww.में 0.1.0 से word joiner है। जिन सेल को क्लिक करने लायक रहना चाहिए, वे allow-link एट्रिब्यूट सेट करते हैं और बिना बदलाव लिखे जाते हैं।- हल हो गया
नवंबर 2025
कंसोल ऐप में कीस्ट्रोक की देरी4 नव॰ – 18 नव॰ 2025 · हल हो गया
- हल हो गया
यह सुधार Text.js 0.3.0 में रिलीज़ हो गया है।
- निगरानी जारी
फ़िक्स डिप्लॉय कर दिया गया है। कीप्रेस या पेस्ट जैसे डिस्क्रीट इनपुट अब उसी टास्क में सिंक्रोनस रूप से रेंडर होते हैं। बाकी अपडेट अब भी
requestAnimationFrameपर कमिट होते हैं। - कारण की पहचान
कीप्रेस समेत हर अपडेट अगले
requestAnimationFrameका इंतज़ार करता है, जिसके बाद React कमिट करता है और फ़्रेम लॉग होता है। - जांच जारी
कंसोल ऐप में टाइपिंग कीबोर्ड से पीछे रहती है, जो textjs.org पर OpenCode में सबसे ज़्यादा दिखता है।
इस इंसिडेंट से प्रभावित: textjs.org।
पोस्टमॉर्टम
कीप्रेस अब अगले ऐनिमेशन फ़्रेम का इंतज़ार नहीं करते। इनपुट से न आने वाले कमिट, जैसे टाइमर और स्ट्रीम किए गए डेटा के कमिट, अब भी हर ऐनिमेशन फ़्रेम पर बैच किए जाते हैं।
फ़िक्स:
8c2d1b1· चेंजलॉग: 0.3.0- हल हो गया