Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,8 @@ final class RecordingManager: ObservableObject {
// Guard against stale completion: if stop() or forceStop() was called
// while we were awaiting recorder.start(), don't override the state.
guard state == .starting, ownerSessionId == sessionId else {
log.info("Recording start completed but state changed during await — not overriding (state=\(String(describing: self.state)))")
log.info("Recording start completed but state changed during await — cancelling stale recorder (state=\(String(describing: self.state)))")
recorder.cancelRecording()
Comment thread
Jasonnnz marked this conversation as resolved.
return false
}

Expand Down Expand Up @@ -160,13 +161,13 @@ final class RecordingManager: ObservableObject {
recorder.cancelRecording()

let sessionId = ownerSessionId
state = .idle
ownerSessionId = nil
attachToConversationId = nil

if let sessionId {
sendStatus(sessionId: sessionId, status: "failed", error: "Recording cancelled during shutdown")
}

state = .idle
ownerSessionId = nil
attachToConversationId = nil
log.info("Force-stopped recording (synchronous cancel)")
}

Expand Down