diff --git a/src-tauri/src/commands.rs b/src-tauri/src/commands.rs index 23e81a1..dd2b74e 100644 --- a/src-tauri/src/commands.rs +++ b/src-tauri/src/commands.rs @@ -1814,6 +1814,17 @@ pub async fn reprocess_transcript( } let speakers = speaker_infos_from_segments(&segments, &speaker_names); + // Drop the previous run's speaker rows before re-inserting the fresh set: + // the old labels key to the discarded clustering, so leaving them stranded + // in the DB makes the Participants pane show ghosts (e.g. 83 old labels + // when the new transcript has 5). finalize_meeting below re-upserts + // `speakers`. (FR-SPK) + state + .store + .clear_speakers(&meeting_id) + .await + .map_err(|e| WaError::new("storage", e.to_string()))?; + let duration_secs = segments .last() .map(|s| (s.end_ms / 1000) as i64)