You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: Android model picker drops a newly selected model when you go back #18645
I searched existing issues and did not find a duplicate.
I included enough detail to reproduce or investigate the problem.
Area
apps/mobile
Steps to reproduce
In the Android app, open a thread (new task or existing) and tap the model and reasoning pill above the composer.
Tap a model other than the current one. It becomes highlighted and a Save button appears in the header.
Optionally change Reasoning. That change is attached to the highlighted model.
Leave the sheet with the header back arrow or the system back gesture.
Expected behavior
The thread uses the model I highlighted, with its reasoning. That is how web and desktop behave: clicking a model applies it immediately.
Actual behavior
The composer keeps the previous model. The highlighted model, and any reasoning change made for it, are dropped with no indication. Nothing on Android says that back means cancel (iOS at least shows an explicit Cancel button).
It is also inconsistent inside the same sheet: changing Reasoning for the current model applies immediately, but a different model only applies after Save. In practice it feels like "sometimes I need to press Save and sometimes I don't". I first thought it depended on whether the thread was new or existing.
Suggested fix: apply a model as soon as it is tapped (it only changes the composer draft until the message is sent) and keep the sheet open for reasoning, matching web. A smaller alternative would be to keep the highlighted model when the sheet is closed on Android.
Code pointers: apps/mobile/src/features/threads/ThreadSettingsSheet.tsx (pendingModel / commitPendingModel). The Android header only shows Save while a model is staged, and onBack closes without committing. Related but different: #15518 and #15719.
This is how the mobile picker is designed. In ThreadSettingsSheet.tsx on main, tapping a different model stages it as pendingModel ("The list highlights the staged pick; Save turns it into the applied one"), and only commitPendingModel via Save applies it. On Android, the header shows Save only while a model is staged, and back closes the sheet without applying it. Reasoning edits on the model that's already applied take effect immediately because nothing is staged in that case.
Switching mobile to apply on tap, like web, would change the product behavior. Please open that as an Ideas discussion. For now, tap Save before going back. #15518 / #15719 cover the related preview of remembered options.
Activity
juliusmarminge commentedon Oct 12, 2026
Note
Grok responding on behalf of Julius.
This is how the mobile picker is designed. In
ThreadSettingsSheet.tsxon main, tapping a different model stages it aspendingModel("The list highlights the staged pick; Save turns it into the applied one"), and onlycommitPendingModelvia Save applies it. On Android, the header shows Save only while a model is staged, and back closes the sheet without applying it. Reasoning edits on the model that's already applied take effect immediately because nothing is staged in that case.Switching mobile to apply on tap, like web, would change the product behavior. Please open that as an Ideas discussion. For now, tap Save before going back. #15518 / #15719 cover the related preview of remembered options.