@@ -63,7 +63,7 @@ codiva/
6363│ │ ├── status-reducer.ts # reduce(state, CodivaEvent): SessionState(codiva 起点のイベント・純関数)
6464│ │ ├── agent-ports.ts # エージェントの DI 境界(AgentAdapter/AgentRun/AgentCapabilities/PermissionDecision・leaf)
6565│ │ ├── agent-events.ts # AgentEvent の語彙 + applyAgentEvent()(全 provider 共通の畳み込み・純粋)
66- │ │ ├── agent-capabilities.ts # capability による UI 縮退の判定(不明なら縮退しない・showsAccountUsage )
66+ │ │ ├── agent-capabilities.ts # capability による UI 縮退の判定(不明なら縮退しない・showsAccountInfo )
6767│ │ ├── agent-display.ts # 「どのセッションが何で走っているか」の判定(sessionAgentId / usesMultipleAgents)
6868│ │ ├── agent-handoff.ts # 切替先へ渡す状況説明(英語固定・systemPrompt に 1 回だけ載る)
6969│ │ ├── claude-adapter.ts # Claude 用 AgentAdapter(query() の組み立て・canUseTool の写像)
@@ -319,7 +319,7 @@ provider が増えてもビュー側の分岐は増えない(未登録のエ
319319エージェント名は固有名詞なので翻訳しない(モデル名と同じ i18n の例外)。
320320
321321縮退の判定は** 純粋な ` core/agent-capabilities.ts ` ** に寄せてある(` supportsCapability ` /
322- ` capabilityLookup ` / ` agentSupports ` / ` showsAccountUsage ` )。要点は 2 つ:
322+ ` capabilityLookup ` / ` agentSupports ` / ` showsAccountInfo ` )。要点は 2 つ:
323323
324324- ** capability が分からないときは縮退しない** (` supportsCapability(undefined, …) === true ` )。
325325 未登録の provider・` agent ` を持たない古いセッションで機能を隠すと、動くはずの操作が黙って
@@ -333,7 +333,7 @@ provider が増えてもビュー側の分岐は増えない(未登録のエ
333333| ` /model ` のダイアログ | ` setModel ` / ` modelCatalog ` | ` ui/session-detail.tsx ` | 開かずに理由を出す・選択肢を provider 別に出し分け |
334334| ` Ctrl+C ` のヒント | ` interrupt ` | ` ui/session-detail.tsx ` | ヒント行を出さない |
335335| 合計コスト(ヘッダ) | ` cost ` | ` core/cost.ts ` の ` totalCostUsd(states, reportsCost) ` | 報告しない provider のセッションを合計に数えない |
336- | 使用状況ゲージ(ヘッダ) | ` usage ` | ` showsAccountUsage ` (一覧の表示 + ` bootstrap/usage-poller.ts ` の ` enabled ` ) | 使っていなければ ** 出さないし取りにも行かない** (5 分ごとの probe を立てない) |
336+ | プラン名 + 使用状況ゲージ(ヘッダ) | ` usage ` | ` showsAccountInfo ` (一覧の表示 + ` bootstrap/usage-poller.ts ` の ` enabled ` ) | ** 既定エージェント ** が報告しなければ ** 出さないし取りにも行かない** (5 分ごとの probe を立てない) |
337337| 確認モードのフッタ表示 | ` permissions ` | ` ui/status-footer.tsx ` の ` confirmSupported ` | ` 確認モード (非対応) ` に差し替える(下記) |
338338| トランスクリプト復元 | ` transcript ` | ` bootstrap/restore-sessions.ts ` | その provider のセッションでは読みにも行かない |
339339| 認証切れの文言 | —(` AgentLabel ` ) | 一覧・詳細・通知 | 駆動中の provider のコマンド名を出す |
@@ -343,12 +343,21 @@ provider が増えてもビュー側の分岐は増えない(未登録のエ
343343「待っていれば聞かれる」と読めてしまっていた(ツールは確認なしに実行される)。ダイアログを
344344偽装しないのと同じ理由で、** モード表示の側を正直にする** 。
345345
346- ** 使用状況ゲージを消す判定** (` showsAccountUsage ` )は「新規セッションの既定エージェント、または
347- ` archived ` でないセッションのどれかが ` usage ` を報告する」。ゲージが表しているのは
348- その provider のアカウントの消費で、Codex / Grok だけで作業している人には読みようがない
349- (` archived ` を数えないのは、乗り換えた人のヘッダにマージ済みのセッション 1 件で残り続けるのを
350- 避けるため)。** 表示と取得は同じ純関数を通す** ので、出していないゲージのために
351- ` claude ` のサブプロセスが立つことはない。
346+ ** ヘッダは「次に動くエージェント」の説明** にする。エージェント名・プラン名・モデル・使用状況は
347+ 1 つのアカウントの話として同じ場所に並んでいるので、` /agent ` で既定を切り替えたら** 4 つ揃って**
348+ 入れ替わる。判定は ` showsAccountInfo ` (= 既定エージェントが ` usage ` を報告するか)1 本で、
349+ プラン名も枠も** 同じ 1 回の probe** (` utils/usage-probe.ts ` )が運ぶので分けていない。
350+ ** 表示と取得は同じ純関数を通す** ので、出していないゲージのために ` claude ` のサブプロセスが
351+ 立つことはない(既定を Claude へ戻せば次の poll から再開する)。
352+
353+ - かつては「既定エージェント ** or** ` archived ` でないセッションのどれかが報告する」で判定して
354+ いたため、Codex / Grok に切り替えても Claude のプランとゲージが残っていた。稼働中の Claude
355+ セッションの消費が覗けるという利点はあったが、ヘッダの読み方(= 既定エージェントの説明)が
356+ 項目ごとに食い違うほうが害が大きいと判断して、** 既定エージェントだけ** を見る形に狭めた。
357+ - モデル欄と既定エージェントは ** manager の購読** で読む(` ui/hooks.ts ` の ` useDefaultModel ` /
358+ ` useDefaultAgent ` 。` setModel ` / ` setDefaultAgent ` が ` store.notify() ` する)。起動時の設定値を
359+ prop で配っていたときは、` /model ` やエージェント切替(既定モデルを CLI 既定へ戻す)のあとも
360+ 前の値が居座って、実際に使われるモデルと食い違って見えていた。
352361
353362### 6. Codex アダプタ: 1 ターン = 1 プロセス
354363
0 commit comments