מצב

כל המערכות תקינותעודכן 31 באוקטובר 2026
console.logפעיל
לפני 90 ימיםקריאה אחת לכל פריים שהשתנה, ללא קריאות במנוחה.היום
console.clearבשימוש נדיר
לפני 90 ימיםבפריים הראשון, אחרי invalidate(), במנוחה לאחר הצטברות של 100 פריימים, וב-300.היום
Yogaפעיל
לפני 90 ימים⁦layout⁩ של flexbox ב-WebAssembly, עם ⁦pointScaleFactor 1⁩.היום
Turbolog encoderפעיל
לפני 90 ימיםסינון לפי גיבוב שורות וקידוד ⁦%c⁩ לפי אורך רצף.היום
DevTools Throttlerמכובד
לפני 90 ימיםהגבלת עדכוני אזור התצוגה ל-50 ms. פריימים מופיעים בהפרש של 66 ms לפחות.היום
textjs.orgפעיל
לפני 90 ימיםתיעוד, למידה, Playground, בלוג וחנות.היום

מדידת ביצועים חיה

תהליך העיבוד של ⁦@textjs/core⁩ פועל בכרטיסייה הזו על לוח מחוונים בגודל ⁦100×32⁩ וכותב פריימים למסוף בזיכרון.

פריים מלא
—
⁦layout⁩ + ציור + קידוד
הקלדה
—
עריכת שורה אחת
פריים במנוחה
—
אין שינוי
⁦span⁩ של ⁦%c⁩
—
3,200 תאים

מתחילה אוטומטית כשהדף אינו פעיל.

היסטוריית ביצועים

⁦packages/core/test/perf.test.ts⁩ בכל אבן דרך, באותו מחשב (Apple M5 Pro · Bun 1.4.4). ממוצע של 1,000 פריימים.

גרסהפריים מלאהקלדהחוסר פעילות⁦span⁩ של ⁦%c⁩
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

⁦bench/devtools⁩ ב-⁦Chrome for Testing⁩: ציורים ריקים, פריימים שנמסרו והשהיית תצוגה, 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

  • דפים נתקעים מתחת לכותרת העליונה ב-Safari ב-iOS27 באוק׳ – 28 באוק׳ 2026 · נפתרה
    1. נפתרה

      התקרית נפתרה.

    2. במעקב

      נפרס תיקון. עיגון הגלילה כבוי (overflow-anchor: none). אנחנו ממשיכים במעקב.

    3. הגורם זוהה

      הכותרת הראשית עדיין עלולה להיתקע מתחת לכותרת העליונה הדביקה אחרי גלילה למטה וחזרה למעלה. עיגון הגלילה של Safari משנה את מיקום הגלילה.

    4. במעקב

      נפרס תיקון. הרכיבים האלה נגללים כעת רק אופקית, ו-scrollbar-gutter: stable חל רק במכשירים עם עכבר.

    5. הגורם זוהה

      בלשוניות קבצים, בלוקי קוד וטבלאות בטקסט יש גלישה אנכית של 1 px בגלל הקו התחתון של הלשונית הפעילה, ולכן הם נגללים בשני הצירים ו-iOS מעביר אליהם החלקות אנכיות שנועדו לדף. גם scrollbar-gutter: stable גורם לקפיצה בגלילה הראשונה ב-iOS.

    6. בבדיקה

      אנחנו בודקים דיווחים שלפיהם אי אפשר לגלול חזרה לראש הדף בדפי textjs.org ב-Safari ב-iOS.

    התקרית הזו השפיעה על: textjs.org.

    תחקיר

    דפי textjs.org לא זזים בזמן הטעינה, ולכן לעיגון הגלילה לא היה מה לתקן. ב-Safari ב-iOS הוא קיבע את האזור הראשי מתחת לכותרת העליונה הדביקה וחסם את הגלילה חזרה לראש הדף. ?debug=scroll ב-textjs.org מציג כעת בזמן אמת אירועי גלילה, מגע ושינוי גודל, ומציין מי ביצע כל קריאה תכנותית למיקוד או לגלילה.

    תיקונים: 297c5d7, 55da525, 8424fcd · יומן שינויים: 1.0.0

  • בדיקות כללי lint נכשלות ב-CI23 באוק׳ 2026 · נפתרה
    1. נפתרה

      הבודק קורא כעת את it.only באופן עצל, כשבדיקה קוראת ל-RuleTester.itOnly. הבדיקות ב-CI עוברות.

    2. הגורם זוהה

      ⁦Bun⁩ זורק שגיאה כשקוראים את it.only בזמן שמשתנה הסביבה CI מוגדר. בודק הכללים מבצע את ההשמה RuleTester.itOnly = it.only בזמן הייבוא, ולכן הטעינה שלו נכשלת.

    3. בבדיקה

      חבילת הבדיקות של eslint-plugin-textjs נכשלת ב-CI לפני שבדיקת כלל כלשהי רצה. ההרצות המקומיות עוברות.

    תחקיר

    @typescript-eslint/rule-tester מקבל את פונקציות הבדיקה שלו כמאפיינים סטטיים של RuleTester. התיקון עוטף את it.only בפונקציה. שום חבילה או דף לא הושפעו.

    תיקון: eca3f78

  • תזוזת layout ב-⁦/playground⁩ וב-⁦/opencode⁩21 באוק׳ – 22 באוק׳ 2026 · נפתרה
    1. נפתרה

      שינוי הפריסה המצטבר הוא 0 בכל נתיב.

    2. במעקב

      נפרס תיקון. שני הדפים חולקים layout אחד למשטח, והגודל נוסף לסוף בלי להזיז את "התאמה למסוף". המעקב נמשך.

    3. הגורם זוהה

      פקד גודל המסוף מוסיף את הגודל שנמדד לסוף התווית שלו אחרי הידרציה (Fit console · 120×36), מה שמזיז את צומת הטקסט "התאמה למסוף". גם גובה השורות העליונה והתחתונה של המשטח שונה בין שני הדפים, ולכן המשטח מתמרכז מחדש בעת הניווט.

    4. בבדיקה

      בדיקת תזוזות ה-layout שלנו מדווחת על תזוזת layout מצטברת של 0.0001 ב-⁦/playground⁩ וב-⁦/opencode⁩. בכל נתיב אחר שהיא בודקת נמדד 0. גם משטח המיקוד זז במעבר בין שני הדפים.

    התקרית הזו השפיעה על: textjs.org.

    תחקיר

    למשטח יש כעת אזורים עליונים ותחתונים בגובה קבוע, וכל הדגמה שומרת את אותן שורות, כך שמעבר בין דפים או הדגמות לא מזיז דבר. חלונית החיבור של OpenCode מציגה שורת מצב אחת בכל מצב, עם שלד עד להשלמת ההידרציה. apps/web/scripts/e2e-layout.mjs מוודא שהתיבות זהות בין נתיבים, הדגמות, גדלי אזור תצוגה ומצבי חיבור.

    תיקון: 8f22b9b · יומן שינויים: 1.0.0

  • סרגל הצד בתיעוד נגלל מחוץ לתצוגה בסוף דפים ארוכים16 באוק׳ – 17 באוק׳ 2026 · נפתרה
    1. נפתרה

      התקרית נפתרה.

    2. במעקב

      נפרס תיקון. גם הפרקים במדור למידה מרנדרים את הכותרת התחתונה בתוך עמודת התוכן. המעקב נמשך.

    3. הגורם זוהה

      אותה בעיה קיימת בסרגל הצד של הפרקים במדור למידה.

    4. במעקב

      נפרס תיקון. דפי התיעוד מרנדרים את הכותרת התחתונה בתוך עמודת התוכן, כך שה-layout מגיע לתחתית הדף.

    5. הגורם זוהה

      סרגל הצד מוגדר כ-position: sticky בתוך ה-layout של התיעוד, והכותרת התחתונה של האתר מתרנדרת אחרי ה-layout הזה. רכיב דביק נשאר מקובע רק כל עוד הבלוק המכיל שלו נמצא על המסך, ולכן כשהכותרת התחתונה נגללת פנימה, היא לוקחת איתה את סרגל הצד.

    6. בבדיקה

      אנחנו בודקים דיווחים שסרגל הצד בתיעוד נגלל מחוץ לתצוגה בתחתית דפים ארוכים.

    התקרית הזו השפיעה על: textjs.org.

    תחקיר

    דפים עם סרגל צד דביק (תיעוד ופרקים במדור למידה) מרנדרים את הכותרת התחתונה בעמודת התוכן שלהם. שאר הדפים שומרים על הכותרת התחתונה המשותפת.

    תיקון: 131ac96 · יומן שינויים: 1.0.0

  • שם החבילה textjs אינו זמין ב-npm14 באוק׳ – 15 באוק׳ 2026 · נפתרה
    1. נפתרה

      התקרית נפתרה.

    2. במעקב

      חבילת הפריימוורק וה-CLI היא כעת @textjs/next, באותו מרחב שמות כמו @textjs/core ו-@textjs/react. הייבוא משתנה מ-textjs ל-@textjs/next.

    3. הגורם זוהה

      השם textjs שייך לחבילת npm אחרת מאז 25 במרץ 2016.

    4. בבדיקה

      פרסום חבילת הפריימוורק textjs ב-npm נכשל עם 403 Forbidden.

    תחקיר

    החל מ-⁦Text.js 1.0⁩, אפליקציות מייבאות מ-@textjs/next במקום מ-textjs, והגשר של OpenCode הוא bunx @textjs/app proxy, שפועל מכל ספרייה.

    ⁦Text.js 1.0⁩: שינוי שם אחד · יומן שינויים: 1.0.0

ספטמבר 2026

  • שכבות ציור ריקות במעברי שורה15 בספט׳ – 16 בספט׳ 2026 · נפתרה
    1. נפתרה

      התקרית נפתרה.

    2. במעקב

      נפרס תיקון. מעברי שורה שלא ממשיכים רצף מאפסים כעת תחילה את %c לסגנון ריק, כך ש-DevTools מפיק מעבר שורה רגיל. כל פריים נושא וילון אחד.

    3. הגורם זוהה

      כשרצף מעוצב מסתיים במעבר שורה, ה-\n נכתב בתוך ה-span של ה-%c של הרצף. DevTools מפצל את ה-span במעבר השורה, והשארית הריקה הופכת ל-span עם display: inline-block ו-contain: paint, שמקבל שכבת ציור משלו.

    4. בבדיקה

      אנחנו בודקים רכיבי <span> ריקים ברוב מעברי השורה בפריימים ב-DevTools, ו-span וילון כפול בחלק מהפריימים.

    התקרית הזו השפיעה על: Turbolog encoder.

    תחקיר

    רכיבי span בעלי אותו סגנון עדיין מתמזגים מעבר למעברי שורה. הווילון עבר גם לשורה משלו: DevTools מציף את קישור המקור (VM12:1) מימין לשורה הראשונה של הודעה, ווילון בתוך השורה השאיר את הקישור לצד שורה 0 וצמצם את רוחבה.

    יומן שינויים: 1.0.0

אוגוסט 2026

  • השהיית תצוגה מוגברת אחרי console.clear27 באוג׳ – 31 באוג׳ 2026 · נפתרה
    1. נפתרה

      השהיית התצוגה החציונית ב-bench/devtools היא 10.4 ms. התיקון נכלל ב-⁦Text.js 1.0⁩.

    2. במעקב

      נפרס תיקון. אחרי כל פריים שמנקה את המסוף, מנגנון הרינדור ממתין פעם אחת 110 ms, כך שפריימים מאוחרים יותר מגיעים יותר מ-50 ms אחרי הרענון הקודם של DevTools ועוברים במסלול המיידי שלו.

    3. הגורם זוהה

      אחרי ניקוי, DevTools מוסיף שורת "המסוף נוקה". היא תופסת את המשבצת המיידית של מנגנון הגבלת הקצב ודוחפת את הפריים הבא לטיימר של 50 ms. כשהפריימים מרוחקים 66 ms זה מזה, כל פריים מאוחר יותר נשאר על אותו טיימר.

    4. בבדיקה

      bench/devtools מדווח על השהיית תצוגה חציונית של 63 ms לאחר ניקוי המסוף. ההשהיה נשארת ברמה זו בכל פריים מאוחר יותר.

    התקרית הזו השפיעה על: DevTools Throttler, console.clear.

    תחקיר

    קלט בדיד עדיין מתרנדר באופן סינכרוני כשהמרווח בין הפריימים מאפשר זאת.

    שבירת נעילת המופע · יומן שינויים: 1.0.0

  • מחוון טעינה משבש יישור שורות במסוף של DevTools11 באוג׳ – 12 באוג׳ 2026 · נפתרה
    1. נפתרה

      התקרית נפתרה. התיקון נכלל ב-⁦Text.js 1.0⁩.

    2. במעקב

      נפרס תיקון. מחוון הטעינה dots המוגדר כברירת מחדל מצייר כעת בלוקים של רבעי תא (▘ ▝ ▗ ▖), כל אחד ברוחב תא אחד ב-Menlo. פריימי הברייל זמינים לטרמינלים באמצעות variant="braille".

    3. הגורם זוהה

      מחוון הטעינה המוגדר כברירת מחדל מצייר דפוסי ברייל (⁦U+2800⁩ עד ⁦U+28FF⁩). Text.js מודד כל אחד מהם כתא אחד, אבל Menlo, גופן המסוף של DevTools ב-macOS, אינו כולל גליפים של ברייל. הגליף החלופי רחב מתא ודוחף את שאר השורה ימינה.

    4. בבדיקה

      ב-macOS, שורות שמכילות <Spinner> אינן מיושרות ב-DevTools. תאים מימין למחוון הטעינה חורגים מהרשת.

    התקרית הזו השפיעה על: console.log.

    תחקיר

    LineChart מצייר נקודות ברבעי תא כברירת מחדל מאותה סיבה. ברייל זמין באמצעות marker="braille".

    יומן שינויים: 1.0.0

מאי 2026

  • עלייה בציורים ריקים במסוף של DevTools5 במאי – 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⁩ היה ריק ב-⁦70.6%⁩ מהציורים של DevTools ב-15 fps וב-⁦81.1%⁩ ב-60 fps.

    4. בבדיקה

      אנחנו בודקים דיווחים על הבהובים שבהם המסוף של DevTools ריק בין פריימים תחת עומס.

    התקרית הזו השפיעה על: console.clear, DevTools Throttler.

    תחקיר

    מאז 0.1.0, Turbolog שלח קריאת console.clear() אחת וקריאת console.log() אחת לכל פריים שהשתנה. bench/devtools, שמפעיל את הממשק האמיתי של DevTools ב-⁦Chrome for Testing⁩, נבנה כדי למדוד את התקרית הזו והפיק את המספרים בטבלת הממשק של DevTools שלמעלה.

    תיקון: f007ade · ⁦Turbolog⁩: ביטול ההבהוב · יומן שינויים: 0.4.0

אפריל 2026

  • נתיבי קבצים בפריימים של המסוף מקבלים עיצוב של קישורים14 באפר׳ – 15 באפר׳ 2026 · נפתרה
    1. נפתרה

      התקרית נפתרה.

    2. במעקב

      נפרס תיקון. המקודד מוסיף ⁦word joiner⁩‏ (⁦U+2060⁩) לטקסט מסוג path:line,‏ //host:port ו-data:, אלא אם התא מאפשר קישורים.

    3. הגורם זוהה

      ⁦DevTools⁩ הופך כתובות URL וטקסט מסוג path:line ו-//host:port בהודעות מסוף לקישורים, וכופה עליהם את צבעי ערכת הנושא שלו. המקודד כבר פיצל את :// ואת www., אבל path:line ו-//host:port אחרי סכמת כתובת עדיין תואמים לתבנית.

    4. בבדיקה

      טקסט כמו src/app.tsx:12 ו-http://localhost:3000 מתרנדר בצבע הקישורים של DevTools במקום בסגנון ה-%c שלו.

    התקרית הזו השפיעה על: Turbolog encoder.

    תחקיר

    :// ו-www. מכילים ⁦word joiner⁩ מאז 0.1.0. תאים שאמורים להישאר לחיצים מגדירים את המאפיין ⁦allow-link⁩ ונכתבים ללא שינוי.

    יומן שינויים: 0.4.0

נובמבר 2025

  • הקשות מושהות באפליקציות מסוף4 בנוב׳ – 18 בנוב׳ 2025 · נפתרה
    1. נפתרה

      התיקון זמין ב-⁦Text.js 0.3.0⁩.

    2. במעקב

      נפרס תיקון. קלט בדיד, כמו הקשה על מקש או הדבקה, מתרנדר כעת באופן סינכרוני באותה משימה. עדכונים אחרים עדיין מוחלים ב-requestAnimationFrame.

    3. הגורם זוהה

      כל עדכון, כולל הקשה על מקש, ממתין ל-requestAnimationFrame הבא לפני ש-React מחיל את השינויים והפריים נרשם ביומן.

    4. בבדיקה

      ההקלדה באפליקציות מסוף מפגרת אחרי המקלדת, בעיקר ב-OpenCode ב-textjs.org.

    התקרית הזו השפיעה על: textjs.org.

    תחקיר

    לחיצות מקשים כבר לא ממתינות לפריים האנימציה הבא. עדכונים שאינם מגיעים מקלט, כמו טיימרים ונתונים זורמים, עדיין מקובצים לפי פריים אנימציה.

    תיקון: 8c2d1b1 · יומן שינויים: 0.3.0