* 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. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| _stdin_recovery.py | ||
| compute_host.py | ||
| entry.py | ||
| event_publisher.py | ||
| git_probe.py | ||
| host_supervisor.py | ||
| loop_noise.py | ||
| method_ctx.py | ||
| methods_complete.py | ||
| methods_config.py | ||
| methods_images.py | ||
| methods_profiles.py | ||
| methods_prompt.py | ||
| methods_session.py | ||
| methods_tools.py | ||
| project_tree.py | ||
| render.py | ||
| server.py | ||
| slash_fuzzy.py | ||
| slash_worker.py | ||
| synthetic_turn.py | ||
| transport.py | ||
| turn_marker.py | ||
| ws.py | ||