Part of EPIC #193.
Description
The existing closeProjectAlert (MacApp/Relay/AppFeature.swift:118-151) only triggers on Cmd+Shift+W. Closing a window via its red traffic-light button currently bypasses the active-sessions check. Subscribe to NSWindowDelegate.windowShouldClose(_:) (via AppDelegate or an NSViewRepresentable bridge), return false when active sessions exist, dispatch .closeProject into the store to show the existing alert, and call window.performClose(nil) if the user confirms "Stop All & Close".
Acceptance Criteria
Module / Layer
Relay / AppFeature + AppDelegate
Complexity
Medium
Dependencies
None.
Part of EPIC #193.
Description
The existing
closeProjectAlert(MacApp/Relay/AppFeature.swift:118-151) only triggers onCmd+Shift+W. Closing a window via its red traffic-light button currently bypasses the active-sessions check. Subscribe toNSWindowDelegate.windowShouldClose(_:)(viaAppDelegateor anNSViewRepresentablebridge), returnfalsewhen active sessions exist, dispatch.closeProjectinto the store to show the existing alert, and callwindow.performClose(nil)if the user confirms "Stop All & Close".Acceptance Criteria
closeProjectAlertis shownCmd+Shift+Wflow is unchangedCmd+Q(quit app) behaviour is unchangedswiftlint lint --strictcleanModule / Layer
Relay / AppFeature + AppDelegate
Complexity
Medium
Dependencies
None.