{"repo":"NousResearch/hermes-agent","public_id":"26175","display_label":"TTS config.yaml API key/URL not being read","summary":"A bug where the TTS subsystem ignores `tts.openai.api_key` and `tts.openai.base_url` set in config.yaml, preventing config-only setups from reaching self-hosted endpoints. Multiple fix attempts address reading these values from config before falling back to environment variables.","subsystem":"agent","counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":73512},"resolution":{"state":"resolved","by":"pr-73512"},"freshness":{"state":"verified","last_verified_at":"2026-07-28T18:54:27+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":26175,"pr_number":73512,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":55171,"pr_number":73512,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":73530,"pr_number":73512,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false}],"members":[{"kind":"issue","number":26175,"title":"TTS tool ignores `tts.openai.api_key` / `tts.openai.base_url` in `config.yaml` — config-only setups cannot reach self-hosted endpoints","url":null,"state":"closed"},{"kind":"pr","number":26209,"title":"fix(tts): read tts.openai.api_key/base_url from config.yaml before env vars","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"b53ba0e18","number":0}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":26218,"title":"fix(tts): read tts.openai.api_key/base_url from config.yaml before env vars","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#26209","number":26209},{"kind":"pr","value":"#13888","number":13888},{"kind":"pr","value":"#4209","number":4209},{"kind":"pr","value":"#26175","number":26175}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":26233,"title":"fix(tts): honor config-only OpenAI audio endpoints","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#13888","number":13888},{"kind":"pr","value":"#4209","number":4209},{"kind":"pr","value":"#26209","number":26209},{"kind":"pr","value":"#26175","number":26175}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":73512,"title":"fix(tts): honor config.yaml endpoints across all providers + bounded upstream buffering","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["contributors/emails/[redacted:email]","contributors/emails/[redacted:email]","tests/tools/test_tts_model_cache_lru.py","tests/tools/test_tts_openai_config.py","tests/tools/test_tts_provider_base_urls.py","tests/tools/test_tts_response_body_cap.py","tests/tools/test_tts_streaming.py","tests/tools/test_tts_xai_speech_tags.py","tools/tts_streaming.py","tools/tts_tool.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}