From 11db36187f9bb9df25c99388731aec8008db1dfe Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Sat, 25 Jul 2026 02:51:28 -0700 Subject: [PATCH] FN-8572: add voice input settings and model controls Add project-scoped voice dictation controls with observable local model management. - Add the Voice Input settings section with opt-in enablement and runtime-safe status handling. - Add Parakeet v3 model download, removal, progress polling, search, documentation, and regression coverage. - Add a minor release changeset for Voice Input settings. Files changed: .changeset/fn-8572-voice-input-settings.md | 7 ++ docs/dashboard-guide.md | 4 + docs/settings-reference.md | 1 + .../dashboard/app/components/SettingsModal.tsx | 7 +- .../VoiceInputSection.modal-visibility.test.tsx | 19 +++ .../settings/__tests__/VoiceInputSection.test.tsx | 137 +++++++++++++++++++++ .../settings/__tests__/section-keys.test.ts | 1 + .../search/__tests__/settings-search-index.test.ts | 1 + .../app/components/settings/search/entries.ts | 2 + .../app/components/settings/section-keys.ts | 2 + .../settings/sections/VoiceInputSection.css | 48 ++++++++ .../settings/sections/VoiceInputSection.search.ts | 14 +++ .../settings/sections/VoiceInputSection.tsx | 128 ++++++++++++++++++++ 13 files changed, 370 insertions(+), 1 deletion(-) Fusion-Task-Id: FN-8572 Fusion-Task-Lineage: 2d2ad0df-3765-4d19-a6f3-7c2b5ca5df95 Co-authored-by: Fusion (runfusion.ai) --- .changeset/fn-8572-voice-input-settings.md | 7 + docs/dashboard-guide.md | 4 + docs/settings-reference.md | 1 + .../app/components/SettingsModal.tsx | 7 +- ...oiceInputSection.modal-visibility.test.tsx | 19 +++ .../__tests__/VoiceInputSection.test.tsx | 137 ++++++++++++++++++ .../settings/__tests__/section-keys.test.ts | 1 + .../__tests__/settings-search-index.test.ts | 1 + .../app/components/settings/search/entries.ts | 2 + .../app/components/settings/section-keys.ts | 2 + .../settings/sections/VoiceInputSection.css | 48 ++++++ .../sections/VoiceInputSection.search.ts | 14 ++ .../settings/sections/VoiceInputSection.tsx | 128 ++++++++++++++++ 13 files changed, 370 insertions(+), 1 deletion(-) create mode 100644 .changeset/fn-8572-voice-input-settings.md create mode 100644 packages/dashboard/app/components/settings/__tests__/VoiceInputSection.modal-visibility.test.tsx create mode 100644 packages/dashboard/app/components/settings/__tests__/VoiceInputSection.test.tsx create mode 100644 packages/dashboard/app/components/settings/sections/VoiceInputSection.css create mode 100644 packages/dashboard/app/components/settings/sections/VoiceInputSection.search.ts create mode 100644 packages/dashboard/app/components/settings/sections/VoiceInputSection.tsx diff --git a/.changeset/fn-8572-voice-input-settings.md b/.changeset/fn-8572-voice-input-settings.md new file mode 100644 index 0000000000..9fdfa4b818 --- /dev/null +++ b/.changeset/fn-8572-voice-input-settings.md @@ -0,0 +1,7 @@ +--- +"@runfusion/fusion": minor +--- + +summary: Add Voice Input settings for opt-in dictation and Parakeet v3 model management. +category: feature +dev: Adds project-scoped voiceInput.enabled UI with polled model lifecycle controls. diff --git a/docs/dashboard-guide.md b/docs/dashboard-guide.md index 36030b92fd..f330d2cd36 100644 --- a/docs/dashboard-guide.md +++ b/docs/dashboard-guide.md @@ -38,6 +38,10 @@ Every user-editable setting's help text (the `.settings-description`/`` h Settings form changes save automatically after a short pause. The footer no longer includes a **Save** button and closing Settings does not ask about unsaved changes: Close, Escape, and clicking outside the modal first flush any pending edit. The footer shows quiet **Saving…**, **Saved**, or save-failure status; correct the value and retry after a failure. +## Voice Input + +**Settings → Voice Input** is visible in both Basic and Advanced settings. Voice mode is off by default; enabling it is an explicit project preference. The same section shows the locally managed Parakeet v3 model and lets an operator download or remove it. Download progress is polled only while the model is downloading. When sherpa-onnx is unavailable, Settings preserves any saved enabled preference but presents voice mode as backend-enforced disabled with an explanation. If status cannot be determined, the section fails closed: voice mode stays disabled and model actions are not shown until status is available. + ## Reset Settings