Skip to content

fix(voice): honor PipeWire forwarding under WSL - #59357

Closed
Kye-AI-Kye wants to merge 1 commit into
NousResearch:mainfrom
Kye-AI-Kye:pr/voice-wsl-pipewire
Closed

fix(voice): honor PipeWire forwarding under WSL#59357
Kye-AI-Kye wants to merge 1 commit into
NousResearch:mainfrom
Kye-AI-Kye:pr/voice-wsl-pipewire

Conversation

@Kye-AI-Kye

Copy link
Copy Markdown

Voice did not honor PipeWire audio forwarding when running under WSL, breaking audio in that environment. Detect and honor the PipeWire forwarding path so voice works under WSL.

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings July 6, 2026 04:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates voice-mode environment detection so Hermes does not incorrectly block voice input/output when running under WSL with forwarded audio configured via PipeWire (in addition to PulseAudio), aligning WSL behavior with existing “forwarded sound server” handling used for SSH/containers.

Changes:

  • Treat WSL as voice-capable when a forwarded sound server is configured/reachable (PulseAudio or PipeWire), instead of only honoring PULSE_SERVER.
  • Update WSL notice/warning text to mention PulseAudio/PipeWire forwarding.
  • Add a regression test covering WSL with PIPEWIRE_REMOTE set.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
tools/voice_mode.py Broadens WSL detection to accept PipeWire forwarding as a valid audio-forwarding signal.
tests/tools/test_voice_mode.py Adds test ensuring WSL + PIPEWIRE_REMOTE does not block voice mode.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tools/voice_mode.py
Comment on lines 201 to 205
warnings.append(
"Running in WSL -- audio requires PulseAudio bridge.\n"
"Running in WSL -- audio requires PulseAudio/PipeWire forwarding.\n"
" 1. Set PULSE_SERVER=unix:/mnt/wslg/PulseServer\n"
" 2. Create ~/.asoundrc pointing ALSA at PulseAudio\n"
" 3. Verify with: arecord -d 3 /tmp/test.wav && aplay /tmp/test.wav"
@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have tool/tts Text-to-speech and transcription duplicate This issue or pull request already exists labels Jul 6, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

This was generated by AI during triage.

Duplicate of #37346 — both change the voice_mode.py WSL detection branch from if os.environ.get('PULSE_SERVER') to if has_forwarded_audio (byte-equivalent core mechanism; only the notice/warning wording differs). #37346 is the earlier still-open canonical fix for the same WSL PipeWire-forwarding path. The fix is not yet on main.

@tonydwb tonydwb left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Summary

Verdict: Approved

Changes

Honors PipeWire audio forwarding under WSL, treating WSL as voice-capable when a forwarded sound server (PulseAudio or PipeWire) is configured.

Quality

  • Clean environment detection fix
  • Regression test added for PIPEWIRE_REMOTE case
  • No security concerns

Reviewed by Hermes Agent

@Kye-AI-Kye

Copy link
Copy Markdown
Author

Closing as a duplicate of #37346, the earlier canonical fix honoring forwarded PipeWire/PulseAudio audio under WSL. Thanks!

@Kye-AI-Kye Kye-AI-Kye closed this Jul 6, 2026
@Kye-AI-Kye
Kye-AI-Kye deleted the pr/voice-wsl-pipewire branch July 6, 2026 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

duplicate This issue or pull request already exists P3 Low — cosmetic, nice to have tool/tts Text-to-speech and transcription type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants