Application compagnon macOS
Icône de la barre de menus
Auteur : steipete · Mis à jour : 2025-12-06 · Périmètre : application macOS (apps/macos)
- Inactif : Animation normale de l'icône (clignotement, mouvement occasionnel).
- En pause : L'élément de statut utilise
appearsDisabled; pas de mouvement. - Déclenchement vocal (grandes oreilles) : Le détecteur de réveil vocal appelle
AppState.triggerVoiceEars(ttl: nil)lorsque le mot d'activation est entendu, maintenantearBoostActive=truependant la capture de l'énoncé. Les oreilles augmentent d'échelle (1,9x), obtiennent des trous d'oreille circulaires pour la lisibilité, puis redescendent viastopVoiceEars()après 1s de silence. Seulement déclenché depuis le pipeline vocal intégré à l'application. - En cours d'exécution (agent actif) :
AppState.isWorking=trueentraîne un micro-mouvement de « remuement de queue/pattes » : mouvement plus rapide des pattes et léger décalage pendant le travail. Actuellement basculé autour des exécutions de l'agent WebChat ; ajoutez la même bascule autour d'autres tâches longues lorsque vous les connectez.
Points de connexion
- Réveil vocal : l'exécution/le testeur appelle
AppState.triggerVoiceEars(ttl: nil)lors du déclenchement etstopVoiceEars()après 1s de silence pour correspondre à la fenêtre de capture. - Activité de l'agent : définissez
AppStateStore.shared.setWorking(true/false)autour des périodes de travail (déjà fait dans l'appel de l'agent WebChat). Gardez les périodes courtes et réinitialisez dans des blocsdeferpour éviter les animations bloquées.
Formes et tailles
- Icône de base dessinée dans
CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:). - L'échelle des oreilles est par défaut à
1.0; le boost vocal définitearScale=1.9et activeearHoles=truesans changer le cadre global (image modèle 18×18 pt rendue dans un stockage de support Retina 36×36 px). - Le remuement utilise un mouvement des pattes jusqu'à ~1,0 avec une petite secousse horizontale ; il s'ajoute à tout mouvement d'inactivité existant.
Notes comportementales
- Pas de bascule CLI/broker externe pour les oreilles/l'activité ; gardez cela interne aux signaux propres de l'application pour éviter un battement accidentel.
- Gardez les TTL courts (<10s) pour que l'icône revienne rapidement à l'état de base si un travail se bloque.