feat(swift-ios): choose the reasoning level from the composer - #7344
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Warning Your free Security trial is over. An organization admin can activate Security or dismiss this notice. Comment |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This adds a new Swift iOS composer traits picker and routes selected reasoning and service-tier values into model submissions. Its multi-file production-path integration and nontrivial selection, default-resolution, and persistence logic make the impact broader than a small isolated UI adjustment. Not approved because:
Review your spending limits in Billing settings. You can add or adjust custom eligibility rules. Learn more. |
1f39d72 to
fce7740
Compare
8415ea9 to
d3c5630
Compare
|
Need this updated and also screenshots/vids |
d3c5630 to
6cf8887
Compare
|
@t3dotgg Updated: the branch is now on the current |
6cf8887 to
b849a88
Compare
|
@t3dotgg Updated again: I rebased the branch onto the current |
|
@t3dotgg Updated against the live SwiftUI target and refreshed the requested proof.
The prior |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high 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 46b2288. Configure here.
|
@t3dotgg Updated to the superseding acceptance target at exact head The SwiftUI composer now renders every supported model-option descriptor section in descriptor order. The Codex proof shows Reasoning followed by Service Tier, Focused verification: 32 tests passed, 0 failed; Dark mode — exact base → exact head
Interaction proof
Clean playable video: https://github.com/user-attachments/assets/b17c2f48-294f-46da-ad87-9da57ba01e12 Annotated playable video: https://github.com/user-attachments/assets/22c313e1-94a5-400c-b124-4b6dedb07d49 Light mode — exact base → exact head
The raw exact-head interaction capture is 76.758 seconds (SHA-256 Direct Claude Opus high review was attempted read-only on the frozen change, but the process exited 1 with HTTP 429 and zero model usage; no Claude model participated and cross-provider review was skipped because capacity was exhausted. |
GIF crop correctionThe three earlier GIFs were cropped too tightly and hid most of the descriptor menu. I replaced their live PR-body embeds without changing the PR head.
Dark comparisonInteractionCrop decision · dark receipt · light receipt · interaction receipt |
|
Current status: do not merge yet. Theo's SwiftUI target advanced to |
Upstream successor handoff — #110 / SwiftUI Test Build 86This records the contribution state only. The coordinator-owned phone acceptance remains on saphid/t3code-personal#110: Alex’s recorded verdict was “Reasoning menu looks good.” I did not create or alter that acceptance.
GitHub currently reports No product commit, push, rebase, proof mutation, media upload, or PR-body change was made during this handoff; the accepted candidate was preserved exactly. |
The composer's reasoning level was read-only, so changing it meant opening the model picker and reconfiguring the model. Make it an inline selector instead. The levels are read from the selected model's own option descriptor, so the client never assumes which levels a provider exposes, and choosing one writes the same selection shape the model picker's configuration screen writes through the composer's existing selection binding. Descriptors that are not a choice list, and values the model does not offer, keep the previous read-only and hidden behavior.
On-device review of the selector asked for two changes. The two prompt-tier "ultra" levels are not wanted in the composer, so the control excludes exactly the `ultracode` and `ultrathink` choice ids and documents that as the single product rule in an otherwise descriptor-driven control. A level excluded here is still displayed while it is the effective one, so the composer keeps telling the truth about a setting made elsewhere, but it is never offered or checked. The composer sits at the bottom of the screen, where an adaptive menu flips its contents and puts the highest level nearest the finger. Pin the menu to the descriptor's declared order so the lowest level reads first.
2524de5 to
4e361bf
Compare
0c68a6f
into
pingdotgg:t3code/rebuild-mobile-app-swift











Model options required opening the model picker. This adds composer controls for the selected model's reasoning, service tier, and other supported options.
Changing one option preserves unlisted saved values and leaves options without declared defaults unset. The control uses the current model-selection policy and shows the saved value instead of substituting a menu default.
Validation: 68 focused native tests passed at
4e361bf1e4ce04f07584d4680690b9cff16edad3, rebased onto SwiftUI base614a7b672a86ee638f284298fe26e8b0194e0eaa. Coverage includes option preservation, native dispatch, and keyboard dismissal. No new live interaction capture was made.Historical images and videos
These captures compare the original base with head
2524de5c55914a9364c56f1dcff7c5953b74ea98. They were not recaptured or revalidated for the modernized branch.Dark mode before:
Dark mode after:
Dark mode comparison
Light mode before:
Light mode after:
Light mode comparison
Interaction GIF · Video · Annotated video
Tracking: native work item.
Modernized and fixed with GPT-6 in Codex.