---
read_when:
    - Mac मेनू UI या स्थिति लॉजिक में बदलाव करना
summary: मेनू बार की स्थिति का तर्क और उपयोगकर्ताओं को दिखाई जाने वाली जानकारी
title: मेनू बार
x-i18n:
    generated_at: "2026-07-27T19:32:19Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: d53cd15109864b88010f41ccf4c46ea7fff6721bc6632630d83a558084cb2d62
    source_path: platforms/mac/menu-bar.md
    workflow: 16
---

## क्या दिखाया जाता है

- वर्तमान एजेंट कार्य स्थिति मेनू बार आइकन और मेनू की पहली स्थिति पंक्ति में दिखाई देती है।
- कार्य सक्रिय रहने के दौरान स्वास्थ्य स्थिति छिपी रहती है; सभी सत्र निष्क्रिय होने पर यह फिर दिखाई देती है।
- रूट "संदर्भ" आइटम, हाल के सत्रों को रूट मेनू में विस्तृत करने के बजाय उनके साथ एक सबमेनू खोलता है।
- रूट मेनू का "Nodes" खंड केवल युग्मित **डिवाइस** सूचीबद्ध करता है (`node.list` से), क्लाइंट/उपस्थिति प्रविष्टियाँ नहीं।
- प्रदाता उपयोग के स्नैपशॉट उपलब्ध होने पर संदर्भ के नीचे रूट "उपयोग" अनुभाग दिखाई देता है, जिसके बाद उपलब्ध होने पर लागत का विवरण दिखता है।
- **त्वरित चैट** फ़्लोटिंग मुख्य-सत्र कंपोज़र खोलता है; इसका वर्तमान वैश्विक शॉर्टकट आइटम के बगल में दिखाई देता है।

## स्थिति मॉडल

- स्रोत: `WorkActivityStore` (`apps/macos/Sources/OpenClaw/WorkActivityStore.swift`)।
- ईवेंट `runId` के साथ `ControlAgentEvent` के रूप में आते हैं; हैंडलर (`ControlChannel.routeWorkActivity`) ईवेंट पेलोड से `sessionKey` पढ़ता है और अनुपस्थित होने पर डिफ़ॉल्ट रूप से `"main"` का उपयोग करता है।
- प्राथमिकता: मुख्य सत्र (डिफ़ॉल्ट रूप से `sessionKey == "main"`) हमेशा प्राथमिक होता है। यदि मुख्य सत्र सक्रिय है, तो उसकी स्थिति तुरंत दिखाई देती है। यदि मुख्य सत्र निष्क्रिय है, तो उसके बजाय सबसे हाल में सक्रिय गैर-मुख्य सत्र दिखाई देता है। गतिविधि के बीच स्टोर नहीं बदलता; यह केवल तभी बदलता है जब वर्तमान सत्र निष्क्रिय हो जाए या मुख्य सत्र सक्रिय हो जाए।
- गतिविधि के प्रकार:
  - `job`: उच्च-स्तरीय कमांड निष्पादन (`state: started|streaming|done|error|...`)।
  - `tool`: `name` के साथ `phase: start|result`, वैकल्पिक `meta`/`args`।

## IconState एनम (Swift)

- `idle`
- `workingMain(ActivityKind)`
- `workingOther(ActivityKind)`
- `overridden(ActivityKind)` (डीबग ओवरराइड)

### ActivityKind -> बैज प्रतीक

`ActivityKind` एक `ToolKind` (`bash`, `read`, `write`, `edit`, `attach`, `other`) या केवल `job` को रैप करता है। प्रत्येक को क्रिटर आइकन (`IconState.badgeSymbolName`) के ऊपर बनाए गए SF Symbol बैज से मैप किया जाता है:

| प्रकार            | प्रतीक                             |
| --------------- | ---------------------------------- |
| `bash`          | `chevron.left.slash.chevron.right` |
| `read`          | `doc`                              |
| `write`         | `pencil`                           |
| `edit`          | `pencil.tip`                       |
| `attach`        | `paperclip`                        |
| `other` / `job` | `gearshape.fill`                   |

### दृश्य मैपिंग

- `idle`: सामान्य क्रिटर, कोई बैज नहीं।
- `workingMain`: प्रतीक वाला बैज, पूर्ण टिंट (`.primary` प्रमुखता), पैरों का "कार्यरत" एनिमेशन।
- `workingOther`: प्रतीक वाला बैज, मंद टिंट (`.secondary` प्रमुखता), कोई तेज़ गति नहीं।
- `overridden`: वास्तविक गतिविधि की परवाह किए बिना चुने गए प्रतीक/टिंट का उपयोग करता है।

## संदर्भ सबमेनू

- रूट मेनू सत्र संख्या/स्थिति के साथ एक "संदर्भ" पंक्ति दिखाता है; यह एक सबमेनू (`MenuSessionsInjector`) खोलता है।
- सबमेनू हेडर पिछले 24 घंटों के सक्रिय सत्रों की संख्या दिखाता है।
- प्रत्येक सत्र पंक्ति अपना टोकन बार, आयु, पूर्वावलोकन, चिंतन/विस्तृत टॉगल, रीसेट, संक्षिप्त करने और हटाने की कार्रवाइयाँ बनाए रखती है।
- लोडिंग, डिस्कनेक्ट होने और सत्र लोड करने में त्रुटि के संदेश संदर्भ सबमेनू के अंदर दिखाई देते हैं।
- उपयोग और लागत अनुभाग संदर्भ के नीचे रूट स्तर पर रहते हैं, ताकि सबमेनू खोले बिना उन पर एक नज़र डाली जा सके।

## स्थिति पंक्ति का टेक्स्ट (मेनू)

- कार्य सक्रिय रहने के दौरान: `<Session role> · <activity label>` (`MenuContentView` में `"\(roleLabel) · \(activity.label)"`), जहाँ भूमिका लेबल `Main` या `Other` है।
- निष्क्रिय होने पर: स्वास्थ्य सारांश पर वापस जाता है।

## ईवेंट अंतर्ग्रहण

- स्रोत: नियंत्रण-चैनल के `agent` ईवेंट, जिन्हें `ControlChannel.routeWorkActivity(from:)` द्वारा रूट किया जाता है।
- पार्स किए गए फ़ील्ड:
  - प्रारंभ/समाप्ति के लिए `data.state` के साथ `stream: "job"`।
  - `data.phase`, `data.name`, और वैकल्पिक `data.meta`/`data.args` के साथ `stream: "tool"`।
- टूल लेबल `ToolDisplayRegistry.resolve(name:args:meta:)` से आते हैं; जिन नामों का समाधान नहीं होता, उनके लिए मूल टूल नाम का उपयोग किया जाता है।

## डीबग ओवरराइड

- Settings > Debug > "Icon override" चयनकर्ता:
  - `System (auto)` (डिफ़ॉल्ट)
  - `Working: main` / `Working: other` (प्रत्येक टूल प्रकार के लिए: bash, read, write, edit, other)
  - `Idle`
- `UserDefaults` की `openclaw.iconOverride` कुंजी के अंतर्गत संग्रहीत; `IconState.overridden` से मैप किया गया।

## परीक्षण जाँच-सूची

- मुख्य सत्र का कार्य ट्रिगर करें: आइकन तुरंत बदल जाता है और स्थिति पंक्ति मुख्य लेबल दिखाती है।
- मुख्य सत्र निष्क्रिय होने पर गैर-मुख्य सत्र का कार्य ट्रिगर करें: आइकन/स्थिति गैर-मुख्य सत्र दिखाते हैं; उसके समाप्त होने तक स्थिर रहते हैं।
- किसी अन्य सत्र के सक्रिय रहने के दौरान मुख्य सत्र प्रारंभ करें: आइकन तुरंत मुख्य सत्र पर बदल जाता है।
- तेज़ टूल बर्स्ट: बैज झिलमिलाता नहीं है (समाप्त टूल को हटाने से पहले 2s की अनुग्रह अवधि, `WorkActivityStore.toolResultGrace`)।
- सभी सत्र निष्क्रिय होने पर स्वास्थ्य पंक्ति फिर दिखाई देती है।

## संबंधित

- [macOS ऐप](/hi/platforms/macos)
- [मेनू बार आइकन](/hi/platforms/mac/icon)
