fix(setup-tab): retry next WAV player when Piper preview playback fails - #209
Draft
paulpreibisch wants to merge 1 commit into
Draft
fix(setup-tab): retry next WAV player when Piper preview playback fails#209paulpreibisch wants to merge 1 commit into
paulpreibisch wants to merge 1 commit into
Conversation
The provider-config wizard's Piper voice picker used detectWavPlayer() (first match only) with no exit-code check on the playback process, so a present-but-broken player (e.g. sox's `play` on Windows exiting 1 with "no default audio device configured") failed silently — no sound, no error. Kokoro and the separate Voices tab avoid this because they either bypass WAV_PLAYERS entirely (Kokoro hardcodes PowerShell SoundPlayer) or already retry the next player on failure (voices-tab.js). Apply the same getAllWavPlayers() + retry-until-one-succeeds pattern here.
|
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.


Summary
setup-tab.js_previewVoice) picked a single WAV player viadetectWavPlayer()and never checked its exit code, so a present-but-broken player failed silently with no sound and no error message.play(installed via scoop) is detected beforeffplay/PowerShell, but exits 1 with "no default audio device configured" — the picker just showed "♪ Playing..." then went quiet.SoundPlayer), and the separate Voices tab already has retry-on-failure logic viagetAllWavPlayers()— this brings the setup-tab picker in line with that existing pattern.Test plan
node --test test/unit/setup-tab-preview-routing.test.js test/unit/tui-voice-preview-routing.test.js test/unit/setup-tab-audio-suppress.test.js— 53/53 passbash scripts/run-tests.sh(full suite: syntax, bats, coverage) — exit 0sox playexits 1 ("no default audio device"),ffplay(next in the fallback chain) plays the same file successfully with exit 0🤖 Generated with Claude Code