稼働状況

すべてのシステムが正常稼働中更新日:2026年10月31日
console.log正常稼働
90日前変更されたフレームごとに1回呼び出し、アイドル時には呼び出しません。本日
console.clear使用頻度は低め
90日前最初のフレーム、invalidate()の後、100フレームが積み重なった後のアイドル時、300フレーム時です。本日
Yoga正常稼働
90日前WebAssemblyのflexboxレイアウト、pointScaleFactorは1です。本日
Turbolog encoder正常稼働
90日前行ハッシュによる判定とランレングス%cエンコーディングです。本日
DevTools Throttler遵守
90日前ビューポートを50ms間隔でスロットリングします。フレームの間隔は最低66msです。本日
textjs.org正常稼働
90日前ドキュメント、学習、Playground、ブログ、ストアです。本日

ライブベンチマーク

@textjs/coreパイプラインは、このタブで100×32のダッシュボードを処理し、メモリー内のコンソールにフレームを書き込みます。

フレーム全体
—
レイアウト+描画+エンコード
文字入力
—
1行の編集
アイドル時のフレーム
—
変更なし
%cスパン
—
3,200セル

ページがアイドル状態になると自動で開始します。

パフォーマンス履歴

各マイルストーンで、同じマシン(Apple M5 Pro · Bun 1.4.4)上でのpackages/core/test/perf.test.tsの結果です。1,000フレームの平均です。

リリースフレーム全体文字入力アイドル%cスパン
0.1.02025年3月 · @textjs/core · 7c91cea0.194ms0.065ms0.043ms205
0.2.02025年7月 · textjs.org · 92437cc0.192ms0.067ms0.042ms205
0.3.02025年11月 · 10× input · 8c2d1b10.205ms0.065ms0.043ms146
0.3.02025年11月 · Mobile pass · e2e6e460.212ms0.067ms0.045ms146
0.4.02026年5月 · Zero-flash frames · f007ade0.184ms0.046ms0.028ms146
1.0.02026年10月 · Text.js 1.0 · 57968b60.163ms0.011ms0.000ms149

DevToolsフロントエンド

Chrome for Testingでのbench/devtools:空白描画、配信フレーム、表示遅延を1回につき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年10月

  • iOS Safariでページがヘッダーの下に固定10月27日 – 2026年10月28日 · 解決済み
    1. 解決済み

      この問題は解決しました。

    2. 監視中

      修正をデプロイしました。スクロールアンカーを無効にしました(overflow-anchor: none)。監視を続けています。

    3. 原因特定済み

      下にスクロールしてから上に戻ると、ヒーローの見出しが追従ヘッダーの下に固定される問題がまだ残っています。Safariのスクロールアンカーがスクロール位置を調整しています。

    4. 監視中

      修正をデプロイしました。これらの要素は横方向にのみスクロールし、scrollbar-gutter: stable はマウスを使うデバイスにのみ適用されます。

    5. 原因特定済み

      ファイルタブ、コードブロック、本文中の表には、アクティブなタブの下線による1pxの縦方向のはみ出しがあるため、縦横両方向にスクロールし、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でLintルールのテストが失敗2026年10月23日 · 解決済み
    1. 解決済み

      テスターは、テストが RuleTester.itOnly を呼び出したときに it.only を遅延読み取りするようになりました。CIは成功しています。

    2. 原因特定済み

      環境変数 CI が設定されていると、Bunは it.only の読み取り時に例外を投げます。ルールテスターはインポート時に RuleTester.itOnly = it.only を代入するため、読み込みに失敗します。

    3. 調査中

      eslint-plugin-textjs のテストスイートが、ルールのテストを実行する前にCIで失敗します。ローカルでは成功します。

    事後分析

    @typescript-eslint/rule-tester は、RuleTester の静的プロパティとしてテスト関数を受け取ります。修正では it.only を関数でラップしています。パッケージやページへの影響はありませんでした。

    修正: eca3f78

  • /playgroundと/opencodeでのレイアウトシフト10月21日 – 2026年10月22日 · 解決済み
    1. 解決済み

      すべてのルートで累積レイアウトシフトが0になりました。

    2. 監視中

      修正をデプロイしました。両ページでパッドのレイアウトを共通化し、「自動サイズ」を動かさずにサイズを追加するようにしました。監視を続けています。

    3. 原因特定済み

      コンソールサイズのコントロールは、ハイドレーション後に測定サイズをラベルに追加するため(Fit console · 120×36)、「自動サイズ」のテキストノードが動きます。また、パッドの上段と下段の高さが2つのページで異なるため、移動時にパッドの中央位置が変わります。

    4. 調査中

      レイアウトシフト監査で、/playgroundと/opencodeの累積レイアウトシフトが0.0001と報告されています。監査対象のほかのルートはすべて0です。この2つのページ間を移動すると、フォーカスパッドも動きます。

    このインシデントの影響範囲:textjs.org。

    事後分析

    パッドの上下のスロットを固定高にし、すべてのデモで同じ行数を確保したため、ページやデモを切り替えても何も動きません。OpenCodeの接続パネルは、どの状態でもステータスを1行で表示し、ハイドレーションまではスケルトンを表示します。apps/web/scripts/e2e-layout.mjs は、ルート、デモ、ビューポートサイズ、接続状態が変わってもボックスが同一であることを検証します。

    修正: 8f22b9b · 変更履歴:1.0.0

  • 長いページの末尾でドキュメントのサイドバーが画面外にスクロール10月16日 – 2026年10月17日 · 解決済み
    1. 解決済み

      この問題は解決しました。

    2. 監視中

      修正をデプロイしました。Learnの章でもコンテンツ列内にフッターを描画します。監視を続けています。

    3. 原因特定済み

      Learnの章サイドバーにも同じ問題があります。

    4. 監視中

      修正をデプロイしました。ドキュメントのページではコンテンツ列内にフッターを描画し、レイアウトがページの下端まで届くようにしました。

    5. 原因特定済み

      サイドバーはドキュメントのレイアウト内で position: sticky に設定され、サイトのフッターはそのレイアウトの後に描画されます。sticky要素が固定されるのは包含ブロックが画面内にある間だけなので、フッターがスクロールして入ってくると、サイドバーも一緒に動きます。

    6. 調査中

      長いページの下部でドキュメントのサイドバーが画面外にスクロールするという報告を調査しています。

    このインシデントの影響範囲:textjs.org。

    事後分析

    stickyサイドバーがあるページ(ドキュメントとLearnの章)では、コンテンツ列内にフッターを描画します。他のページは共通のフッターを引き続き使います。

    修正: 131ac96 · 変更履歴:1.0.0

  • npmでパッケージ名textjsが使用不可10月14日 – 2026年10月15日 · 解決済み
    1. 解決済み

      この問題は解決しました。

    2. 監視中

      フレームワークとCLIのパッケージは、@textjs/core と @textjs/react と同じスコープの @textjs/next になりました。インポート先は textjs から @textjs/next に変わります。

    3. 原因特定済み

      textjs という名前は2016年3月25日から別のnpmパッケージが所有しています。

    4. 調査中

      フレームワークのパッケージ textjs をnpmに公開すると 403 Forbidden で失敗します。

    事後分析

    Text.js 1.0から、アプリのインポート先は textjs ではなく @textjs/next になり、OpenCodeブリッジはどのディレクトリーからでも実行できる bunx @textjs/app proxy になります。

    Text.js 1.0:1つの名前変更 · 変更履歴:1.0.0

2026年9月

  • 改行位置の空の描画レイヤー9月15日 – 2026年9月16日 · 解決済み
    1. 解決済み

      この問題は解決しました。

    2. 監視中

      修正をデプロイしました。連続部分を継続しない改行では、まず %c を空のスタイルにリセットし、DevToolsが通常の改行を出力するようにしました。各フレームのカーテンは1つです。

    3. 原因特定済み

      スタイル付きの連続部分が改行位置で終わると、\n はその部分の %c スパン内に書き込まれます。DevToolsは改行位置でスパンを分割し、残った空の部分が contain: paint を持つ display: inline-block スパンとなり、独自の描画レイヤーを持ちます。

    4. 調査中

      DevToolsのフレームの大半の改行位置に空の <span> 要素があり、一部のフレームでカーテンのスパンが二重になる問題を調査しています。

    このインシデントの影響範囲:Turbolog encoder。

    事後分析

    同じスタイルのスパンは引き続き改行をまたいで結合されます。カーテンも専用の行に移動しました。DevToolsはソースリンク(VM12:1)をメッセージの最初の行の右側に配置するため、インラインのカーテンではリンクが行0の横に残り、行幅を狭めていました。

    変更履歴:1.0.0

2026年8月

  • console.clear後の表示遅延の増加8月27日 – 2026年8月31日 · 解決済み
    1. 解決済み

      bench/devtools での表示遅延の中央値は10.4msです。この修正はText.js 1.0に含まれます。

    2. 監視中

      修正をデプロイしました。クリアを伴うフレームの後、レンダラーが一度だけ110ms待機し、以降のフレームがDevToolsの前回の更新から50msを超えて到着して、即時処理されるようにしました。

    3. 原因特定済み

      クリア後、DevToolsは「コンソールがクリアされました」という行を挿入します。この行がスロットラーの即時実行枠を使い、次のフレームを50msのタイマーに送ります。フレーム間隔が66msのため、その後のすべてのフレームもこのタイマーに留まります。

    4. 調査中

      bench/devtools では、コンソールをクリアすると表示遅延の中央値が63msになります。その後のすべてのフレームでも遅延はその水準のままです。

    このインシデントの影響範囲:DevTools Throttler, console.clear。

    事後分析

    個別の入力は、フレーム間隔が許す場合、引き続き同期的に描画されます。

    位相ロックの解消 · 変更履歴:1.0.0

  • スピナーによるDevToolsコンソールの行のずれ8月11日 – 2026年8月12日 · 解決済み
    1. 解決済み

      このインシデントは解決しました。この修正はText.js 1.0に含まれます。

    2. 監視中

      修正をデプロイしました。デフォルトの dots スピナーは、Menloでそれぞれ1セルの四分円ブロック(▘ ▝ ▗ ▖)を描画するようになりました。点字フレームはターミナル向けに variant="braille" で利用できます。

    3. 原因特定済み

      デフォルトのスピナーは点字パターン(U+2800〜U+28FF)を描画します。Text.jsはそれぞれを1セルとして計測しますが、macOSのDevToolsコンソールのフォントであるMenloには点字グリフがありません。代替グリフはセルより幅が広く、行の残りを右に押し出します。

    4. 調査中

      macOSでは、<Spinner> を含む行がDevToolsでずれます。スピナーの右側のセルがグリッドから外れます。

    このインシデントの影響範囲:console.log。

    事後分析

    同じ理由で、LineChart はデフォルトで四分円ドットを描画します。点字は marker="braille" で利用できます。

    変更履歴:1.0.0

2026年5月

  • DevToolsコンソールで空白の描画が増加5月5日 – 2026年5月19日 · 解決済み
    1. 解決済み

      修正はText.js 0.4.0でリリースされました。空白の描画は1.0%で、すべて最初のフレームで発生しています。

    2. 監視中

      textjs.orgでは、クリアする代わりにフレームを追記するようになりました。幅ゼロのカーテンスパンで過去のフレームを隠し、フレーム間隔を最低66msに調整しています。

    3. 原因特定済み

      DevToolsは console.clear() を同期的に適用しますが、新しいメッセージの描画は50ms間隔に制限します。各フレームは前のフレームを即座に削除し、最大50ms後に描画されます。bench/devtools では、100×32のダッシュボードがDevToolsの描画のうち15fpsで70.6%、60fpsで81.1%の割合で空白になりました。

    4. 調査中

      負荷がかかるとDevToolsコンソールがフレーム間で一瞬空白になるという報告を調査しています。

    このインシデントの影響範囲:console.clear, DevTools Throttler。

    事後分析

    0.1.0以降、Turbologは変更されたフレームごとに console.clear() と console.log() を1回ずつ送っていました。Chrome for Testingで実際のDevToolsフロントエンドを動かす bench/devtools は、このインシデントを計測するために作られ、上のDevToolsフロントエンドの表の数値を算出しました。

    修正: f007ade · Turbolog:ちらつきの解消 · 変更履歴:0.4.0

2026年4月

  • コンソールのフレーム内のファイルパスにリンクのスタイルが適用4月14日 – 2026年4月15日 · 解決済み
    1. 解決済み

      この問題は解決しました。

    2. 監視中

      修正をデプロイしました。セルでリンクを許可していない限り、エンコーダーは path:line、//host:port、data: のテキストにワードジョイナー(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からワードジョイナーを含めています。クリック可能なままにするセルにはallow-link属性を設定し、変更せずに書き込みます。

    変更履歴:0.4.0

2025年11月

  • コンソールアプリでのキー入力の遅延11月4日 – 2025年11月18日 · 解決済み
    1. 解決済み

      修正はText.js 0.3.0でリリースされました。

    2. 監視中

      修正をデプロイしました。キー入力や貼り付けなどの個別の入力は、同じタスク内で同期的に描画されるようになりました。他の更新は引き続き requestAnimationFrame でコミットされます。

    3. 原因特定済み

      キー入力を含むすべての更新は、次の requestAnimationFrame を待ってからReactがコミットし、フレームがログに出力されます。

    4. 調査中

      コンソールアプリへの文字入力がキーボード操作より遅れ、特にtextjs.orgのOpenCodeで目立ちます。

    このインシデントの影響範囲:textjs.org。

    事後分析

    キー入力が次のアニメーションフレームを待たなくなりました。タイマーやストリーミングデータなど、入力以外に由来するコミットは、引き続きアニメーションフレームごとにまとめられます。

    修正: 8c2d1b1 · 変更履歴:0.3.0