اسٹیٹس
console.logفعالconsole.clearشاذ استعمالYogaفعالTurbolog encoderفعالDevTools Throttlerپابندی برقرارtextjs.orgفعاللائیو بینچ مارک
@textjs/core پائپ لائن اس ٹیب میں 100×32 ڈیش بورڈ پر چلتی ہے اور فریم اِن میموری کونسول میں لکھتی ہے۔
- مکمل فریم
- —
- لے آؤٹ + پینٹ + انکوڈ
- ٹائپنگ
- —
- ایک قطار میں ترمیم
- آئیڈل فریم
- —
- کچھ نہیں بدلا
- %c spans
- —
- 3,200 سیل
صفحہ فارغ ہوتے ہی خودکار طور پر شروع ہوتا ہے۔
کارکردگی کی تاریخ
ہر سنگ میل پر packages/core/test/perf.test.ts، ایک ہی مشین (Apple M5 Pro · Bun 1.4.4)۔ 1,000 فریم کا اوسط۔
| ریلیز | مکمل فریم | ٹائپنگ | فارغ | %c spans |
|---|---|---|---|---|
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ایک دوسرے npm پیکیج کے پاس 25 مارچ 2016 سے ہے۔ - تحقیقات جاری
فریم ورک پیکیج
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۔
واقعے کا تجزیہ
یکساں اسٹائل والے spans اب بھی قطاروں کے بریکس کے پار ضم ہوتے ہیں۔ کرٹن کو بھی الگ لائن پر منتقل کیا گیا ہے: 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 کونسول پیغامات میں URLs،
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- حل ہو گیا