Traductions communautaires par veiseule.ai — Help improve them on Crowdin
Aller au contenu principal

Logique de statut de la barre de menus¶

Ce qui est affiché¶

  • Nous affichons l’état de travail actuel de l’agent dans l’icĂŽne de la barre de menus et dans la premiĂšre ligne de statut du menu.
  • L’état de santĂ© est masquĂ© pendant que le travail est actif ; il rĂ©apparaĂźt lorsque toutes les sessions sont inactives.
  • Le bloc « Nodes » du menu liste uniquement les appareils (nƓuds appairĂ©s via node.list), et non les entrĂ©es client/prĂ©sence.
  • Une section « Usage » apparaĂźt sous Context lorsque des instantanĂ©s d’utilisation du fournisseur sont disponibles.

ModĂšle d’état¶

  • Sessions : les Ă©vĂ©nements arrivent avec runId (par exĂ©cution) plus sessionKey dans la charge utile. La session « principale » est la clĂ© main ; si elle est absente, nous revenons Ă  la session mise Ă  jour le plus rĂ©cemment.
  • Priorité : la session principale l’emporte toujours. Si la principale est active, son Ă©tat est affichĂ© immĂ©diatement. Si la principale est inactive, la session non principale la plus rĂ©cemment active est affichĂ©e. Nous n’alter­nons pas en cours d’activitĂ© ; nous basculons uniquement lorsque la session courante devient inactive ou que la principale devient active.
  • Types d’activité :
  • job : exĂ©cution de commandes de haut niveau (state: started|streaming|done|error).
  • tool : phase: start|result avec toolName et meta/args.

Enum IconState (Swift)¶

  • idle
  • workingMain(ActivityKind)
  • workingOther(ActivityKind)
  • overridden(ActivityKind) (remplacement de dĂ©bogage)

ActivityKind → glyphe¶

  • exec → đŸ’»
  • read → 📄
  • write → ✍
  • edit → 📝
  • attach → 📎
  • par dĂ©faut → đŸ› ïž

Mappage visuel¶

  • idle : crĂ©ature normale.
  • workingMain : badge avec glyphe, teinte complĂšte, animation de pattes « en travail ».
  • workingOther : badge avec glyphe, teinte attĂ©nuĂ©e, pas de dĂ©placement.
  • overridden : utilise le glyphe/la teinte choisis indĂ©pendamment de l’activitĂ©.

Texte de la ligne de statut (menu)¶

  • Pendant que le travail est actif : <Session role> · <activity label>
  • Exemples : Main · exec: pnpm test, Other · read: apps/macos/Sources/OpenClaw/AppState.swift.
  • À l’inactivité : retour au rĂ©capitulatif de santĂ©.

Ingestion des événements¶

  • Source : Ă©vĂ©nements agent du canal de contrĂŽle (ControlChannel.handleAgentEvent).
  • Champs analysĂ©s :
  • stream: "job" avec data.state pour dĂ©marrage/arrĂȘt.
  • stream: "tool" avec data.phase, name, meta/args optionnels.
  • LibellĂ©s :
  • exec : premiĂšre ligne de args.command.
  • read/write : chemin raccourci.
  • edit : chemin plus type de modification dĂ©duit de meta/comptes de diff.
  • repli : nom de l’outil.

Forçage du mode débogage¶

  • RĂ©glages ▾ Debug ▾ sĂ©lecteur « Icon override » :
  • System (auto) (par dĂ©faut)
  • Working: main (par type d’outil)
  • Working: other (par type d’outil)
  • Idle
  • StockĂ© via @AppStorage("iconOverride") ; mappĂ© vers IconState.overridden.

Liste de vérification de test¶

  • DĂ©clencher un job de la session principale : vĂ©rifier que l’icĂŽne bascule immĂ©diatement et que la ligne de statut affiche le libellĂ© principal.
  • DĂ©clencher un job de session non principale lorsque la principale est inactive : l’icĂŽne/le statut affichent la non principale ; restent stables jusqu’à la fin.
  • DĂ©marrer la principale alors qu’une autre est active : l’icĂŽne bascule instantanĂ©ment vers la principale.
  • Rafales rapides d’outils : s’assurer que le badge ne scintille pas (dĂ©lai de grĂące TTL sur les rĂ©sultats d’outils).
  • La ligne de santĂ© rĂ©apparaĂźt une fois toutes les sessions inactives.