fix(mobile): reopen the model picker after an iOS sheet swipe - #11758
derektrimm wants to merge 1 commit into
Conversation
The model and effort sheet latched open after an iOS form-sheet swipe dismiss, because the presenting screen often never refocuses. Treat the navigation stack as the source of truth so a later tap can open the picker again.
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a narrowly scoped mobile bug fix that reconciles stale model-picker state with the navigation stack after an iOS sheet swipe. It adds no new capability or cross-cutting infrastructure and includes focused unit coverage for the state logic. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughThe change adds navigation-stack helpers and uses them in both thread settings entry points. Navigation state and transition events now reconcile dismissed settings sheets, reset presentation latches, and allow subsequent openings. ChangesSettings sheet route reconciliation
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to No confirmed issue blocks merging this settings-sheet reconciliation change. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Am I misunderstanding what this PR fixes cause I can't reproduce the bug, by either swiping from the header, the sheet body or pressing Cancel or Done? ScreenRecording_09-15-2026.10-31-14_1.MP4 |
|
Closing this. Julius's recording shows the model picker still opening after swipe, Cancel, and Done, so this isn't the failure on device. I also can't get Thread Settings to open on an iPhone 14 Pro Max (iOS 26.7): tapping GPT-6-Astra hits the composer (iOS shows Paste/AutoFill) instead of the model control. The tap-through fix is @juliusmarminge #11944 The prompt-clipping issue stays on #11757 |
|
I am on a newer version so lets hope your issues are fixed as well in the next release (hopefully tonight or tomorrow) |
Sounds good, I'll keep an eye out. I did just update to iOS 27 to see if that fixed it, and the issue is still there. Strange because it looks like it isn't affecting you. I included a recording in #11944 |
What Changed
The model and effort sheet latched open after an iOS form-sheet swipe dismiss, because the presenting screen often never refocuses. Treat the navigation stack as the source of truth so a later tap can open the picker again.
Opening reconciles from the stack (
presented && !routeVisible) before theisActivelatch, so a fast double-tap during the normal open window does not wipe the keyboard-restore flag.Why
iOS form sheets often keep the presenting screen focused, so a swipe dismiss never re-runs
useFocusEffect. JS then thinks the picker is still open and later model/effort taps no-op. The navigation stack is the fact that actually changed.UI Changes
Native iOS settings sheet presentation. No screenshots: the failure is a tap that does nothing after a swipe dismiss.
Checklist
Summary by CodeRabbit
Bug Fixes
Tests