Skip to main content

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

  • वर्तमान एजेंट कार्य स्थिति मेनू बार आइकन और मेनू की पहली स्थिति पंक्ति में दिखाई देती है।
  • कार्य सक्रिय रहने के दौरान स्वास्थ्य स्थिति छिपी रहती है; सभी सत्र निष्क्रिय होने पर यह फिर दिखाई देती है।
  • रूट “संदर्भ” आइटम, हाल के सत्रों को रूट मेनू में विस्तृत करने के बजाय उनके साथ एक सबमेनू खोलता है।
  • रूट मेनू का “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 बैज से मैप किया जाता है:

दृश्य मैपिंग

  • 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)।
  • सभी सत्र निष्क्रिय होने पर स्वास्थ्य पंक्ति फिर दिखाई देती है।

संबंधित