feat(commands): set audio_layout at each finalize/export site (summed for now) (FR-SPK)

This commit is contained in:
iamdoubz committed 2026-07-14 11:58:25 -05:00
1 parent d4e2ab494c
commit dec9251e7b
1 file changed
+12
+12
View File
@@ -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