From dec9251e7be68692c0ee7d76c28793fb761227d2 Mon Sep 17 00:00:00 2001 From: iamdoubz <> Date: Tue, 14 Jul 2026 11:58:25 -0500 Subject: [PATCH] feat(commands): set audio_layout at each finalize/export site (summed for now) (FR-SPK) --- src-tauri/src/commands.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src-tauri/src/commands.rs b/src-tauri/src/commands.rs index 800d4fd..68ce61e 100644 --- a/src-tauri/src/commands.rs +++ b/src-tauri/src/commands.rs @@ -866,6 +866,9 @@ pub async fn stop_recording( language, backend_used: Some(backend_used), model_used: Some(session.model_id.clone()), + // Set to "split"/"summed" once the split writer lands (next + // stage); until then every recording is summed (NULL default). + audio_layout: None, }, ) .await @@ -1978,6 +1981,7 @@ pub async fn reprocess_transcript( language: resolved_language, backend_used: Some(backend.as_str().to_string()), model_used: Some(model), + audio_layout: None, // reprocess preserves the recorded layout }, ) .await @@ -2139,6 +2143,7 @@ pub async fn import_media( language: resolved_language, backend_used: Some(backend.as_str().to_string()), model_used: Some(model_id.clone()), + audio_layout: Some("summed".to_string()), // single-source import }, ) .await @@ -2253,6 +2258,7 @@ pub async fn resume_transcription( language: resolved_language, backend_used: Some(BackendId::Cpu.as_str().to_string()), model_used: Some(model_id), + audio_layout: None, // recovery preserves the recorded layout }, ) .await @@ -2672,6 +2678,7 @@ async fn import_one_bundle(state: &State<'_, AppState>, dir: &Path) -> WaResult< language: bundle.language.clone(), backend_used: bundle.backend_used.clone(), model_used: bundle.model_used.clone(), + audio_layout: bundle.audio_layout.clone(), }, ) .await @@ -2847,6 +2854,9 @@ async fn export_meeting_to( tags: meeting.tags.clone(), speakers: meeting.speakers.clone(), action_items: meeting.action_items.clone(), + // Export downmixes a split recording to dual-mono below, so the + // shared copy is a normal "summed" file (FR-STORE-4). + audio_layout: Some("summed".to_string()), }; let manifest = serde_json::to_string_pretty(&bundle) .map_err(|e| WaError::new("export", e.to_string()))?; @@ -5051,6 +5061,7 @@ mod tests { language: None, backend_used: None, model_used: None, + audio_layout: None, segments: Vec::new(), speakers: vec![ SpeakerInfo { @@ -5335,6 +5346,7 @@ mod tests { language: None, backend_used: None, model_used: None, + audio_layout: None, }, ) .await