Codex Router doctor — 診断とインストール問題の修正
doctor は Codex Router で最も有用なツールです。統合のすべてのレイヤー(設定、認証情報、カタログ、サービス、ルーティング健全性)をチェックし、各項目を OK・WARN・FAIL として報告し、失敗したレイヤーごとに的を絞った修正方法を示します。
doctor を実行
./bin/model-router codex doctor
Windows:
./codex-router.ps1 codex doctor
doctor は認証情報値を出力しません。診断は存在とソースのみを報告します。
doctor がチェックする内容
以下のレイヤーがすべて OK の場合、統合は健全です:
- コア設定——Codex
config.tomlのマークされた管理ブロック(ループバックベース URL とカタログパスを含む)。 - 設定プライバシー——設定とバックアップが現在ユーザー向けに保護されている。
- カタログ——マージされた
model_catalog_jsonが存在し、インストール済み Codex ビルドと一致。 - 呼び出し元ケーパビリティ——生成された
/_codex-router/.../v1パスが有効なローカル認証。 - 内部キー——ランダムなループバックサービスキーが保護権限で存在。
- サービス——ユーザー単位バックグラウンドサービス(launchd、systemd、タスクスケジューラ)が期待どおりの ID で実行中。
- ルーター健全性——4100–4103 ポートの各ローカルリスナーが期待どおりのサービス ID を報告。
- 選択済み認証情報——選択したプロバイダーに保存キーまたは有効な OAuth セッションがある。未選択の認証情報が
WARNでも問題ありません。
doctor —fix で修復
リポジトリ管理のファイル・設定・サービス状態だけを再構築する場合:
./bin/model-router codex doctor --fix
--fix は Node と Python の依存関係を無条件に再構築します——通常のインストールや更新は指紋が一致した依存ステップをスキップするためです。環境が古いだけでなく壊れているように見える場合に適しています。
認識済みの旧 Kimi ルーター:
./bin/model-router codex doctor --fix --migrate-known
修復は未知のルーターオーナーを拒否します。doctor が状態所有権の失敗を報告した場合、インストールを実行していないクローンから実行しています——インストール状態を所有するチェックアウト経由で修復してください。状態所有権を参照。
状態所有権
記録されたオーナーが存在する間、doctor --fix はそのチェックアウトから修復を実行し、インストール済みチェックアウトを変更しません。次の場合にのみ現在のチェックアウトへ所有権を移行します:
MODEL_ROUTER_ALLOW_FOREIGN_STATE=1 ./bin/model-router codex doctor --fix
記録されたオーナーを確認:
STATE_DIR="${MODEL_ROUTER_STATE_DIR:-${CODEX_ROUTER_STATE_DIR:-${HOME}/.codex/codex-router}}"
cat "$STATE_DIR/install-manifest.json" | sed -n '1,80p'
doctor 通過後
更新・ロールバック後は doctor を実行し、Codex を完全終了・再起動・新規タスク作成してマージカタログを再読み込みします。--fix 後もレイヤーが失敗する場合はサポートバンドルを作成:
./bin/support-bundle
バンドルは mode-600 の JSON で、バージョン・doctor チェック・サービス状態・プロバイダー存在・設定所有権・ファイルメタデータを含みます——認証情報値・プロンプト・レスポンス・ログ内容は含まれません。イシューを開く ときはそのパスを添付し、本当に必要な場合のみ --include-logs を使います。