openclaw/apps/macos/Sources/OpenClaw
Brian Ernesto ab1da26f4d
fix(macos): show sessions after controls in tray menu (#38079)
* fix(macos): show sessions after controls in tray menu

When many sessions are active, the injected session rows push the
toggles, action buttons, and settings items off-screen, requiring
a scroll to reach them.

Change findInsertIndex and findNodesInsertIndex to anchor just before
the separator above 'Settings…' instead of before 'Send Heartbeats'.
This ensures the controls section is always immediately visible on
menu open, with sessions appearing below.

* refactor: extract findAnchoredInsertIndex to eliminate duplication

findInsertIndex and findNodesInsertIndex shared identical logic.
Extract into a single private helper so any future anchor change
(e.g. Settings item title) only needs one edit.

* macOS: use structural tray menu anchor

---------

Co-authored-by: Brian Ernesto <bernesto@users.noreply.github.com>
Co-authored-by: ImLukeF <92253590+ImLukeF@users.noreply.github.com>
2026-03-18 11:29:11 +11:00
..
Logging
NodeMode fix: switch pairing setup codes to bootstrap tokens 2026-03-12 22:23:07 +00:00
Resources build: prepare 2026.3.14 cycle 2026-03-14 06:02:01 +00:00
AboutSettings.swift
AgeFormatting.swift
AgentEventStore.swift
AgentEventsWindow.swift
AgentWorkspace.swift
AgentWorkspaceConfig.swift
AnyCodable+Helpers.swift refactor: share Apple talk config parsing 2026-03-08 14:58:29 +00:00
AppState.swift macOS/onboarding: prompt for remote gateway auth tokens (#43100) 2026-03-11 13:53:19 +02:00
AudioInputDeviceObserver.swift
CLIInstallPrompter.swift
CLIInstaller.swift
CameraCaptureService.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
CanvasA2UIActionMessageHandler.swift fix(macos): restore debug build helpers (#48046) 2026-03-16 10:57:08 +02:00
CanvasChromeContainerView.swift
CanvasFileWatcher.swift style(swift): apply lint and format cleanup 2026-03-03 03:07:55 +00:00
CanvasManager.swift
CanvasScheme.swift
CanvasSchemeHandler.swift fix(macos): block canvas symlink escapes 2026-03-16 23:56:35 -07:00
CanvasWindow.swift
CanvasWindowController+Helpers.swift
CanvasWindowController+Navigation.swift
CanvasWindowController+Testing.swift refactor(macos): simplify pairing alert and host helper paths 2026-03-03 03:07:54 +00:00
CanvasWindowController+Window.swift
CanvasWindowController.swift macOS: restrict canvas agent actions to trusted surfaces (#46790) 2026-03-14 23:26:19 -07:00
ChannelConfigForm.swift
ChannelsSettings+ChannelSections.swift
ChannelsSettings+ChannelState.swift
ChannelsSettings+Helpers.swift
ChannelsSettings+View.swift
ChannelsSettings.swift
ChannelsStore+Config.swift
ChannelsStore+Lifecycle.swift
ChannelsStore.swift
CoalescingFSEventsWatcher.swift
ColorHexSupport.swift
CommandResolver.swift
ConfigFileWatcher.swift style(swift): apply lint and format cleanup 2026-03-03 03:07:55 +00:00
ConfigSchemaSupport.swift
ConfigSettings.swift
ConfigStore.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
ConnectionModeCoordinator.swift
ConnectionModeResolver.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
Constants.swift
ContextMenuCardView.swift
ContextUsageBar.swift
ControlChannel.swift fix: switch pairing setup codes to bootstrap tokens 2026-03-12 22:23:07 +00:00
CostUsageMenuView.swift
CritterIconRenderer.swift
CritterStatusLabel+Behavior.swift
CritterStatusLabel.swift
CronJobEditor+Helpers.swift feat(cron): support custom session IDs and auto-bind to current session (#16511) 2026-03-14 16:48:46 +11:00
CronJobEditor+Testing.swift
CronJobEditor.swift feat(cron): support custom session IDs and auto-bind to current session (#16511) 2026-03-14 16:48:46 +11:00
CronJobsStore.swift
CronModels.swift fix(macos): restore debug build helpers (#48046) 2026-03-16 10:57:08 +02:00
CronSettings+Actions.swift
CronSettings+Helpers.swift
CronSettings+Layout.swift
CronSettings+Rows.swift feat(cron): support custom session IDs and auto-bind to current session (#16511) 2026-03-14 16:48:46 +11:00
CronSettings+Testing.swift
CronSettings.swift
DebugActions.swift
DebugSettings.swift
DeepLinks.swift
DeviceModelCatalog.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
DevicePairingApprovalPrompter.swift
DiagnosticsFileLog.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
DockIconManager.swift
DurationFormattingSupport.swift
ExecAllowlistMatcher.swift
ExecApprovalEvaluation.swift fix: bind macOS skill trust to resolved paths 2026-03-13 21:00:59 +00:00
ExecApprovals.swift macOS: respect exec-approvals.json settings in gateway prompter (#13707) 2026-03-14 12:00:15 +11:00
ExecApprovalsGatewayPrompter.swift macOS: respect exec-approvals.json settings in gateway prompter (#13707) 2026-03-14 12:00:15 +11:00
ExecApprovalsSocket.swift fix(macos): harden exec approval socket auth 2026-03-16 23:00:22 -07:00
ExecCommandResolution.swift fix: harden macos shell continuation parsing 2026-03-13 20:54:10 +00:00
ExecEnvInvocationUnwrapper.swift
ExecEnvOptions.swift
ExecHostRequestEvaluator.swift
ExecShellWrapperParser.swift
ExecSystemRunCommandValidator.swift style(swift): apply lint and format cleanup 2026-03-03 03:07:55 +00:00
FileHandle+SafeRead.swift
GatewayAutostartPolicy.swift
GatewayConnection.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
GatewayConnectivityCoordinator.swift
GatewayDiscoveryHelpers.swift
GatewayDiscoveryMenu.swift
GatewayDiscoveryPreferences.swift
GatewayDiscoverySelectionSupport.swift fix(macos): improve tailscale gateway discovery (#40167) 2026-03-08 21:49:42 +02:00
GatewayEndpointStore.swift fix(macos): preserve unsupported remote gateway tokens 2026-03-08 21:28:17 +02:00
GatewayEnvironment.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
GatewayLaunchAgentManager.swift
GatewayProcessManager.swift
GatewayPushSubscription.swift
GatewayRemoteConfig.swift fix(macos): preserve unsupported remote gateway tokens 2026-03-08 21:28:17 +02:00
GeneralSettings.swift macOS/onboarding: prompt for remote gateway auth tokens (#43100) 2026-03-11 13:53:19 +02:00
HealthStore.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
HeartbeatStore.swift
HostEnvSanitizer.swift fix(exec): block dangerous override-only env pivots 2026-03-07 19:18:05 +00:00
HostEnvSecurityPolicy.generated.swift fix(security): block JVM, Python, and .NET env injection vectors in host exec sandbox (#49025) 2026-03-17 15:37:55 +01:00
HoverHUD.swift
IconState.swift
InstancesSettings.swift
InstancesStore.swift
JSONObjectExtractionSupport.swift
LaunchAgentManager.swift fix(macos): stop relaunching the app after quit when launch-at-login is enabled (#40213) 2026-03-17 20:59:56 +11:00
Launchctl.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
LaunchdManager.swift
LogLocator.swift
MenuBar.swift
MenuContentView.swift
MenuContextCardInjector.swift
MenuHeaderCard.swift
MenuHighlightedHostView.swift
MenuHostedItem.swift
MenuItemHighlightColors.swift
MenuSessionsHeaderView.swift
MenuSessionsInjector.swift fix(macos): show sessions after controls in tray menu (#38079) 2026-03-18 11:29:11 +11:00
MenuUsageHeaderView.swift
MicLevelMonitor.swift
MicRefreshSupport.swift
ModelCatalogLoader.swift
NSAttributedString+VoiceWake.swift
NodePairingApprovalPrompter.swift
NodeServiceManager.swift fix: update macOS node service to use current CLI command shape (closes #43171) (#46843) 2026-03-17 20:46:54 +11:00
NodesMenu.swift style(swift): apply lint and format cleanup 2026-03-03 03:07:55 +00:00
NodesStore.swift
NotificationManager.swift
NotifyOverlay.swift macOS: fix VoiceWakeOverlayController exclusivity violation #39275 2026-03-08 13:47:27 +00:00
Onboarding.swift macOS/onboarding: prompt for remote gateway auth tokens (#43100) 2026-03-11 13:53:19 +02:00
OnboardingView+Actions.swift
OnboardingView+Chat.swift
OnboardingView+Layout.swift
OnboardingView+Monitoring.swift
OnboardingView+Pages.swift fix: switch pairing setup codes to bootstrap tokens 2026-03-12 22:23:07 +00:00
OnboardingView+Testing.swift
OnboardingView+Wizard.swift
OnboardingView+Workspace.swift
OnboardingWidgets.swift
OnboardingWizard.swift
OpenClawConfigFile.swift
OpenClawPaths.swift
OverlayPanelFactory.swift macOS: fix VoiceWakeOverlayController exclusivity violation #39275 2026-03-08 13:47:27 +00:00
PairingAlertSupport.swift refactor(macos): simplify pairing alert and host helper paths 2026-03-03 03:07:54 +00:00
PeekabooBridgeHostCoordinator.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
PermissionManager.swift
PermissionMonitoringSupport.swift
PermissionsSettings.swift fix: land contributor PR #39516 from @Imhermes1 2026-03-08 06:11:20 +00:00
PlatformLabelFormatter.swift
PointingHandCursor.swift
PortGuardian.swift fix(macos): prevent PortGuard from killing Docker Desktop in remote mode (#13798) 2026-03-14 12:26:09 +11:00
PresenceReporter.swift
Process+PipeRead.swift
ProcessInfo+OpenClaw.swift
RemoteGatewayProbe.swift fix: switch pairing setup codes to bootstrap tokens 2026-03-12 22:23:07 +00:00
RemotePortTunnel.swift
RemoteTunnelManager.swift
RuntimeLocator.swift fix(macos): align minimum Node.js version with runtime guard (22.16.0) (#45640) 2026-03-14 13:43:21 +11:00
ScreenRecordService.swift
ScreenshotSize.swift
SelectableRow.swift
SessionActions.swift
SessionData.swift
SessionMenuLabelView.swift
SessionMenuPreviewView.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
SessionsSettings.swift
SettingsComponents.swift
SettingsRefreshButton.swift
SettingsRootView.swift fix: land contributor PR #39516 from @Imhermes1 2026-03-08 06:11:20 +00:00
SettingsSidebarCard.swift
SettingsSidebarScroll.swift
SettingsWindowOpener.swift
ShellExecutor.swift
SimpleFileWatcher.swift
SimpleFileWatcherOwner.swift
SimpleTaskSupport.swift
SkillsModels.swift
SkillsSettings.swift
SoundEffects.swift
StatusPill.swift
String+NonEmpty.swift
SystemPresenceInfo.swift
SystemRunSettingsView.swift
SystemSettingsURLSupport.swift
TailscaleIntegrationSection.swift
TailscaleService.swift
TalkAudioPlayer.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
TalkDefaults.swift refactor: centralize talk silence timeout defaults 2026-03-08 14:58:29 +00:00
TalkModeController.swift
TalkModeGatewayConfig.swift refactor: split talk gateway config loaders 2026-03-08 16:22:48 +00:00
TalkModeRuntime.swift refactor: split talk gateway config loaders 2026-03-08 16:22:48 +00:00
TalkModeTypes.swift
TalkOverlay.swift macOS: fix VoiceWakeOverlayController exclusivity violation #39275 2026-03-08 13:47:27 +00:00
TalkOverlayView.swift
TerminationSignalWatcher.swift
TextSummarySupport.swift
TrackingAreaSupport.swift
UsageCostData.swift
UsageData.swift
UsageMenuLabelView.swift
UserDefaultsMigration.swift
ViewMetrics.swift
VisualEffectView.swift
VoiceOverlayTextFormatting.swift
VoicePushToTalk.swift style(swift): apply lint and format cleanup 2026-03-03 03:07:55 +00:00
VoiceSessionCoordinator.swift
VoiceWakeChime.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
VoiceWakeForwarder.swift fix(macos): clean swiftformat pass and sendable warning 2026-03-08 13:22:46 +00:00
VoiceWakeGlobalSettingsSync.swift
VoiceWakeHelpers.swift
VoiceWakeOverlay.swift
VoiceWakeOverlayController+Session.swift
VoiceWakeOverlayController+Testing.swift
VoiceWakeOverlayController+Window.swift macOS: fix VoiceWakeOverlayController exclusivity violation #39275 2026-03-08 13:47:27 +00:00
VoiceWakeOverlayTextViews.swift
VoiceWakeOverlayView.swift
VoiceWakeRecognitionDebugSupport.swift
VoiceWakeRuntime.swift style(swift): apply lint and format cleanup 2026-03-03 03:07:55 +00:00
VoiceWakeSettings.swift
VoiceWakeTestCard.swift
VoiceWakeTester.swift
VoiceWakeTextUtils.swift
WebChatManager.swift
WebChatSwiftUI.swift fix(mac): adopt canonical session key and add reset triggers (#10898) 2026-03-13 12:35:39 +11:00
WindowPlacement.swift
WorkActivityStore.swift