From b1834b7cf809083655c012c4d910129f562c00e5 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 10 Dec 2025 01:44:03 +0100 Subject: [PATCH] mac: avoid spawning local gateway in remote mode --- .../Sources/Clawdis/GatewayProcessManager.swift | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/apps/macos/Sources/Clawdis/GatewayProcessManager.swift b/apps/macos/Sources/Clawdis/GatewayProcessManager.swift index 5ed309c37..1e5ea2a84 100644 --- a/apps/macos/Sources/Clawdis/GatewayProcessManager.swift +++ b/apps/macos/Sources/Clawdis/GatewayProcessManager.swift @@ -73,6 +73,14 @@ final class GatewayProcessManager: ObservableObject { private let crashWindow: TimeInterval = 120 // seconds func setActive(_ active: Bool) { + // Remote mode should never spawn a local gateway; treat as stopped. + if CommandResolver.connectionModeIsRemote() { + self.desiredActive = false + self.stop() + self.status = .stopped + self.appendLog("[gateway] remote mode active; skipping local gateway\n") + return + } self.desiredActive = active self.refreshEnvironmentStatus() if active { @@ -84,6 +92,11 @@ final class GatewayProcessManager: ObservableObject { func startIfNeeded() { guard self.execution == nil, self.desiredActive else { return } + // Do not spawn in remote mode (the gateway should run on the remote host). + guard !CommandResolver.connectionModeIsRemote() else { + self.status = .stopped + return + } if self.shouldGiveUpAfterCrashes() { self.status = .failed("Too many crashes; giving up") return