Skip to content

feat(desktop): integrate native window chrome and application menus - #619

Merged
xhd0728 merged 5 commits into
OpenBMB:mainfrom
mssssss123:codex/desktop-chrome-menus
Sep 28, 2026
Merged

xhd0728 merged 5 commits into
OpenBMB:mainfrom
mssssss123:codex/desktop-chrome-menus

Conversation

@mssssss123

@mssssss123 mssssss123 commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

The packaged client currently wraps the UI in a separate title bar and repeated outer borders. This change integrates native macOS traffic lights into the sidebar, adds a compact Windows application menu alongside native caption buttons, and removes the desktop viewport's extra gutter, border, radius and shadow. Startup, onboarding, settings, theme changes and fullscreen use the same desktop shell treatment.

Native menus now route New Conversation, New Project, Settings, Find, sidebar visibility, feature navigation and Check for Updates to existing UI actions. Help opens the PilotDeck documentation and GitHub Issues, and provides logs and basic version information. Commands respect project context and blocking dialogs; editor shortcuts and existing close/quit safeguards are preserved. Business UI styling and browser/PWA presentation remain unchanged.

Validation

  • UI typecheck, production build and desktop TypeScript compilation passed.
  • Web regression suite using the CI exclusions: 1799 passed; desktop suite: 86 passed, 1 skipped.
  • Real macOS Electron smoke checks passed for menu callbacks, project context, dialog blocking, sidebar visibility, repeated update checks, light/dark appearance, fullscreen and minimize/restore.
  • macOS lifecycle checks passed for normal operation, startup quit, stop failure, update, update recovery and shutdown. Windows CI also passed the native lifecycle checks, isolated installer install/upgrade/uninstall checks, full x64 installer build and artifact/update-feed validation.
  • Native macOS New Project and Settings shortcuts, title double-click renaming, Control+Command+F fullscreen entry/exit and Command+F search were manually verified.

Remaining platform acceptance

Windows native visual/interaction acceptance requires a Windows host: caption controls, dragging and double-click behavior, menu/F10 interaction, Snap Layouts and display scaling. macOS titlebar dragging and the system-configured double-click action also remain manual acceptance items. No installer or release is published by this PR.

Review fixes

  • Exclude the renameable session title from the native drag region while preserving header whitespace dragging.
  • Match only plain platform editing shortcuts in the main process; exclude Control+Command+F from renderer Find handling so native fullscreen remains available.
  • Inject IPC into the caption installer and use a type-only Electron import, allowing the caption tests to run with Web-only dependencies.
  • Launch the Windows GUI lifecycle fixture without windowsHide, which can suppress the first native window show through STARTUPINFO. Existing startup-close and tray-restore assertions remain intact and passed on the Windows CI rerun.
  • Locate Windows File > Exit by a stable menu ID instead of assuming it is the first File menu item; the native quit-confirmation assertion remains enabled.

All five PR checks passed on commit 846d2d52: Web, Docker, desktop static checks, macOS lifecycle and Windows installer build.

mssssss123 and others added 4 commits September 27, 2026 22:29
Add native Windows caption menus while preserving the original application layout and colors. Sync caption labels with the UI locale and handle fullscreen and native menu refreshes safely.
@xhd0728 xhd0728 self-assigned this Sep 28, 2026
Switch Windows native popups on caption hover or click, serialize native close callbacks, and clean up active menu sessions on navigation or window changes. Derive Find menu availability from the same registered target resolver used by shortcut dispatch.

Validated with 23 focused tests, desktop compilation, UI build, Electron smoke, five Windows lifecycle scenarios, and native Windows hover/click plus empty-file Find checks.
@xhd0728
xhd0728 merged commit ad6a2c0 into OpenBMB:main Sep 28, 2026
5 checks passed
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.

2 participants