Skip to content

Fix macOS interactive feedback visibility and add native dialog fallback#48

Open
LelandJin wants to merge 1 commit intonoopstudios:mainfrom
LelandJin:main
Open

Fix macOS interactive feedback visibility and add native dialog fallback#48
LelandJin wants to merge 1 commit intonoopstudios:mainfrom
LelandJin:main

Conversation

@LelandJin
Copy link
Copy Markdown

Summary

This PR improves the reliability of interactive-feedback-mcp on macOS.

The previous behavior could fail in two ways:

  • the feedback window could open off-screen or fail to come to the foreground
  • the MCP flow could still fail even when the UI path was not reliable

To address this, this change:

  • adds macOS window management helpers to bring the PySide window to the front
  • ensures restored windows are still visible on an active screen
  • centers the window on the primary screen when needed
  • adds a native macOS dialog fallback in server.py for feedback collection
  • wraps MCP stdio startup more safely to avoid noisy interruption behavior

Changes

  • Added macOS-specific window activation logic in feedback_ui.py
  • Added window centering and on-screen visibility checks in feedback_ui.py
  • Improved initial window focus behavior when the UI is shown
  • Added a native AppleScript-based feedback dialog fallback in server.py for macOS
  • Kept the existing stdio MCP flow intact while improving reliability on macOS

Why

The goal is to make interactive feedback consistently usable on macOS, especially when:

  • the saved window position is invalid
  • the feedback UI is launched behind other windows
  • the PySide UI path is less reliable than a native system dialog

Validation

  • Verified Python syntax with py_compile
  • Verified the native macOS dialog path can return user input successfully
  • Verified interactive-feedback-mcp can receive feedback through the intended tool path

Impact

This change is scoped to the interactive-feedback-mcp project and primarily affects macOS behavior.
Non-macOS platforms continue to use the existing feedback UI flow.

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