hermes-agent/tui_gateway
Teknium 486f4ace20
fix: voice dictation broken in profiles created via profiles.create (missing stt/tts config) (#85755)
* fix: mirror voice config (stt/tts/voice) into profiles created via profiles.create

Desktop dictation is profile-scoped: /api/audio/transcribe resolves the
stt section inside the TARGET profile's home. Profiles created through
profiles.create got only a model section, so dictation and TTS silently
fell back to defaults (local whisper, often not installed) — 'voice
dictation doesn't work in bot mode but is fine in regular mode'.

Mirror the launch profile's stt/tts/voice sections (key-wise, never
overwriting sections the clone already has) under the same
mirror_credentials flag that gates .env/auth mirroring, and report it
as mirrored.voice in the receipt.

* guard: route voice-config mirror through canonical loaders

read_user_config_raw (write-back round-trip; load_config would merge
DEFAULT_CONFIG and no-op the mirror) + save_config under the target
profile's HERMES_HOME override — same mechanism as _write_profile_model.
Satisfies test_config_read_guard.
2026-08-13 19:01:11 -07:00
..
__init__.py
…
_stdin_recovery.py fix: Windows guard, dedup recovery, profile-safe paths, clear SO_RCVTIMEO 2026-07-20 12:48:50 +05:30
compute_host.py tui_gateway: close dedicated profile SessionDB handles at teardown too 2026-08-07 19:44:41 +05:30
entry.py fix(review): harden portable plugin boundaries 2026-08-07 09:44:21 -07:00
event_publisher.py
…
git_probe.py perf(gateway): stop spawning git for paths that cannot answer 2026-08-09 06:53:55 -05:00
host_supervisor.py fix(windows): widen utf-8 subprocess decode guard to sibling desktop-backend sites 2026-07-24 09:48:28 -07:00
loop_noise.py fix(tui_gateway): suppress WS peer-hangup teardown error flood (#50005) (#54126) 2026-06-28 02:35:01 -07:00
method_ctx.py refactor(tui): split @method handlers into methods_* modules (mechanical move, registry set-equality verified) 2026-07-29 11:46:31 -07:00
methods_complete.py feat(plugins): allow plugins to register custom @-prefix context references 2026-08-12 18:41:59 -07:00
methods_config.py fix(personality): single-owner personality state + one-time reset migration 2026-08-09 10:33:58 -07:00
methods_images.py fix: route image.generate through the provider dispatcher (#85520) 2026-08-13 11:23:51 -07:00
methods_profiles.py fix: voice dictation broken in profiles created via profiles.create (missing stt/tts config) (#85755) 2026-08-13 19:01:11 -07:00
methods_prompt.py refactor(gateway/desktop): consent-first truncation precedence + dedup (simplify pass) 2026-08-13 13:35:55 +05:30
methods_session.py fix(gateway/desktop): durable row-id addressing for rewind truncation 2026-08-13 13:35:55 +05:30
methods_tools.py feat: forward repeat through cron.manage add (#85602) 2026-08-13 13:14:57 -07:00
project_tree.py feat(profiles): serve a cross-profile project tree and per-profile usage totals 2026-08-10 03:13:08 -05:00
render.py
…
server.py docs: fix stale parity claim in _BARE_BILLING_PROVIDERS comment 2026-08-14 02:02:18 +05:30
slash_fuzzy.py Port from superagent-ai/grok-cli: description-aware slash-menu fuzzy scoring 2026-08-08 04:29:16 -07:00
slash_worker.py polish(mem): readonly config read, debug-level trim logs, loud frame test 2026-08-02 22:44:38 +05:30
synthetic_turn.py feat(dashboard): isolate turns in compute host (#65895) 2026-07-16 15:24:03 -04:00
transport.py
…
turn_marker.py feat(desktop): crash-survivable in-flight turn journal 2026-07-24 23:31:55 -05:00
ws.py perf(cold-start): mitigate ~14s GIL stall during backend init (#60800) 2026-08-03 21:16:09 +05:30