Skip to content

fix(desktop): separate auto-speak from gateway voice.auto_tts to prevent double-speech - #99212

Open
salch-cred wants to merge 2 commits into
NousResearch:mainfrom
salch-cred:fix/desktop-auto-speak-config-key
Open

salch-cred wants to merge 2 commits into
NousResearch:mainfrom
salch-cred:fix/desktop-auto-speak-config-key

Conversation

@salch-cred

Copy link
Copy Markdown
Contributor

Desktop auto-speak toggle synced to voice.auto_tts causing gateway TTS also to fire. Use desktop.voice.auto_speak (Desktop-only key). Fixes #99076.

Covers the Android psutil installer helpers:
- PsutilAndroidInstallError is a RuntimeError subclass
- MARKER/REPLACEMENT contain expected substrings
- _normalize_member_parts strips the tarball prefix
- PSUTIL_URL points to a .tar.gz for psutil
…ktop auto-speak toggle

The Desktop 'Read Replies Aloud' toggle synced to voice.auto_tts in
config.yaml — the gateway's auto-TTS config key.  This enabled BOTH the
Desktop renderer's local audio path AND the gateway's TTS pipeline,
causing double-speech on every response (NousResearch#99076).

voice.auto_tts controls whether the messaging-gateway fires TTS on every
assistant turn (independent of any Desktop session).  The Desktop's per-
session auto-speak is a renderer-local feature that should not touch the
gateway pipeline at all.

Fix:
- constants.ts: change the voice settings key from 'voice.auto_tts' to
  'desktop.voice.auto_speak'.
- config_defaults.py: add desktop.voice.auto_speak: false as a new
  Desktop-only key under the desktop.* namespace so it never conflicts
  with gateway-level voice.* settings.

Fixes NousResearch#99076
@alt-glitch alt-glitch added type/bug Something isn't working comp/desktop Electron desktop app (apps/desktop/*) tool/tts Text-to-speech and transcription area/config Config system, migrations, profiles P2 Medium — degraded but workaround exists sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades labels Aug 31, 2026
@alt-glitch

Copy link
Copy Markdown
Contributor

This was generated by AI during triage.

Related: #99095 and #91249 address the same Desktop double-speech outcome through desktop-local preference migration and a gateway delivery guard. This PR instead separates the Settings config key; please coordinate the approaches before merge.

@kvnloo

kvnloo commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Exact-head KEEP on #99212 head f7f0684.

KEEP separating Desktop auto-speak from gateway voice.auto_tts so enabling one surface does not double-speak replies on the other. KEEP config/docs clarity for which knob owns which surface.

CHECK: gateway-only auto-TTS unchanged when desktop speak is off. CHECK: no session-state race with continuous voice (#95180 stack). Author salch-cred not kvnloo. No competing PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/config Config system, migrations, profiles comp/desktop Electron desktop app (apps/desktop/*) P2 Medium — degraded but workaround exists sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades 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.

[Bug] Desktop auto-speak toggle syncs back to voice.auto_tts, causing gateway+desktop double-read

3 participants