Back to Qwen Code

Web Shell voice mode

docs/design/web-shell-voice-mode.md

0.21.11.3 KB
Original Source

Web Shell voice mode

Goal

Make the Web Shell voice control honor the workspace voice mode already returned by the daemon.

Behavior

ModeStartFinishCancel
holdPrimary pointer downMatching pointer upPointer cancel
tapClick while idleClick while recordingClick while connecting

The control captures the active pointer so releasing outside the button still finishes a hold. Keyboard-generated clicks retain the existing toggle behavior in either mode.

Once microphone access is ready, audio produced while the socket connects is buffered locally. The socket receives start, the buffered audio, and then a deferred stop, so releasing during connection does not discard captured speech.

The mode is loaded with the existing workspace voice status and refreshed through the existing settings-version signal. A status request remains fail-closed: the control stays hidden until the current workspace reports that voice is enabled.

Scope

This change only affects Web Shell input interaction. It does not change the daemon settings contract, transcription transport, model selection, or TUI voice behavior.