improve(ios): simplify Talk controls and composer alignment#98736
Conversation
|
Codex review: needs changes before merge. Reviewed July 1, 2026, 7:46 PM ET / 23:46 UTC. Summary PR surface: Docs 0, Other +28. Total +28 across 9 files. Reproducibility: yes. for the review finding: PR-head source leaves Review metrics: none identified. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Copy recommended automerge instructionNext step before merge
Security Review findings
Review detailsBest possible solution: Keep the focused iOS UI polish, but update the App Review background-audio steps so reviewers explicitly enable background listening before backgrounding the app, then wait for maintainer visual acceptance. Do we have a high-confidence way to reproduce the issue? Yes for the review finding: PR-head source leaves Is this the best way to solve the issue? No until the App Review note is corrected; the UI implementation itself is an appropriate owner-boundary polish, but the review walkthrough needs to match the default state and background runtime contract. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 17482a402680. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Docs 0, Other +28. Total +28 across 9 files. View PR surface stats
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8d2af7765b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
4c2df02 to
cef5112
Compare
339e5d0 to
2b22fc4
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2b22fc44ad
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| self.compactAccessory(self.attachmentPicker) | ||
|
|
||
| HStack(alignment: .bottom, spacing: 8) { | ||
| HStack(alignment: .center, spacing: 8) { |
There was a problem hiding this comment.
Keep the realtime control bottom-aligned after wrapping
When the clean composer draft wraps to multiple lines, editorOverlay becomes taller but this inner stack now centers the realtime button inside that taller field. The outer row still bottom-aligns the attachment and send controls, so in expanded drafts the realtime control floats above the other composer controls instead of staying aligned with them; keep the resting midpoint fix with an alignment guide or offset rather than changing the expanded-state stack alignment.
Useful? React with 👍 / 👎.
|
Merged via squash.
|
…#98736) * refactor(ios): streamline talk and composer controls * test(ios): restore Talk control state * chore(ios): refresh native i18n inventory
…#98736) * refactor(ios): streamline talk and composer controls * test(ios): restore Talk control state * chore(ios): refresh native i18n inventory
…#98736) * refactor(ios): streamline talk and composer controls * test(ios): restore Talk control state * chore(ios): refresh native i18n inventory
Related: #98452
AI-assisted: Codex implemented and validated this maintainer-requested UI follow-up.
What Problem This Solves
The iOS Talk screen still spent a large card on two labeled switches and a settings row, the Appearance picker repeated the selected option in helper text, and Chat's realtime-audio control sat slightly below the text field's visual center. These small inconsistencies made the newly simplified interface feel heavier and less precise than the surrounding iOS 26 design.
Why This Change Was Made
This follow-up replaces the Talk switch card with three compact, 44-point circular Liquid Glass controls, using a prominent blue selected state plus explicit accessibility labels and On/Off values. It removes the redundant Appearance explanation and centers Chat's audio control within the composer's resting field while preserving bottom-aligned composer growth.
User Impact
Evidence
OpenClawBrandTests+RootTabsSourceGuardTests: passed.OpenClawSnapshotUITests.testAppearancePickerHasNoRedundantDescription: passed.OpenClawSnapshotUITests.testTalkUsesCompactIconControls: passed; verifies all three icon controls, removes switch elements, and proves speakerphone state mutation.OpenClawSnapshotUITests.testChatComposerStartsCompactAndGrowsWithDraft: passed; the audio control and field midpoints differ by no more than one point, and multiline growth still works.OpenClawSnapshotUITests.testLiveGatewayControlOverviewNavigation: passed against the running real Gateway via short-lived setup-code pairing; Control connected and Overview opened end to end.git diff --check: passed. Existing warning-only lint findings are outside this patch.Before and after
Matched 1206 x 2622 iPhone fixture captures. The baseline is the just-landed #98452 design; the right side is this focused cleanup.