transcript auto follow_ja - kkamegawa/vsextensionforcodex GitHub Wiki

トランスクリプトの最新出力への自動追従

English

概要

仮想化されたチャットトランスクリプトに、ChatGPT のような最新出力への追従動作を追加します。閲覧位置が最新の場合はアシスタントのストリーミング出力を表示し続け、履歴を読むために上へスクロールした場合は自動追従を停止して、アクセシブルなローカライズ済みの最新出力へ戻る操作を表示します。最新位置へ戻るか、その操作を実行すると追従を再開します。

追跡

種別 Issue
親 Issue #205
サブ Issue Issue #206
サブ Issue Issue #207
サブ Issue Issue #208

背景

チャットトランスクリプトは Visual Studio Remote UI で描画する仮想化 WPF ListBox です。現在はピクセル単位でスクロールしますが、最新出力への追従はありません。Issue #30 では、Remote UI からコントロールのコードビハインドを利用して ScrollIntoView を直接呼び出せないため、XAML のリスト反転方式を試作してから設計を決めることになっていました。同 Issue には別の描画課題も含まれるため、この計画ではトランスクリプトの自動追従だけを扱います。

設計

最初に Visual Studio Experimental Instance で XAML のリスト反転方式を試作します。最新位置ではストリーミング出力を表示し続けられること、履歴側へ移動したときに追従を停止できること、閲覧位置を維持できること、最新位置へ戻ると追従を再開できることを確認します。追従停止中は、ローカライズされアクセシブルな「最新へ」操作を表示します。

表示上のトランスクリプトの時系列、仮想化、キーボード操作、スクリーンリーダーの読み上げ順、狭いパネルでの表示、Visual Studio のテーマリソースを維持します。試作で承認済みの操作を実現できない場合は停止し、描画ホストを変更する前に、サポートされる代替案を提案して設計承認を得ます。この機能では、以前の「自動スクロールなし」というフォールバックは採用しません。

実装フェーズ

  1. Experimental Instance で Remote UI のトランスクリプトスクロール追跡を試作し、観察結果を記録します。
  2. 検証済みの描画方式で、最新出力への追従、上スクロール時の停止、「最新へ」操作または最新位置への復帰による再開を実装します。
  3. Visual Studio 上で動作を確認し、スクリーンショットを確認して、実施した検証のみを記録します。

検証

警告をエラーとして扱う Release ソリューションビルドを実行します。Experimental Instance で、最新位置でのアシスタント出力中、履歴へ上スクロールした後、最新位置へ戻った後、「最新へ」を実行した後の表示を確認します。追従中・停止中・再開後のスクリーンショットを確認します。キーボード操作、スクリーンリーダーの読み上げ順、仮想化、狭いレイアウト、Visual Studio のテーマ表示も確認します。

⚠️ **GitHub.com Fallback** ⚠️