OpenClawSkills
GitHub
プラットフォーム • 5分で読める

メニューバー

メニューバーのステータスロジックとユーザーに表示される内容

Tutorial.step

表示内容

- メニューバーアイコンとメニューの最初のステータス行に現在のエージェント作業状態を表示します。

- 作業がアクティブな間、健康状態は非表示になります。すべてのセッションがアイドル状態になると戻ります。

- メニューの "Nodes" ブロックは''デバイス''のみをリストします(''node.list'' 経由のペアリングされたノード)、クライアント/プレゼンスエントリではありません。

- プロバイダーの使用スナップショットが利用可能な場合、Context の下に "Usage" セクションが表示されます。

Tutorial.step

状態モデル

- セッション:イベントは ''runId''(実行ごと)とペイロード内の ''sessionKey'' で到着します。「main」セッションはキー ''main'' です。存在しない場合、最後に更新されたセッションにフォールバックします。

- 優先順位:main が常に勝ちます。main がアクティブな場合、その状態がすぐに表示されます。main がアイドルな場合、最後にアクティブだった非 main セッションが表示されます。アクティビティの途中でフリップフロップしません。現在のセッションがアイドルになるか main がアクティブになったときにのみ切り替えます。

- アクティビティの種類:

- ''job'':高レベルのコマンド実行(''state: started|streaming|done|error'')。

- ''tool'':''phase: start|result''、''toolName''、''meta/args'' を伴います。

Tutorial.step

IconState enum (Swift)

- ''idle''

- ''workingMain(ActivityKind)''

- ''workingOther(ActivityKind)''

- ''overridden(ActivityKind)''(デバッグオーバーライド)

Tutorial.step

ActivityKind → グリフ

- ''exec'' → 💻

- ''read'' → 📄

- ''write'' → ✍️

- ''edit'' → 📝

- ''attach'' → 📎

- デフォルト → 🛠️

Tutorial.step

視覚的マッピング

- ''idle'':通常のクリッター。

- ''workingMain'':グリフ、完全な色調、脚の「作業中」アニメーションを伴うバッジ。

- ''workingOther'':グリフ、ミュートされた色調、急走なしのバッジ。

- ''overridden'':アクティビティに関係なく、選択されたグリフ/色調を使用します。

Tutorial.step

ステータス行テキスト(メニュー)

- 作業がアクティブな間:''<Session role> · <activity label>''

- Examples: ''Main · exec: pnpm test'', ''Other · read: apps/macos/Sources/OpenClaw/AppState.swift''.

- アイドル時:健康サマリーにフォールバックします。

Tutorial.step

イベント取り込み

- ソース:コントロールチャネル ''agent'' イベント(''ControlChannel.handleAgentEvent'')。

- 解析されたフィールド:

- ''stream: "job"''、開始/停止用の ''data.state'' を伴います。

- ''stream: "tool"''、''data.phase''、''name''、オプションの ''meta''/''args'' を伴います。

- ラベル:

- ''exec'':''args.command'' の最初の行。

- ''read''/''write'':短縮されたパス。

- ''edit'':''meta''/diff カウントから推測される変更種類を加えたパス。

- フォールバック:ツール名。

Tutorial.step

デバッグオーバーライド

- 設定 ▸ デバッグ ▸ "Icon override" ピッカー:

- ''System (auto)''(デフォルト)

- ''Working: main''(ツール種類ごと)

- ''Working: other''(ツール種類ごと)

- ''Idle''

- ''@AppStorage("iconOverride")'' 経由で保存;''IconState.overridden'' にマッピングされます。

Tutorial.step

テストチェックリスト

- メインセッションジョブをトリガーします:アイコンがすぐに切り替わり、ステータス行にメインラベルが表示されることを確認します。

- メインがアイドルの間に非メインセッションジョブをトリガーします:アイコン/ステータスが非メインを表示します。完了まで安定しています。

- 他がアクティブな間にメインを開始します:アイコンがすぐにメインにフリップします。

- 急速なツールバースト:バッジがフリッカーしないことを確認します(ツール結果の TTL グレース)。

- すべてのセッションがアイドルになると、健康行が再表示されます。