From 0de6e38ce9b22088b3ffc4d3d2226d4d85d1d73f Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 2 Jan 2026 17:14:57 +0100 Subject: [PATCH] fix(macos): keep config writes on main actor --- apps/macos/Sources/Clawdis/ConfigSettings.swift | 3 ++- apps/macos/Sources/Clawdis/MenuContentView.swift | 3 ++- apps/macos/Sources/Clawdis/OnboardingView+Workspace.swift | 3 ++- apps/macos/Sources/Clawdis/TailscaleIntegrationSection.swift | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/macos/Sources/Clawdis/ConfigSettings.swift b/apps/macos/Sources/Clawdis/ConfigSettings.swift index 9dc2c4d01..bab1250e5 100644 --- a/apps/macos/Sources/Clawdis/ConfigSettings.swift +++ b/apps/macos/Sources/Clawdis/ConfigSettings.swift @@ -462,7 +462,8 @@ struct ConfigSettings: View { } } - private nonisolated static func buildAndSaveConfig( + @MainActor + private static func buildAndSaveConfig( configModel: String, customModel: String, heartbeatMinutes: Int?, diff --git a/apps/macos/Sources/Clawdis/MenuContentView.swift b/apps/macos/Sources/Clawdis/MenuContentView.swift index 7a9a78f5c..f8e8d5932 100644 --- a/apps/macos/Sources/Clawdis/MenuContentView.swift +++ b/apps/macos/Sources/Clawdis/MenuContentView.swift @@ -171,7 +171,8 @@ struct MenuContent: View { } } - private nonisolated static func buildAndSaveBrowserEnabled(_ enabled: Bool) async -> (Bool,()) { + @MainActor + private static func buildAndSaveBrowserEnabled(_ enabled: Bool) async -> (Bool,()) { var root = await ConfigStore.load() var browser = root["browser"] as? [String: Any] ?? [:] browser["enabled"] = enabled diff --git a/apps/macos/Sources/Clawdis/OnboardingView+Workspace.swift b/apps/macos/Sources/Clawdis/OnboardingView+Workspace.swift index 4ff9f8fa1..3157df615 100644 --- a/apps/macos/Sources/Clawdis/OnboardingView+Workspace.swift +++ b/apps/macos/Sources/Clawdis/OnboardingView+Workspace.swift @@ -83,7 +83,8 @@ extension OnboardingView { return success } - private nonisolated static func buildAndSaveWorkspace(_ workspace: String?) async -> (Bool, String?) { + @MainActor + private static func buildAndSaveWorkspace(_ workspace: String?) async -> (Bool, String?) { var root = await ConfigStore.load() var agent = root["agent"] as? [String: Any] ?? [:] let trimmed = workspace?.trimmingCharacters(in: .whitespacesAndNewlines) ?? "" diff --git a/apps/macos/Sources/Clawdis/TailscaleIntegrationSection.swift b/apps/macos/Sources/Clawdis/TailscaleIntegrationSection.swift index 2015e221a..1621efdd3 100644 --- a/apps/macos/Sources/Clawdis/TailscaleIntegrationSection.swift +++ b/apps/macos/Sources/Clawdis/TailscaleIntegrationSection.swift @@ -301,7 +301,8 @@ struct TailscaleIntegrationSection: View { self.restartGatewayIfNeeded() } - private nonisolated static func buildAndSaveTailscaleConfig( + @MainActor + private static func buildAndSaveTailscaleConfig( tailscaleMode: GatewayTailscaleMode, requireCredentialsForServe: Bool, password: String,