From b77c818d347b6edbce745082e219d91bb9c644e2 Mon Sep 17 00:00:00 2001 From: Invix <74636900+InvixGG@users.noreply.github.com> Date: Wed, 11 Nov 2026 12:17:51 +0100 Subject: [PATCH] fix(web): voice settings mark the rows saved on this device The Voice settings page shows the "Applying settings for ... on " scope picker above every row, but only the dictionary and cleanup-model rows follow it. Microphone, dictation shortcut, language and the other speech preferences are saved on the client, so a remote environment in the header made the local microphone list look wrong. Device-local rows now carry a small "This device" badge, and the Microphone description says audio is recorded here and transcribed wherever Transcription points. Refs #34297 --- .../settings/VoiceSettingsPanel.tsx | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/apps/web/src/components/settings/VoiceSettingsPanel.tsx b/apps/web/src/components/settings/VoiceSettingsPanel.tsx index e2137cf24e13f..dc5dcb81f5613 100644 --- a/apps/web/src/components/settings/VoiceSettingsPanel.tsx +++ b/apps/web/src/components/settings/VoiceSettingsPanel.tsx @@ -186,6 +186,21 @@ function ModelBadge(props: { icon: ReactNode; label: string; tooltip: string }) ); } +// The scope picker above only changes serverScoped rows, so rows saved on this client say so. +function DeviceSettingTitle(props: { children: string }) { + return ( + + {props.children} + + }>This device + + Saved on this device, whatever scope is selected above. + + + + ); +} + function ModelCard(props: ModelCardProps) { const { model } = props; const downloading = model.state === "downloading" || model.state === "verifying"; @@ -1265,8 +1280,8 @@ export function VoiceSettingsPanel() { Microphone} + description="Audio is recorded on this device and transcribed wherever you choose under Transcription. System default follows your operating system. Test audio stays on this device and is never transcribed." control={
@@ -1310,7 +1325,7 @@ export function VoiceSettingsPanel() { /> Dictation shortcut} description="How the dictation shortcut starts and stops recording." control={ Correction cue} description="The word or phrase you say to flag a correction, like “sorry” or “scratch that”. Cleanup applies the correction only where one is meant, and hears the cue as a hint." control={