ITSUKI.
技術750 文字2 分

Day 20|Issue から読む — 成功時と失敗時の差を探す

#Codex#ソースコードリーディング#図解

この章しょうの答こたえ

同おなじ処理しょりの成功せいこう経路けいろと失敗しっぱい経路けいろを比くらべると、回復かいふく処理しょりの抜ぬけが見みえる。

原稿げんこうは Issue #37974 を題材だいざいに、プロンプト編集へんしゅうの分岐ぶんき処理しょりが失敗しっぱいしたあと、待機中たいきちゅうの入力にゅうりょくが進すすまなくなる報告ほうこくを調しらべています。ここでは報告ほうこくの内容ないようを再現さいげん確認済かくにんずみみの結論けつろんと混同こんどうせず、原因げんいん候補こうほを絞しぼる手順てじゅんを学まなびます。

01|図でつかむ

図20|Issue から読む

症状しょうじょう → エラー文ぶん → 分岐ぶんきの比較ひかく → 仮説かせつ。修正しゅうせいの前まえに再現さいげん条件じょうけんを確たしかめる。

02|3つのポイントで理解する

1. 利用者が見た文字から探す

報告ほうこくのエラー文ぶんを完全かんぜん一致いっちで検索けんさくすると、表示ひょうじする場所ばしょを絞しぼれます。そこから呼び出よびだし元もとへ戻もどり、どの操作そうさが失敗しっぱい経路けいろへ到達とうたつするかを調しらべます。

2. 復元する状態を比べる

成功せいこう時ときと失敗時しっぱいじで、入力にゅうりょく欄らんやキューに対たいする処理しょりを比くらべます。見た目みためが Ready に戻もどっても、待機たいき入力にゅうりょくを再ふたたび送り出おくりだすきっかけが残のこっているとは限かぎりません。

3. 候補をテスト可能な言葉にする

「回復後かいふくご、送信そうしん可能かのうな待機たいき入力にゅうりょくが次つぎの処理しょりへ渡わたる」という観察かんさつ可能かのうな期待きたいへ落おとします。報告ほうこくの提案ていあんをそのまま正解せいかいとせず、送信そうしんを止とめる別条べつじょう件けんも確認かくにんします。

03|ソースで確かめる

以下いかの検索けんさくは Codex リポジトリのルートで実行じっこうします。最初さいしょに対象たいしょう commit を記録きろくし、検索結果けんさくけっかから定義ていぎと呼び出よびだし元もとを一ひとつずつ開ひらいてください。

git rev-parse --short HEAD
rg -n "restore_backtrack_prompt_after_branch_error|maybe_send_next_queued_input" codex-rs

読よむ入口いりぐち: codex-rs/tui/src/app_backtrack.rs 。リンク先さきは照合しょうごうに使つかった固定こてい commit のファイルです。手元てもとの版はんと異ことなる場合ばあいは、上うえの検索語けんさくごから探さがし直なおします。

小さく試す

restore_backtrack_prompt_after_branch_error と maybe_send_next_queued_input の呼び出よびだし元もとを並ならべ、状態じょうたいの復元ふくげんと再送信さいそうしんの違ちがいを説明せつめいします。

04|30秒で復習

  • エラー表示ひょうじを検索けんさくの入口いりぐちにする。
  • 成功せいこうと失敗しっぱいで回復かいふく処理しょりを比較ひかくする。
  • 原因げんいん候補こうほは振ふる舞まいのテストで確たしかめる。

全ぜん30章しょうの目次もくじへ