Skip to Content
デザインTUIのスペーシングと密度 PR1

TUIのスペーシングと密度 PR1

理由

現在のTUIは、アシスタントの出力前、ステータス/ツールブロック間、および展開されたツールグループ内に、スペーシングのための余分な行を頻繁に使用しています。一般的なセッションでは、ユーザーがコンテンツではなく空白をスクロールする必要があるため、シンプルな回答、ファイルリスト、ツール出力、エラー状態、差分、および長いストリーミング出力がスキャンしにくくなります。

このPRは QwenLM/qwen-code#4588 の最初の集中的な対応です。レビューで思考の可視性、ツールの境界線、SubAgentのレイアウト、ブランディング、またはテーマカラーの変更をレビューすることなく、前後の行の使用量を比較できるように、スペーシングと密度のみに取り組んでいます。

実装方法

実装では、既存の情報構造とレンダリングサーフェスをそのまま維持しています。

  • 履歴アイテムのスペーシングは HistoryItemDisplay 付近に集約されています。ユーザープロンプトとスタンドアロンコマンドビューは引き続きターンセパレータで始まりますが、アシスタントの継続、ツールグループ、ステータスメッセージ、ツールサマリー、および関連するターン内出力は、余分な先頭スペーサ行を追加しなくなりました。
  • 展開されたツールグループは現在の境界線とステータス/タイトル構造を維持しますが、隣接するツールエントリ間に空白行を挿入しなくなりました。
  • ツール結果はツールタイトル/ステータス行の直下にレンダリングされます。これにより、出力内容、切り捨て、シェルフォーカス、確認プロンプト、またはコンパクトモードの動作を変更することなく、ツールヘッダーとその出力間の余分な空行が削除されます。

Markdownの空行の動作は意図的に変更されていません。レンダラーはすでに連続する空行を1つのスペーサに折りたたみ、テーブル、コードブロック、数式ブロックなどの複雑なブロックを保持します。

スペーシングの基準

  • 独立したユーザーターンは1つの視覚的セパレータを保持します。
  • アシスタント出力とターン内のフォローアップブロックは、2番目のセパレータを追加しません。
  • ツールヘッダーとツール結果のコンテンツは隣接しています。
  • 展開されたマルチツールグループは、各ツールエントリ間に空白行を挿入しません。
  • 複雑なMarkdownブロックは既存の内部レイアウトを保持します。

期待される効果

同じターミナル幅と同じレンダリングコンテンツの場合、ターゲットシナリオでは表示される行数が少なくなるはずです。

  • シンプルなQ&Aでは、少なくとも1つの表示行が削減されるはずです。
  • 展開されたツール出力では、以前に空白のヘッダー/結果スペーサがあったレンダリングされた各ツール結果について、少なくとも1行が削減されるはずです。
  • マルチツールグループでは、隣接する各ツールエントリ間で1行が削減されるはずです。
  • プロジェクト検査、差分、ファイルリスト、エラー、およびロングストリームのシナリオでは、ターミナルの折り返し変更により避けられない場合を除き、行が増加することはありません。

計測

自動スペーシングアサーションとターミナルエビデンスは、変更されたルールに対して100列のフィクスチャを使用しています。

シナリオベースライン行数PR1行数差分エビデンス
シンプルなアシスタント返信10021-1先頭の履歴スペーサが削除されました
1行の結果を持つツールヘッダー10032-1ヘッダーと結果が隣接しています
レンダリング結果を含む3ツールの展開グループ1001611-5各ツール結果のヘッダー/結果スペーサが1つ削除され、隣接するツール間のセパレータが1つ削除されました
完全な代表的なフィクスチャ1002619-7tmuxでキャプチャされた同一のレンダリングコンテンツ

スナップショットの差分は、既存の80列フィクスチャもカバーしており、現在のコンポーネントテストハーネスで同じ行数の差分を確認できます。

対象外

  • 思考トレースの非表示。
  • ツール境界線の削除。
  • SubAgent出力の再設計。
  • 起動時のブランディングまたはバナーの変更。
  • テーマカラーの変更。
  • ターンごとのアシスタント経過時間の追加。
  • テーブルのインラインコードハイライトの変更。
Last updated on