OpenClawSkills
GitHub
Plataformas • 5 min de lectura

Barra de Menú

Lógica de estado de la barra de menú y qué se muestra a los usuarios

Tutorial.step

Qué se muestra

- Mostramos el estado de trabajo actual del agente en el icono de la barra de menú y en la primera fila de estado del menú.

- El estado de salud está oculto mientras el trabajo está activo; regresa cuando todas las sesiones están inactivas.

- El bloque "Nodos" en el menú lista solo ''dispositivos'' (nodos emparejados via ''node.list''), no entradas de cliente/presencia.

- Una sección "Uso" aparece bajo Contexto cuando hay disponibles instantáneas de uso del proveedor.

Tutorial.step

Modelo de estado

- Sesiones: los eventos llegan con ''runId'' (por ejecución) más ''sessionKey'' en el payload. La sesión "main" es la clave ''main''; si está ausente, recurrimos a la sesión actualizada más recientemente.

- Prioridad: main siempre gana. Si main está activo, su estado se muestra inmediatamente. Si main está inactivo, se muestra la sesión no-main activa más recientemente. No alternamos a mitad de actividad; solo cambiamos cuando la sesión actual se vuelve inactiva o main se vuelve activo.

- Tipos de actividad:

- ''job'': ejecución de comando de alto nivel (''state: started|streaming|done|error'').

- ''tool'': ''phase: start|result'' con ''toolName'' y ''meta/args''.

Tutorial.step

Enum IconState (Swift)

- ''idle''

- ''workingMain(ActivityKind)''

- ''workingOther(ActivityKind)''

- ''overridden(ActivityKind)'' (sobrescritura de depuración)

Tutorial.step

ActivityKind → glifo

- ''exec'' → 💻

- ''read'' → 📄

- ''write'' → ✍️

- ''edit'' → 📝

- ''attach'' → 📎

- predeterminado → 🛠️

Tutorial.step

Mapeo visual

- ''idle'': critter normal.

- ''workingMain'': distintivo con glifo, tinte completo, animación de pata "trabajando".

- ''workingOther'': distintivo con glifo, tinte apagado, sin correteo.

- ''overridden'': usa el glifo/tinte elegido sin importar la actividad.

Tutorial.step

Texto de fila de estado (menú)

- Mientras el trabajo está activo: ''<Rol de sesión> · <etiqueta de actividad>''

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

- Cuando está inactivo: regresa al resumen de salud.

Tutorial.step

Ingesta de eventos

- Fuente: eventos ''agent'' del canal de control (''ControlChannel.handleAgentEvent'').

- Campos parseados:

- ''stream: "job"'' con ''data.state'' para inicio/parada.

- ''stream: "tool"'' con ''data.phase'', ''name'', opcional ''meta''/''args''.

- Etiquetas:

- ''exec'': primera línea de ''args.command''.

- ''read''/''write'': ruta acortada.

- ''edit'': ruta más tipo de cambio inferido de conteos ''meta''/diff.

- respaldo: nombre de herramienta.

Tutorial.step

Sobrescritura de depuración

- ''OPENCLAW_MENU_OVERRIDE=exec'' fuerza el icono a mostrar estado de ejecución.

- Útil para probar animaciones y tintes sin necesidad de actividad real.

- Eliminar la variable para volver al comportamiento normal.

PlatformsMacMenubarPage.step08.p4

PlatformsMacMenubarPage.step08.p5

PlatformsMacMenubarPage.step08.p6

Tutorial.step

PlatformsMacMenubarPage.step09.title

PlatformsMacMenubarPage.step09.p1

PlatformsMacMenubarPage.step09.p2

PlatformsMacMenubarPage.step09.p3

PlatformsMacMenubarPage.step09.p4

PlatformsMacMenubarPage.step09.p5