hermes-agent/tools
Teknium 0f64557c06 fix(wake): coerce dead onnx->tflite on macOS ARM64; clear stale voice turn-timeout
Two follow-ups from the voice PR (#70509).

1. macOS ARM64 onnx migration. Existing users who pinned
   openwakeword.inference_framework=onnx before the tflite fix landed kept a
   wake word that arms but never fires (ONNX's embedding model is broken on
   Apple Silicon, upstream #336). New resolve_inference_framework() honors an
   explicit framework everywhere ONNX actually works, but coerces the one
   provably-dead combination (explicit onnx + macOS ARM64) to tflite with a
   one-time warning. No config mutation; empty still falls back to the platform
   default. Both read sites (engine init + requirements check) route through
   the shared resolver.

2. Voice turn-timeout leak. Each listen cycle reassigned turnTimeoutRef
   without clearing the prior 60s timer, so a stale timer from an earlier
   cycle could fire handleTurn() mid-way through a later listen — after enough
   idle re-listens this wedged the loop into a non-re-arming state (the
   'voice chat deactivates after ~a minute' report). Clear before re-arm.

Tests: 64 wake tests (added onnx-coercion / intel-kept / tflite-kept /
empty-default cases; updated the stale 'explicit onnx kept on ARM64' test
that encoded the old broken behavior), 39 desktop voice/wake vitest, tsc +
eslint clean.
2026-07-28 19:40:25 -07:00
..
computer_use fix(computer_use): revive ended cua-driver sessions once 2026-07-28 14:24:30 -07:00
environments fix(environments): exclude multiline session env from terminal snapshots 2026-07-26 19:30:02 -07:00
neutts_samples
wakewords
__init__.py
ansi_strip.py
approval.py
async_delegation.py
audio_container.py
binary_extensions.py
blueprints.py
browser_camofox.py fix(browser): block Camofox input on private pages 2026-07-03 03:27:47 -07:00
browser_camofox_state.py
browser_cdp_tool.py
browser_dialog_tool.py
browser_supervisor.py
browser_tool.py
budget_config.py
checkpoint_manager.py
clarify_gateway.py
clarify_tool.py
close_terminal_tool.py
code_execution_tool.py
computer_use_tool.py
credential_files.py
cronjob_tools.py
daemon_pool.py
debug_helpers.py
delegate_tool.py
delegation_live_log.py
desktop_ui.py
discord_tool.py
env_passthrough.py
env_probe.py
fal_common.py
feishu_doc_tool.py
feishu_drive_tool.py perf(cli): cut ~19s from 'hermes' cold start (skills cache + lazy Feishu + no Nous HTTP) (#22138) 2026-05-08 16:39:32 -07:00
file_operations.py
file_state.py
file_tools.py
focus_pane_tool.py
fuzzy_match.py
homeassistant_tool.py
hook_output_spill.py
image_generation_tool.py
image_source.py
interrupt.py
kanban_tools.py
lazy_deps.py
managed_tool_gateway.py
mcp_dashboard_oauth.py
mcp_oauth.py
mcp_oauth_manager.py fix(mcp): make Figma remote OAuth work via DCR allowlist defaults 2026-07-28 00:53:16 -05:00
mcp_stdio_watchdog.py
mcp_tool.py
memory_tool.py
microsoft_graph_auth.py
microsoft_graph_client.py
neutts_synth.py fix(voice): reconcile NeuTTS backbone/codec GPU device strings 2026-07-28 14:07:21 -07:00
open_preview_tool.py
openrouter_client.py
osv_check.py
patch_parser.py
path_security.py
process_registry.py
project_tools.py
read_extract.py
read_terminal_tool.py
registry.py
schema_sanitizer.py
send_message_tool.py fix(send_message): pass photon DM chat GUIDs through as explicit targets 2026-07-28 18:21:01 -07:00
session_search_tool.py
skill_manager_tool.py
skill_provenance.py
skill_usage.py
skills_ast_audit.py
skills_guard.py
skills_hub.py
skills_sync.py
skills_tool.py
slash_confirm.py
terminal_tool.py
thread_context.py
threat_patterns.py
tirith_security.py
todo_tool.py
tool_backend_helpers.py
tool_output_limits.py
tool_result_storage.py
tool_search.py
transcription_tools.py fix: hoist STT credential read guard to the public transcribe_audio entry point 2026-07-28 18:12:26 -07:00
tts_streaming.py
tts_text_normalize.py
tts_tool.py feat(tools): env_passthrough allowlist for command-provider secret scrub 2026-07-28 18:12:26 -07:00
url_safety.py
video_generation_tool.py
vision_tools.py
voice_mode.py fix(security): scrub credentials from voice playback subprocesses 2026-07-28 18:12:26 -07:00
wake_word.py fix(wake): coerce dead onnx->tflite on macOS ARM64; clear stale voice turn-timeout 2026-07-28 19:40:25 -07:00
web_tools.py
website_policy.py
working_diff.py
write_approval.py
x_search_tool.py
xai_http.py
xai_video_tools.py
yuanbao_tools.py