The file /Users/neog/Apps/macOS/NEOGHub/NEOGCommand/Modules/Settings/SettingsView.swift has been updated. Here's the result of running `cat -n` on a snippet of the edited file: 98→ } 99→ } 100→} 101→ 102→struct ServicePortsView: View { 103→ let services = [ 104→ ("Log Server", 9001), 105→ ("System Monitor", 5555), 106→ ("WiFi API", 9002), 107→ ("Workspace API", 9004), 108→ ("LM Studio", 1234) 109→ ] 110→ 111→ var body: some View { 112→ ForEach(services, id: \.0) { name, port in 113→ HStack { 114→ Text(name) 115→ Spacer() 116→ Text(":\(port)") 117→ .font(.caption.monospacedDigit()) 118→ .foregroundStyle(.secondary) 119→ } 120→ } 121→ } 122→} 123→ 124→// MARK: - Notification Settings View 125→ 126→struct NotificationSettingsView: View { 127→ @ObservedObject var notificationService: NotificationService 128→ 129→ var body: some View { 130→ VStack(alignment: .leading, spacing: 12) { 131→ // Authorization Status 132→ HStack { 133→ Image(systemName: notificationService.isAuthorized ? "bell.badge.fill" : "bell.slash") 134→ .foregroundStyle(notificationService.isAuthorized ? .green : .orange) 135→ 136→ Text(notificationService.isAuthorized ? "Notifications Enabled" : "Notifications Disabled") 137→ 138→ Spacer() 139→ 140→ if !notificationService.isAuthorized { 141→ Button("Enable") { 142→ Task { 143→ _ = await notificationService.requestAuthorization() 144→ } 145→ } 146→ .buttonStyle(.borderedProminent) 147→ .controlSize(.small) 148→ } else { 149→ Button("System Settings") { 150→ notificationService.openSystemPreferences() 151→ } 152→ .buttonStyle(.bordered) 153→ .controlSize(.small) 154→ } 155→ } 156→ .padding(.bottom, 8) 157→ 158→ Divider() 159→ 160→ // Notification Types 161→ Group { 162→ Toggle("Budget Alerts", isOn: $notificationService.notifyBudgetAlerts) 163→ .disabled(!notificationService.isAuthorized) 164→ 165→ if notificationService.notifyBudgetAlerts { 166→ HStack { 167→ Text("Alert Threshold") 168→ .foregroundStyle(.secondary) 169→ Spacer() 170→ Picker("", selection: $notificationService.budgetAlertThreshold) { 171→ Text("50%").tag(50.0) 172→ Text("70%").tag(70.0) 173→ Text("80%").tag(80.0) 174→ Text("90%").tag(90.0) 175→ Text("100%").tag(100.0) 176→ } 177→ .pickerStyle(.menu) 178→ .frame(width: 100) 179→ .disabled(!notificationService.isAuthorized) 180→ } 181→ .padding(.leading, 20) 182→ } 183→ 184→ Toggle("Run Completed", isOn: $notificationService.notifyRunCompleted) 185→ .disabled(!notificationService.isAuthorized) 186→ 187→ Toggle("Service Status Changes", isOn: $notificationService.notifyServiceStatus) 188→ .disabled(!notificationService.isAuthorized) 189→ 190→ Toggle("Connection Status", isOn: $notificationService.notifyConnectionStatus) 191→ .disabled(!notificationService.isAuthorized) 192→ } 193→ 194→ Divider() 195→ 196→ // Test Notification 197→ HStack { 198→ Text("Test Notifications") 199→ .foregroundStyle(.secondary) 200→ Spacer() 201→ Button("Send Test") { 202→ Task { 203→ await notificationService.sendCustomNotification( 204→ title: "Test Notification", 205→ subtitle: "NEOG Command", 206→ body: "Notifications are working correctly!" 207→ ) 208→ } 209→ } 210→ .buttonStyle(.bordered) 211→ .controlSize(.small) 212→ .disabled(!notificationService.isAuthorized) 213→ } 214→ } 215→ } 216→} 217→ 218→#Preview { 219→ SettingsView() 220→ .frame(width: 500, height: 600) 221→} 222→