Conversation
Use the shared OpenAI audio key resolver and prefer tts.openai.base_url over the global environment fallback in the Desktop streaming path. Add focused regression coverage for credential and endpoint propagation.
1 task
Collaborator
|
Merged into main via consolidated salvage PR #73512 (merge Your contribution is credited to you in git history. Thank you! Closing this PR as merged-via-salvage. |
randlee
pushed a commit
to randlee/hermes-agent
that referenced
this pull request
Aug 11, 2026
Follow-up to salvaged PR NousResearch#70307 (@aml1973): OpenAIStreamer now checks tts.openai.api_key (config.yaml) ahead of the env resolver in both available() and stream(), completing config parity between the sync and streaming OpenAI TTS paths.
prmartinow
pushed a commit
to prmartinow/hermes-agent
that referenced
this pull request
Aug 26, 2026
Follow-up to salvaged PR NousResearch#70307 (@aml1973): OpenAIStreamer now checks tts.openai.api_key (config.yaml) ahead of the env resolver in both available() and stream(), completing config parity between the sync and streaming OpenAI TTS paths.
melon-xf
added a commit
to melon-xf/hermes-agent
that referenced
this pull request
Sep 3, 2026
Follow-up to salvaged PR NousResearch#70307 (@aml1973): OpenAIStreamer now checks tts.openai.api_key (config.yaml) ahead of the env resolver in both available() and stream(), completing config parity between the sync and streaming OpenAI TTS paths.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Fixes Desktop streaming TTS for local and other OpenAI-compatible speech endpoints.
The normal OpenAI TTS path honors
tts.openai.base_urland the shared audio-key resolution order, butOpenAIStreamerused onlyOPENAI_BASE_URLandOPENAI_API_KEY. With a local endpoint configured solely inconfig.yaml, Desktop therefore attempted the public OpenAI endpoint, failed, and fell back to whole-response synthesis.This change makes the streaming path:
resolve_openai_audio_api_key()resolver, includingVOICE_TOOLS_OPENAI_KEYsupport;tts.openai.base_urlfrom the configured provider section;OPENAI_BASE_URLas the compatibility fallback.Related Issue
No existing issue found.
Type of Change
Changes Made
tools/tts_streaming.pyto share OpenAI audio credential resolution with batch TTS.tts.openai.base_urltake precedence over the legacy environment fallback.How to Test
tts.provider: openai,tts.use_gateway: false, and a local OpenAI-compatible/v1root intts.openai.base_url.VOICE_TOOLS_OPENAI_KEY, leaveOPENAI_BASE_URLunset, restart Desktop, and enable spoken replies.Automated checks run locally on Windows 10:
The test set included:
A live OpenAI-compatible Qwen TTS service was also verified with
response_format: pcm; playback streamed successfully withoutOPENAI_BASE_URLafter applying the fix.Checklist
Code
pytest tests/ -qsuite locally (targeted affected tests passed; full CI is delegated to GitHub Actions)Documentation & Housekeeping
cli-config.yaml.exampleupdate is N/A; no config keys changedCONTRIBUTING.md/AGENTS.mdupdate is N/A; no architecture or workflow changed