diff --git a/crates/echo/src/rec.rs b/crates/echo/src/rec.rs
index 0f12b74..762cb17 100644
--- a/crates/echo/src/rec.rs
+++ b/crates/echo/src/rec.rs
@@ -134,8 +134,8 @@ pub fn run_rec_once() -> i32 {
}
pub fn run_rec_toggle() -> i32 {
- match ToggleSession::start_or_stop() {
- Ok(action) => {
+ match start_or_stop_with_intent() {
+ Ok((action, cancel_transcription)) => {
let recording_token = action.recording_token().map(str::to_string);
if let Err(err) =
status::mark_shortcut_activation("toggle-command", recording_token.as_deref())
@@ -148,7 +148,9 @@ pub fn run_rec_toggle() -> i32 {
// Preserve the CLI/hotkey toggle convention after capture:
// its stop gesture means cancel while transcription is live.
// Explicit desktop capture-stop never takes this path.
- apply_toggle_stop_intent(&owner);
+ if cancel_transcription {
+ apply_toggle_stop_intent(&owner);
+ }
0
}
}
@@ -163,8 +165,8 @@ pub fn run_rec_toggle() -> i32 {
/// Toggle an in-process recording after synchronously acquiring or stopping
/// the cross-process session. Recording work continues on a background thread.
pub fn toggle_managed_recording() -> Result