From 7011a2d630659a9694cf75067fac5f4b63203a27 Mon Sep 17 00:00:00 2001 From: null1979 <2219289+null1979@users.noreply.github.com> Date: Sat, 17 Oct 2026 11:20:53 -0600 Subject: [PATCH 1/2] fix(mac): stop opening an empty settings window at launch --- herdi-mac/Sources/HerdiMacApp.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/herdi-mac/Sources/HerdiMacApp.swift b/herdi-mac/Sources/HerdiMacApp.swift index 698d24f4..83d43ae5 100644 --- a/herdi-mac/Sources/HerdiMacApp.swift +++ b/herdi-mac/Sources/HerdiMacApp.swift @@ -8,8 +8,12 @@ struct HerdiApp: App { @NSApplicationDelegateAdaptor(HerdiAppDelegate.self) var appDelegate var body: some Scene { - // No visible window — the panel IS the UI - Settings { EmptyView() } + // No visible window — the panel IS the UI. macOS 26 opens a lone Settings scene at + // launch, which showed an empty "Herdi Settings" window, so it is suppressed. macOS 14 + // cannot suppress it, so it gets no scene. The panel and the status item are AppKit. + if #available(macOS 15.0, *) { + Settings { EmptyView() }.defaultLaunchBehavior(.suppressed) + } } } From 46670ee5376c4996eeb0a56cdc097571a8028521 Mon Sep 17 00:00:00 2001 From: null1979 <2219289+null1979@users.noreply.github.com> Date: Sat, 17 Oct 2026 11:40:48 -0600 Subject: [PATCH 2/2] fix(mac): keep the settings fix compiling on sdks older than macos 15 --- herdi-mac/Sources/HerdiMacApp.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/herdi-mac/Sources/HerdiMacApp.swift b/herdi-mac/Sources/HerdiMacApp.swift index 83d43ae5..aeeb7628 100644 --- a/herdi-mac/Sources/HerdiMacApp.swift +++ b/herdi-mac/Sources/HerdiMacApp.swift @@ -11,9 +11,14 @@ struct HerdiApp: App { // No visible window — the panel IS the UI. macOS 26 opens a lone Settings scene at // launch, which showed an empty "Herdi Settings" window, so it is suppressed. macOS 14 // cannot suppress it, so it gets no scene. The panel and the status item are AppKit. + // An SDK older than macOS 15 has no defaultLaunchBehavior and keeps the plain scene. + #if compiler(>=6.0) if #available(macOS 15.0, *) { Settings { EmptyView() }.defaultLaunchBehavior(.suppressed) } + #else + Settings { EmptyView() } + #endif } }