Skip to content

Fix Settings window intermittently not appearing - #188

Open
Arsey wants to merge 2 commits into
mattt:mainfrom
Arsey:fix/settings-window-not-appearing
Open

Fix Settings window intermittently not appearing#188
Arsey wants to merge 2 commits into
mattt:mainfrom
Arsey:fix/settings-window-not-appearing

Conversation

@Arsey

@Arsey Arsey commented Aug 19, 2026

Copy link
Copy Markdown

Summary

Clicking "Settings..." in the menu sometimes does nothing — repeatedly. The failure is intermittent, which makes it look random, but it reproduces reliably on the first click after a fresh launch.

Root cause

iMCP is an accessory app (LSUIElement), so openSettings() alone is unreliable: it routes through a responder-chain action that only lands when the app is frontmost, which is ambiguous right as the menu popover dismisses. Both other window-showing paths in the same file (About, connection approval) already work around this by calling NSApp.activate(ignoringOtherApps: true) first — Settings was the one path missing it.

Fix

Activate the app before calling openSettings(), matching the existing pattern.

Test plan

  • Reproduced pre-fix: fresh launch → first "Settings..." click does nothing
  • Post-fix: same cold-start click opens the window, repeatedly
  • xcodebuild build succeeds

Arsey and others added 2 commits August 18, 2026 21:30
iMCP is an accessory app (LSUIElement = YES, no Dock icon). SwiftUI's
openSettings() routes through a responder-chain action that only
reliably lands when the app is already frontmost, which is ambiguous
right as the custom menu bar popover dismisses — causing the window
to randomly fail to open. Every other window-showing action in this
file (About iMCP, connection approval) already works around this by
calling NSApp.activate(ignoringOtherApps: true) first; Settings was
the one path missing it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QLDiNzrDds62dnD9NoCEJV
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QLDiNzrDds62dnD9NoCEJV
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant