États de l’icône de la barre des menus
Périmètre : application macOS (apps/macos). Rendu : CritterIconRenderer.makeIcon(...). Gestion de l’animation et de l’état : CritterStatusLabel + CritterStatusLabel+Behavior.swift.
États
Un badge d’activité d’outil (pastille avec un symbole SF, par exemple
chevron.left.slash.chevron.right pour l’exécution) peut s’afficher par-dessus la même icône de créature lorsqu’une session comporte une tâche ou un outil actif. Ce badge provient de IconState/ActivityKind ; consultez Barre des menus pour le modèle d’état complet.
Oreilles de réveil vocal
- Déclencheur :
AppStateStore.shared.triggerVoiceEars(ttl: nil), appelé depuis le pipeline de capture du réveil vocal (VoiceWakeRuntime) et depuis les outils de débogage/test du réveil vocal (VoiceWakeTester,VoiceWakeOverlayController). - Arrêt :
stopVoiceEars(), appelé lorsque la capture se termine. - Fenêtre de silence avant la finalisation :
2.0snormalement,5.0ssi seul le mot déclencheur a été entendu sans aucune parole supplémentaire (VoiceWakeRuntime.silenceWindow/triggerOnlySilenceWindow). - Pendant l’amplification, les minuteurs de clignement, d’oscillation, des pattes et des oreilles au repos sont suspendus (
earBoostActivecontrôle la tâche d’animation dansCritterStatusLabel+Behavior).
Formes et dimensions
- Canevas : image modèle de 18x18pt, rendue dans un tampon bitmap de 36x36px (2x) afin que l’icône reste nette sur les écrans Retina.
- L’échelle des oreilles vaut
1.0par défaut ; l’amplification vocale définitearScale=1.9sans modifier le cadre global. antennaDroop(0-1) rabat les antennes pour les poses en pause et endormie.- Le mouvement précipité des pattes utilise
legWigglejusqu’à1.0, avec une légère oscillation horizontale.
Remarques comportementales
- Aucun commutateur CLI/courtier externe ne contrôle les oreilles ni l’état de travail ; tous deux sont pilotés en interne par les signaux de l’application (
AppState.setWorking,AppState.triggerVoiceEars) afin d’éviter des basculements intempestifs. - Toute nouvelle TTL doit rester courte (bien inférieure à 10s) afin que l’icône revienne rapidement à son état de référence si une tâche se bloque.