hermes-agent/apps
Teknium 46faa4f639
fix(desktop): keep the wake-word ear mounted everywhere — paused only during voice chat
The ear vanished whenever a voice conversation ran (the ConversationPill
replaces the whole controls row) and whenever a transient start refusal
marked the feature unavailable — so a persistent, config-backed setting
silently disappeared mid-session. The wake word is passive by design:
it should be visibly listening no matter what the GUI is doing, with
exactly one pause state — an active voice chat holding the mic.

- ConversationPill now renders the ear in paused form (disabled, EarOff,
  'paused during voice chat' tooltip) so voice chat shows the listener
  yielding the mic instead of the toggle vanishing.
- WakeWordButton hides only when the feature can't run AND isn't enabled
  in config; $wakeWord gains 'enabled' (config truth from wake.status /
  start/stop responses) so transient 'unavailable' refusals no longer
  unmount the button.
- Busy agent turns never touched the listener (it keeps listening
  through agent loops; wake.detected already opens a fresh session),
  and now they can't hide the toggle either.
- New i18n key wakeWordPausedVoice across en/ja/zh/zh-hant.

Tests: ear mounted during busy turn, mounted through refusal when
config-enabled, hidden when unavailable+disabled, paused ear disabled
inside the pill. 29 vitest green across controls + wake-word store.
2026-07-28 07:59:34 -07:00
..
bootstrap-installer fix(installer): stamp the bootstrap-complete marker from the Rust installer 2026-07-26 16:02:13 -05:00
desktop fix(desktop): keep the wake-word ear mounted everywhere — paused only during voice chat 2026-07-28 07:59:34 -07:00
shared refactor: drop the shared subpath export, keeping package.json untouched 2026-07-28 03:54:49 -05:00