diff --git a/.changeset/fn-8777-voice-entry-e2e.md b/.changeset/fn-8777-voice-entry-e2e.md new file mode 100644 index 0000000000..0656a11c51 --- /dev/null +++ b/.changeset/fn-8777-voice-entry-e2e.md @@ -0,0 +1,7 @@ +--- +"@runfusion/fusion": patch +--- + +summary: Keep voice dictation requests scoped to the selected project. +category: fix +dev: Voice session create, transcription, and cleanup now share the status request project identity. diff --git a/docs/dashboard-guide.md b/docs/dashboard-guide.md index 0d3a5b55fa..9bc216618c 100644 --- a/docs/dashboard-guide.md +++ b/docs/dashboard-guide.md @@ -45,6 +45,11 @@ Settings form changes save automatically after a short pause. The footer no long **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. Its upstream `sherpa-onnx-nemo-parakeet-tdt-0.6b-v3-int8.tar.bz2` archive is about 465 MB and Fusion verifies its pinned SHA-256 before installing it; an unpinned or mismatched download is refused. Download progress is polled only while the model is downloading. The toggle becomes interactive only when the model is installed and Fusion can load the optional `sherpa-onnx-node` runtime. If Settings reports a missing module, a platform runtime load failure, or an incompatible runtime, reinstall a supported Fusion package for the current platform and reopen Settings. 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. + +When Voice Input is available, every microphone capture remains scoped to the dashboard's selected project: status, session creation, PCM transcription, finalization, and cleanup all use that project identity. The mic is shown only after that project's voice preference is enabled, the Parakeet model is installed, and the browser supports microphone and AudioWorklet capture. Unsupported browsers, denied microphone permission, unavailable runtime/model, and status failures show no microphone control. + +Start dictation with the microphone beside any supported composer. Partial speech appears at the current caret or replaces the current selection; the final transcript replaces that preview without disturbing surrounding text or another composer's selection. Stop, a project change, closing a composer, and transcription errors immediately release browser capture resources and close the project's backend session. If transcription cannot finish, already-entered text remains intact and the mic returns to a safe idle/error state. + ## Reset Settings