macOS companion app

نوار منو

چه چیزی نمایش داده می‌شود

  • وضعیت فعلی کار عامل در نماد نوار منو و نخستین ردیف وضعیت منو نمایش داده می‌شود.
  • هنگام فعال بودن کار، وضعیت سلامت پنهان است؛ پس از بی‌کار شدن همهٔ نشست‌ها دوباره نمایش داده می‌شود.
  • یک مورد ریشه‌ای با عنوان «زمینه» به‌جای گسترش نشست‌های اخیر در منوی ریشه، زیرمنویی شامل آن‌ها باز می‌کند.
  • یک بخش «گره‌ها» در منوی ریشه فقط دستگاه‌های جفت‌شده (از node.list) را فهرست می‌کند، نه ورودی‌های کلاینت/حضور را.
  • هنگامی که نماهای لحظه‌ای مصرف ارائه‌دهنده در دسترس باشند، بخشی ریشه‌ای با عنوان «مصرف» زیر «زمینه» ظاهر می‌شود و در صورت موجود بودن، جزئیات هزینه پس از آن نمایش داده می‌شود.

مدل وضعیت

  • منبع: WorkActivityStore (apps/macos/Sources/OpenClaw/WorkActivityStore.swift).
  • رویدادها به‌شکل ControlAgentEvent همراه با یک runId می‌رسند؛ کنترل‌گر (ControlChannel.routeWorkActivity) مقدار sessionKey را از بار دادهٔ رویداد می‌خواند و اگر وجود نداشته باشد، مقدار پیش‌فرض "main" را به‌کار می‌برد.
  • اولویت: نشست اصلی (به‌طور پیش‌فرض sessionKey == "main") همیشه اولویت دارد. اگر نشست اصلی فعال باشد، وضعیت آن بلافاصله نمایش داده می‌شود. اگر نشست اصلی بی‌کار باشد، به‌جای آن آخرین نشست غیر اصلیِ فعال نمایش داده می‌شود. مخزن هنگام فعالیت وضعیت را تغییر نمی‌دهد؛ تنها زمانی جابه‌جا می‌شود که نشست فعلی بی‌کار شود یا نشست اصلی فعال گردد.
  • انواع فعالیت:
    • job: اجرای دستور سطح‌بالا (state: started|streaming|done|error|...).
    • tool: مقدار phase: start|result همراه با name و meta/args اختیاری.

شمارش IconState ‏(Swift)

  • idle
  • workingMain(ActivityKind)
  • workingOther(ActivityKind)
  • overridden(ActivityKind) (بازنویسی اشکال‌زدایی)

ActivityKind ← نماد نشان

ActivityKind یک ToolKind ‏(bash، read، write، edit، attach، other) یا یک job مستقل را دربر می‌گیرد. هرکدام به یک نماد SF نگاشت می‌شوند که روی نماد جانورک ترسیم می‌شود (IconState.badgeSymbolName):

نوع نماد
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) را باز می‌کند.
  • سرآیند زیرمنو تعداد نشست‌های فعال در ۲۴ ساعت گذشته را نشان می‌دهد.
  • هر ردیف نشست، نوار توکن، سن، پیش‌نمایش، کلید تغییر حالت تفکر/مشروح، و کنش‌های بازنشانی، فشرده‌سازی و حذف خود را حفظ می‌کند.
  • پیام‌های بارگذاری، قطع اتصال و خطای بارگذاری نشست درون زیرمنوی زمینه نمایش داده می‌شوند.
  • بخش‌های مصرف و هزینه در سطح اصلی و زیر زمینه باقی می‌مانند تا بدون باز کردن زیرمنو با یک نگاه قابل مشاهده باشند.

متن ردیف وضعیت (منو)

  • هنگام فعال بودن کار: &lt;Session role&gt; · <activity label> ("\(roleLabel) · \(activity.label)" در MenuContentView)؛ برچسب نقش Main یا Other است.
  • در حالت بی‌کاری: به خلاصهٔ سلامت بازمی‌گردد.

دریافت رویدادها

  • منبع: رویدادهای agent در کانال کنترل که توسط ControlChannel.routeWorkActivity(from:) مسیریابی می‌شوند.
  • فیلدهای تجزیه‌شده:
    • stream: "job" به‌همراه data.state برای شروع/توقف.
    • stream: "tool" به‌همراه data.phase، data.name و در صورت وجود data.meta/data.args.
  • برچسب ابزارها از ToolDisplayRegistry.resolve(name:args:meta:) به‌دست می‌آیند؛ برای نام‌های حل‌نشده، از نام خام ابزار استفاده می‌شود.

بازنویسی اشکال‌زدایی

  • Settings > Debug > انتخابگر "Icon override":
    • System (auto) (پیش‌فرض)
    • Working: main / Working: other (برای هر نوع ابزار: bash، خواندن، نوشتن، ویرایش، سایر)
    • Idle
  • در کلید openclaw.iconOverride از UserDefaults ذخیره و به IconState.overridden نگاشت می‌شود.

فهرست بررسی آزمایش

  • کار نشست اصلی را فعال کنید: نماد فوراً تغییر می‌کند و ردیف وضعیت برچسب اصلی را نشان می‌دهد.
  • هنگامی که نشست اصلی بیکار است، کار نشست غیراصلی را فعال کنید: نماد/وضعیت نشست غیراصلی را نشان می‌دهد و تا پایان آن ثابت می‌ماند.
  • هنگامی که نشست دیگری فعال است، نشست اصلی را شروع کنید: نماد فوراً به حالت اصلی تغییر می‌کند.
  • فوران‌های سریع ابزار: نشان چشمک نمی‌زند (مهلت ۲ ثانیه‌ای پیش از پاک‌کردن ابزار پایان‌یافته، WorkActivityStore.toolResultGrace).
  • پس از بیکارشدن همهٔ نشست‌ها، ردیف سلامت دوباره ظاهر می‌شود.

مرتبط

Was this useful?
On this page

On this page