[macOS][Codex App] Top-left full-screen controls shift after returning from Settings
What version of the Codex App are you using (From “About Codex” dialog)?
26.814.41407 (Build 6720)
What subscription do you have?
Plus
What platform is your computer?
Darwin 25.6.0 arm64 arm
What issue are you seeing?
When the Codex App is in macOS full-screen mode, the top-left toolbar/window-control buttons initially use the correct full-screen layout. If the user opens Settings and then returns to the home/app view, the buttons switch to the non-full-screen/title-bar-inset layout and shift to the right.
The regression occurs whether the sidebar is shown or hidden. It is therefore different from the earlier sidebar-dependent full-screen issue: entering full screen directly from the window now produces the correct layout in both sidebar states, but visiting Settings causes the layout to become incorrect after returning.
What steps can reproduce the bug?
- Open the Codex App on macOS.
- Enter macOS full-screen mode (for example, with the green window control or
Control-Command-F). - Reproduce with the sidebar visible, and again with the sidebar hidden.
- Open Settings.
- Return to the home/app view using the app's back navigation.
- Observe the top-left button group.
What is the expected behavior?
The app should retain the full-screen window state across navigation to and from Settings. After returning, the top-left controls should remain in the same full-screen position and appearance as before Settings was opened, regardless of sidebar visibility.
Additional information
The likely failure mode is a lost one-shot state update during the Settings transition:
- The native window emits a
window-fullscreen-changedevent. - The home AppShell records the full-screen state.
- Navigating to Settings unmounts that AppShell.
- Returning creates a new AppShell whose initial state defaults to non-full-screen.
- The prior full-screen event is not replayed, so the new AppShell applies the normal macOS title-bar safe-area inset and shifts the controls right.
A robust fix is to keep the latest full-screen state in a shared window-state store/message bus and initialize every newly mounted AppShell from that value. Alternatively, the AppShell can query the native window's current full-screen state on mount and continue listening for future changes. A regression test should cover both sidebar states and the sequence full screen → Settings → Back to app.
A local experiment against the installed packaged app preserved the full-screen state across the Settings/AppShell remount and passed a self-check. This was only local validation; the desktop app's original frontend source is not part of this public repository, so no compiled app bundle or local files are attached.
Issue #34048 also concerns macOS title-bar toolbar layout, but it is an Intel/macOS 13 obscured-controls report and does not cover this full-screen → Settings state-loss regression.