From 0cd0f7a67036841c60692446dadda153a0db6af9 Mon Sep 17 00:00:00 2001 From: oxoxDev <164490987+oxoxDev@users.noreply.github.com> Date: Fri, 10 Apr 2026 18:25:08 +0530 Subject: [PATCH] feat(voice): sync overlay orb with chat voice button state (#487) (#490) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(voice): sync overlay orb with chat voice button state (#487) The overlay orb already reacts to hotkey-based dictation via Socket.IO events, but the chat "Start Talking" button used local React state only. Add a new RPC method `openhuman.overlay_stt_notify` that the chat button calls at each voice state transition, which publishes to the existing DICTATION_BUS / TRANSCRIPTION_BUS broadcast channels — so the overlay reflects recording/transcribing/idle from both input paths with zero changes to the Socket.IO bridge or overlay event handlers. Co-Authored-By: Claude Opus 4.6 * fix(voice): address CI formatting and CodeRabbit review feedback - Run cargo fmt and prettier to fix formatting violations - Use typed enum OverlaySttState instead of raw String for state param (serde rejects invalid states at deserialization, eliminating the unknown state branch) - Require `text` field for transcription_done state (return error if missing instead of silently ignoring) - Replace raw transcript logging with metadata-only (has_text, text_len) to avoid logging sensitive user speech content - Use "Voice input active" aria-label (covers recording + linger phases) - Convert notifyOverlaySttState to arrow function with async/await per repo TS conventions Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --- Cargo.lock | 2 +- app/src/overlay/OverlayApp.tsx | 8 +- app/src/pages/Conversations.tsx | 8 ++ app/src/utils/tauriCommands/voice.ts | 17 +++++ src/openhuman/voice/dictation_listener.rs | 21 ++++++ src/openhuman/voice/schemas.rs | 90 +++++++++++++++++++++++ 6 files changed, 144 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6029a1472..038c413cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5120,7 +5120,7 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openhuman" -version = "0.52.0" +version = "0.52.2" dependencies = [ "aes-gcm", "anyhow", diff --git a/app/src/overlay/OverlayApp.tsx b/app/src/overlay/OverlayApp.tsx index 327c66748..75b31d3c5 100644 --- a/app/src/overlay/OverlayApp.tsx +++ b/app/src/overlay/OverlayApp.tsx @@ -405,7 +405,13 @@ export default function OverlayApp() {