fix(macos): keep config writes on main actor

This commit is contained in:
Peter Steinberger
2026-01-02 17:14:57 +01:00
parent 314164fb8a
commit 0de6e38ce9
4 changed files with 8 additions and 4 deletions

View File

@@ -462,7 +462,8 @@ struct ConfigSettings: View {
} }
} }
private nonisolated static func buildAndSaveConfig( @MainActor
private static func buildAndSaveConfig(
configModel: String, configModel: String,
customModel: String, customModel: String,
heartbeatMinutes: Int?, heartbeatMinutes: Int?,

View File

@@ -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 root = await ConfigStore.load()
var browser = root["browser"] as? [String: Any] ?? [:] var browser = root["browser"] as? [String: Any] ?? [:]
browser["enabled"] = enabled browser["enabled"] = enabled

View File

@@ -83,7 +83,8 @@ extension OnboardingView {
return success 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 root = await ConfigStore.load()
var agent = root["agent"] as? [String: Any] ?? [:] var agent = root["agent"] as? [String: Any] ?? [:]
let trimmed = workspace?.trimmingCharacters(in: .whitespacesAndNewlines) ?? "" let trimmed = workspace?.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""

View File

@@ -301,7 +301,8 @@ struct TailscaleIntegrationSection: View {
self.restartGatewayIfNeeded() self.restartGatewayIfNeeded()
} }
private nonisolated static func buildAndSaveTailscaleConfig( @MainActor
private static func buildAndSaveTailscaleConfig(
tailscaleMode: GatewayTailscaleMode, tailscaleMode: GatewayTailscaleMode,
requireCredentialsForServe: Bool, requireCredentialsForServe: Bool,
password: String, password: String,