Zustände des Menüleistensymbols
Autor: steipete · Aktualisiert: 2025-12-06 · Geltungsbereich: macOS-App (apps/macos)
- Leerlauf: Normale Symbolanimation (Blinzeln, gelegentliches Wackeln).
- Pausiert: Das Status-Element verwendet
appearsDisabled; keine Bewegung. - Voice trigger (große Ohren): Der Voice-Wake-Detektor ruft
AppState.triggerVoiceEars(ttl: nil)auf, wenn das Wake-Word gehört wird, und hältearBoostActive=true, während die Äußerung erfasst wird. Die Ohren skalieren hoch (1,9x), erhalten zur besseren Lesbarkeit kreisförmige Ohrlöcher und werden dann überstopVoiceEars()nach 1 Sekunde Stille zurückgesetzt. Wird nur von der In-App-Voice-Pipeline ausgelöst. - Aktiv (Agent läuft):
AppState.isWorking=truesteuert eine Mikrobewegung vom Typ „Schwanz-/Bein-Geschäftigkeit“: schnellere Beinbewegungen und eine leichte Verschiebung, während Arbeit in Bearbeitung ist. Derzeit wird dies bei Agent-Läufen in WebChat umgeschaltet; fügen Sie dieselbe Umschaltung auch um andere lange Aufgaben herum hinzu, wenn Sie diese verdrahten.
- Voice Wake: Runtime/Tester rufen
AppState.triggerVoiceEars(ttl: nil)beim Trigger undstopVoiceEars()nach 1 Sekunde Stille auf, um dem Erfassungsfenster zu entsprechen. - Agent-Aktivität: Setzen Sie
AppStateStore.shared.setWorking(true/false)um Arbeitsphasen herum (bereits beim WebChat-Agent-Aufruf umgesetzt). Halten Sie die Phasen kurz und setzen Sie sie indefer-Blöcken zurück, um hängen bleibende Animationen zu vermeiden.
- Das Basissymbol wird in
CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:)gezeichnet. - Die Ohr-Skalierung ist standardmäßig
1.0; der Voice-Boost setztearScale=1.9und schaltetearHoles=true, ohne den Gesamtrahmen zu ändern (18×18-pt-Template-Bild, gerendert in einen 36×36-px-Retina-Backing-Store). - Die Geschäftigkeit verwendet Beinbewegungen bis etwa ~1.0 mit einem kleinen horizontalen Zucken; sie kommt zu bestehendem Wackeln im Leerlauf additiv hinzu.
- Kein externer CLI-/Broker-Schalter für Ohren/Aktivität; belassen Sie dies intern bei den eigenen Signalen der App, um unbeabsichtigtes Hin- und Herflattern zu vermeiden.
- Halten Sie TTLs kurz (<10s), damit das Symbol schnell zum Grundzustand zurückkehrt, falls ein Job hängt.