この章の答え
画面の操作は要求として渡り、返答や通知を受けて表示が変わる。
画面が動く仕組みと、エージェントが仕事を進める仕組みを分けると、別の UI から同じ処理を使いやすくなります。App Server の境界では、要求に対する返答と、処理中に届く通知を見分けます。
01|図でつかむ
要求と返答だけでなく、進行を知らせる通知も UI の更新に使う。
02|3つのポイントで理解する
1. 入力イベントを送信へ結び付ける
TUI のイベント処理から AppServerSession や Client の呼び出しを探します。画面上の状態が変わる前に、どんな要求を送り出すかを確認します。
2. サーバー側の受付へ進む
MessageProcessor や request processor から Core につながる経路を追います。UI のローカル状態とサーバーが持つ状態は、別々に更新されることを意識します。
3. 返答と通知を分けて扱う
公式 App Server 文書でも、要求・応答・通知のやり取りが説明されています。応答を受けて終わる操作と、通知を継続して反映する処理を分けると、表示の遅れや同期の問題を調べやすくなります。
03|ソースで確かめる
以下の検索は Codex リポジトリのルートで実行します。最初に対象 commit を記録し、検索結果から定義と呼び出し元を一つずつ開いてください。
git rev-parse --short HEAD
rg -n "AppServerSession|AppServerEvent" codex-rs
読む入口: codex-rs/tui/src/app_server_session.rs 。リンク先は照合に使った固定 commit のファイルです。手元の版と異なる場合は、上の検索語から探し直します。
小さく試す
一つの UI 操作について、要求名、サーバー側の処理、返ってくる通知の受け取り箇所を探します。
04|30秒で復習
- UI と作業処理は境界で分かれる。
- 応答と通知は役割が違う。
- 表示状態とサーバー状態の同期を見る。