macOS companion app
Bilah menu
Yang ditampilkan
- Status kerja agen saat ini ditampilkan pada ikon bilah menu dan pada baris status pertama di menu.
- Status kesehatan disembunyikan saat pekerjaan aktif; status tersebut muncul kembali setelah semua sesi menganggur.
- Item "Konteks" di tingkat akar membuka submenu berisi sesi terbaru, alih-alih memperluasnya di menu akar.
- Blok "Node" di menu akar hanya mencantumkan perangkat yang dipasangkan (dari
node.list), bukan entri klien/kehadiran. - Bagian "Penggunaan" di tingkat akar muncul di bawah Konteks saat snapshot penggunaan penyedia tersedia, diikuti oleh detail biaya jika tersedia.
- Obrolan Cepat membuka penyusun sesi utama mengambang; pintasan globalnya saat ini ditampilkan di samping item tersebut.
Model status
- Sumber:
WorkActivityStore(apps/macos/Sources/OpenClaw/WorkActivityStore.swift). - Peristiwa diterima sebagai
ControlAgentEventdenganrunId; penangan (ControlChannel.routeWorkActivity) membacasessionKeydari muatan peristiwa dan menggunakan"main"sebagai nilai default jika tidak ada. - Prioritas: sesi utama (
sessionKey == "main"secara default) selalu didahulukan. Jika sesi utama aktif, statusnya langsung ditampilkan. Jika sesi utama menganggur, sesi nonutama yang terakhir aktif akan ditampilkan sebagai gantinya. Penyimpanan tidak beralih di tengah aktivitas; penyimpanan hanya beralih saat sesi saat ini menjadi menganggur atau sesi utama menjadi aktif. - Jenis aktivitas:
job: eksekusi perintah tingkat tinggi (state: started|streaming|done|error|...).tool:phase: start|resultdenganname,meta/argsopsional.
Enum IconState (Swift)
idleworkingMain(ActivityKind)workingOther(ActivityKind)overridden(ActivityKind)(penggantian debug)
ActivityKind -> simbol lencana
ActivityKind membungkus ToolKind (bash, read, write, edit, attach, other) atau job tanpa pembungkus. Masing-masing dipetakan ke lencana SF Symbol yang digambar di atas ikon makhluk (IconState.badgeSymbolName):
| Jenis | Simbol |
|---|---|
bash |
chevron.left.slash.chevron.right |
read |
doc |
write |
pencil |
edit |
pencil.tip |
attach |
paperclip |
other / job |
gearshape.fill |
Pemetaan visual
idle: makhluk normal, tanpa lencana.workingMain: lencana dengan simbol, rona penuh (prominensi.primary), animasi kaki "bekerja".workingOther: lencana dengan simbol, rona redup (prominensi.secondary), tanpa gerakan bergegas.overridden: menggunakan simbol/rona yang dipilih tanpa memedulikan aktivitas sebenarnya.
Submenu Konteks
- Menu akar menampilkan satu baris "Konteks" dengan jumlah/status sesi; baris tersebut membuka submenu (
MenuSessionsInjector). - Header submenu menampilkan jumlah sesi aktif selama 24 jam terakhir.
- Setiap baris sesi mempertahankan bilah token, usia, pratinjau, tombol beralih berpikir/verbose, serta tindakan atur ulang, ringkas, dan hapus.
- Pesan pemuatan, terputus, dan kesalahan pemuatan sesi ditampilkan di dalam submenu Konteks.
- Bagian penggunaan dan biaya tetap berada di tingkat akar di bawah Konteks agar dapat dilihat sekilas tanpa membuka submenu.
Teks baris status (menu)
- Saat pekerjaan aktif:
<Session role> · <activity label>("\(roleLabel) · \(activity.label)"dalamMenuContentView), dengan label peran berupaMainatauOther. - Saat menganggur: kembali ke ringkasan kesehatan.
Penyerapan peristiwa
- Sumber: peristiwa
agentsaluran kontrol, yang dirutekan olehControlChannel.routeWorkActivity(from:). - Bidang yang diurai:
stream: "job"dengandata.stateuntuk mulai/berhenti.stream: "tool"dengandata.phase,data.name,data.meta/data.argsopsional.
- Label alat berasal dari
ToolDisplayRegistry.resolve(name:args:meta:); nama yang tidak terselesaikan kembali menggunakan nama alat mentah.
Penggantian debug
- Pemilih Settings > Debug > "Icon override":
System (auto)(default)Working: main/Working: other(per jenis alat: bash, baca, tulis, edit, lainnya)Idle
- Disimpan di bawah kunci
openclaw.iconOverridepadaUserDefaults; dipetakan keIconState.overridden.
Daftar periksa pengujian
- Picu pekerjaan sesi utama: ikon langsung beralih dan baris status menampilkan label utama.
- Picu pekerjaan sesi nonutama saat sesi utama menganggur: ikon/status menampilkan sesi nonutama; tetap stabil hingga pekerjaan selesai.
- Mulai sesi utama saat sesi lain aktif: ikon langsung beralih ke sesi utama.
- Rentetan alat yang cepat: lencana tidak berkedip (jendela tenggang 2 detik sebelum menghapus alat yang telah selesai,
WorkActivityStore.toolResultGrace). - Baris kesehatan muncul kembali setelah semua sesi menganggur.
Terkait
Was this useful?