Repository navigation
iOS: show the full alt-screen notice on compact phones - #7727
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThe alt-screen notice popover now uses fitted sizing with a scrollable fallback, updated dismiss-button styling, and explicit sizing behavior. The terminal layout preview conditionally adds a toolbar notice button driven by display settings when the preview flag is enabled. ChangesAlt-screen notice UI and preview wiring
Estimated code review effort: 2 (Simple) | ~10 minutes Sequence Diagram(s)sequenceDiagram
participant TerminalLayoutPreviewView
participant MobileDisplaySettings
participant AltScreenNoticeButton
participant Popover
TerminalLayoutPreviewView->>MobileDisplaySettings: read showAltScreenNotice
TerminalLayoutPreviewView->>AltScreenNoticeButton: add toolbar button when preview flag is enabled
AltScreenNoticeButton->>Popover: present fitted notice content
AltScreenNoticeButton->>MobileDisplaySettings: clear showAltScreenNotice on dismiss
Possibly related PRs
🚥 Pre-merge checks | ✅ 24 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (24 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryFixes clipped alt-screen notice popovers on compact iPhones and large Dynamic Type by wrapping the popover content in
Confidence Score: 5/5Safe to merge — localized UI and popover presentation only, with no auth, networking, or terminal protocol changes. All changes are scoped to the alt-screen notice popover: layout sizing, scroll fallback, copy update, and a debug simulator harness inside an existing DEBUG-only file. The package deployment target is iOS 18, which matches the PresentationSizing API requirement. Both supported locales (en, ja) are updated consistently. No state management regressions, no actor isolation issues, and no blocking synchronization introduced. No files require special attention. Important Files Changed
Sequence Diagram%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant User as User (compact iPhone)
participant Button as AltScreenNoticeButton
participant Popover as Popover(.popover)
participant VTF as ViewThatFits(in: .vertical)
participant Sizing as AltScreenNoticePresentationSizing
participant Content as popoverContent
participant Scroll as ScrollView fallback
User->>Button: tap exclamation triangle
Button->>Popover: "isPresented = true"
Popover->>Sizing: proposedSize(for: root)
Sizing->>Content: sizeThatFits(width: 340, height: nil)
Content-->>Sizing: measured height
Sizing-->>Popover: ProposedViewSize(340, measured height)
Popover->>VTF: layout with system-clamped height
alt content fits vertical space
VTF->>Content: render popoverContent directly
else height too small (large Dynamic Type / compact screen)
VTF->>Scroll: "render ScrollView { popoverContent }"
end
User->>Content: tap Don't Show Again
Content->>Button: dismissFromPopover()
Button->>Button: "dismissNotice() + isPresentingExplanation = false"
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant User as User (compact iPhone)
participant Button as AltScreenNoticeButton
participant Popover as Popover(.popover)
participant VTF as ViewThatFits(in: .vertical)
participant Sizing as AltScreenNoticePresentationSizing
participant Content as popoverContent
participant Scroll as ScrollView fallback
User->>Button: tap exclamation triangle
Button->>Popover: "isPresented = true"
Popover->>Sizing: proposedSize(for: root)
Sizing->>Content: sizeThatFits(width: 340, height: nil)
Content-->>Sizing: measured height
Sizing-->>Popover: ProposedViewSize(340, measured height)
Popover->>VTF: layout with system-clamped height
alt content fits vertical space
VTF->>Content: render popoverContent directly
else height too small (large Dynamic Type / compact screen)
VTF->>Scroll: "render ScrollView { popoverContent }"
end
User->>Content: tap Don't Show Again
Content->>Button: dismissFromPopover()
Button->>Button: "dismissNotice() + isPresentingExplanation = false"
Reviews (9): Last reviewed commit: "Separate alt-screen presentation sizing" | Re-trigger Greptile |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit c52323e. Configure here.

Summary
Testing
./scripts/reload.sh --tag altfit./ios/scripts/reload.sh --tag altfit --simulator cmux-altfit-primary-20260709-1125Issues
Need help on this PR? Tag
/codesmithwith what you need. Autofix is disabled.Note
Low Risk
SwiftUI presentation and copy changes for an informational notice only; no auth, networking, or terminal protocol impact.
Overview
Fixes clipped alt-screen explanation popovers on compact iPhones and large Dynamic Type by sizing the presentation to content at 340pt width and falling back to a vertical ScrollView when height is tight.
The popover uses a new
AltScreenNoticePresentationSizinghelper plusViewThatFits/scrollBounceBehavior(.basedOnSize)instead of a fixed 320pt content frame. Copy now includes concrete exit steps (Claude Code/tui default, Codexcodex --no-alt-screen), with matching en/ja strings inLocalizable.xcstrings. The permanent-dismiss control gets an accessibility identifier for UI tests.DEBUG
TerminalLayoutPreviewViewcan mount the notice in aNavigationStacktoolbar whenCMUX_UITEST_ALT_SCREEN_NOTICE_PREVIEW=1, wired toMobileDisplaySettings.showAltScreenNotice.Reviewed by Cursor Bugbot for commit 13f89d9. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by cubic
Shows the full alt-screen notice on compact iPhones and with large Dynamic Type by fitting the native popover to measured content at 340pt, with a vertical scroll fallback and size-based bounce to avoid clipping.
Extracts sizing into
AltScreenNoticePresentationSizing, adds a DEBUG preview behindCMUX_UITEST_ALT_SCREEN_NOTICE_PREVIEW=1that mounts the notice button in aNavigationStacktoolbar and dismisses viaMobileDisplaySettings, adds an accessibility ID on the permanent-dismiss button, and updates the copy with clear exit steps: Claude Code/tui default; Codexcodex --no-alt-screen.Written for commit 13f89d9. Summary will update on new commits.
Summary by CodeRabbit
UI Improvements
Preview/Test Behavior