fix(voice): remove per-tool-call beep in CLI voice mode (#25967)

The spinner already shows tool activity visually; the 1.2 kHz tone on
every tool.started event was unwanted noise (especially on WSL2, where
each beep also triggers Windows Terminal's bell notification).

Removed the play_beep call in _on_tool_progress entirely. Record
start/stop beeps (gated by voice.beep_enabled) are unaffected.
This commit is contained in:
Teknium 2026-05-14 15:12:10 -07:00 committed by GitHub
parent 7bf66a07bd
commit 6244535682
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

16
cli.py
View file

@ -9375,7 +9375,7 @@ class HermesCLI:
Updates the TUI spinner widget so the user can see what the agent Updates the TUI spinner widget so the user can see what the agent
is doing during tool execution (fills the gap between thinking is doing during tool execution (fills the gap between thinking
spinner and next response). Also plays audio cue in voice mode. spinner and next response).
On tool.started, records a monotonic timestamp so get_spinner_text() On tool.started, records a monotonic timestamp so get_spinner_text()
can show a live elapsed timer (the TUI poll loop already invalidates can show a live elapsed timer (the TUI poll loop already invalidates
@ -9454,20 +9454,6 @@ class HermesCLI:
) )
self._invalidate() self._invalidate()
if not self._voice_mode:
return
if not function_name or function_name.startswith("_"):
return
try:
from tools.voice_mode import play_beep
threading.Thread(
target=play_beep,
kwargs={"frequency": 1200, "duration": 0.06, "count": 1},
daemon=True,
).start()
except Exception:
pass
def _on_tool_start(self, tool_call_id: str, function_name: str, function_args: dict): def _on_tool_start(self, tool_call_id: str, function_name: str, function_args: dict):
"""Capture local before-state for write-capable tools.""" """Capture local before-state for write-capable tools."""
try: try: