Problem
CLI upgrades (Codex, Claude, GH, OpenCode) currently show a blocking modal that prevents using the app while the upgrade runs. Both CliReinstallModal (progress bar dialog) and CliLoginModal (full-screen terminal) block the entire screen.
Since upgrades are non-interactive once started, users should be able to minimize the modal and continue working.
Proposed Solution
- Add a minimize button (Minus icon) to both upgrade modal types
- When minimized, show an inline progress indicator in the titlebar (top-right, next to the existing app update indicator)
- The indicator shows: spinner + CLI name + progress percent (for reinstall) or Updating... (for terminal-based upgrades)
- Auto-dismiss on completion with a success/error toast notification
- Backend processes (Tauri commands, PTYs) continue running regardless of modal state
Files Affected
- src/store/ui-store.ts - New minimizedCliUpdate state
- src/components/titlebar/MinimizedCliUpdate.tsx - New titlebar indicator component
- src/components/preferences/CliReinstallModal.tsx - Add minimize button
- src/components/layout/CliUpdateModal.tsx - Wire minimize handler
- src/components/preferences/CliLoginModal.tsx - Add minimize with PTY-safe cleanup
- src/components/titlebar/TitleBar.tsx - Render indicator
- docs/developer/auto-updates.md - Document the feature
- docs/developer/notifications.md - Document titlebar indicator pattern
Problem
CLI upgrades (Codex, Claude, GH, OpenCode) currently show a blocking modal that prevents using the app while the upgrade runs. Both CliReinstallModal (progress bar dialog) and CliLoginModal (full-screen terminal) block the entire screen.
Since upgrades are non-interactive once started, users should be able to minimize the modal and continue working.
Proposed Solution
Files Affected