From 9013aa7df0e2e5c11925c0eda62cff682138aab7 Mon Sep 17 00:00:00 2001 From: Owen Gretzinger Date: Thu, 17 Jul 2025 08:34:10 -0400 Subject: [PATCH] fix: crash fix by using weak self in async closures (#30) --- meetingnotes/Managers/AudioManager.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/meetingnotes/Managers/AudioManager.swift b/meetingnotes/Managers/AudioManager.swift index 51e2149..7dde7d6 100644 --- a/meetingnotes/Managers/AudioManager.swift +++ b/meetingnotes/Managers/AudioManager.swift @@ -450,7 +450,9 @@ class AudioManager: NSObject, ObservableObject { switch type { case "conversation.item.input_audio_transcription.delta": if let delta = json["delta"] as? String { - DispatchQueue.main.async { + DispatchQueue.main.async { [weak self] in + guard let self = self else { return } + // Safely accumulate interim text for this source self.currentInterim[source, default: ""] += delta @@ -471,7 +473,9 @@ class AudioManager: NSObject, ObservableObject { } case "conversation.item.input_audio_transcription.completed": if let transcript = json["transcript"] as? String { - DispatchQueue.main.async { + DispatchQueue.main.async { [weak self] in + guard let self = self else { return } + // Remove any interim chunks for this source self.transcriptChunks.removeAll { !$0.isFinal && $0.source == source }