From fd9655da69900374ee2cf0be8b50a79386d9308f Mon Sep 17 00:00:00 2001 From: "sentry[bot]" <39604003+sentry[bot]@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:16:23 +0000 Subject: [PATCH] Eliminate app hang from synchronous file open --- .../WorkspaceFiles/ViewModels/FileViewModel.swift | 8 +++++--- .../ViewModels/WorkspaceFilesViewModel.swift | 8 +++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Sources/RepoPrompt/Features/WorkspaceFiles/ViewModels/FileViewModel.swift b/Sources/RepoPrompt/Features/WorkspaceFiles/ViewModels/FileViewModel.swift index 3b8f0dda2..6feca9b53 100644 --- a/Sources/RepoPrompt/Features/WorkspaceFiles/ViewModels/FileViewModel.swift +++ b/Sources/RepoPrompt/Features/WorkspaceFiles/ViewModels/FileViewModel.swift @@ -1079,9 +1079,11 @@ class FileViewModel: ObservableObject, Identifiable, FileSystemItemViewModel, Eq func openInDefaultApp() { let fileURL = URL(fileURLWithPath: standardizedFullPath) - let opened = NSWorkspace.shared.open(fileURL) - if !opened { - print("Unable to open file: \(standardizedFullPath)") + let configuration = NSWorkspace.OpenConfiguration() + NSWorkspace.shared.open(fileURL, configuration: configuration) { _, error in + if let error { + print("Unable to open file: \(self.standardizedFullPath): \(error)") + } } } diff --git a/Sources/RepoPrompt/Features/WorkspaceFiles/ViewModels/WorkspaceFilesViewModel.swift b/Sources/RepoPrompt/Features/WorkspaceFiles/ViewModels/WorkspaceFilesViewModel.swift index 26563aa33..4e3600e05 100644 --- a/Sources/RepoPrompt/Features/WorkspaceFiles/ViewModels/WorkspaceFilesViewModel.swift +++ b/Sources/RepoPrompt/Features/WorkspaceFiles/ViewModels/WorkspaceFilesViewModel.swift @@ -11751,7 +11751,13 @@ extension WorkspaceFilesViewModel { guard standardizedPath.hasPrefix("/") else { return false } let fileURL = URL(fileURLWithPath: standardizedPath) - return NSWorkspace.shared.open(fileURL) + let configuration = NSWorkspace.OpenConfiguration() + NSWorkspace.shared.open(fileURL, configuration: configuration) { _, error in + if let error { + print("Unable to open file: \(standardizedPath): \(error)") + } + } + return true } @MainActor