feat(ios): modernize navigation and settings#98811
Conversation
…leanup # Conflicts: # apps/ios/UITests/OpenClawSnapshotUITests.swift
|
Codex review: found issues before merge. Reviewed July 1, 2026, 9:38 PM ET / 01:38 UTC. Summary PR surface: Tests 0, Other +47. Total +47 across 19 files. Reproducibility: yes. for the blocking finding: source inspection shows standalone CommandCenterTab can push CommandSessionsScreen with Review metrics: 1 noteworthy metric.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Preserve a visible back path for every Sessions push path, then have the iOS owner/design reviewer decide whether the native Control, Agent, and Settings hierarchy should land. Do we have a high-confidence way to reproduce the issue? Yes for the blocking finding: source inspection shows standalone CommandCenterTab can push CommandSessionsScreen with Is this the best way to solve the issue? No as submitted: the native SwiftUI List/Menu direction is plausible for the linked feature, but the branch is not the best merge shape until the Sessions back path is preserved and maintainers accept the visual hierarchy. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 080481fec95a. Label changesLabel justifications:
Evidence reviewedPR surface: Tests 0, Other +47. Total +47 across 19 files. View PR surface stats
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: 97d396a4d6
ℹ️ 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".
| } | ||
| .navigationTitle("Sessions") | ||
| .navigationBarTitleDisplayMode(.inline) | ||
| .toolbar(self.usesNativeNavigationChrome ? .visible : .hidden, for: .navigationBar) |
There was a problem hiding this comment.
Preserve a back path for sessions
When CommandCenterTab is used in its default standalone mode (ownsNavigationStack == true, openSessions == nil) and there are more than three recent sessions, the View More row pushes CommandSessionsScreen with usesNativeNavigationChrome == false and no headerLeadingAction. This new toolbar visibility line hides the system navigation bar in that case, while the custom header only shows the title, so the pushed Sessions screen has no Back control and users cannot return from it without leaving the flow.
Useful? React with 👍 / 👎.
|
Land-ready proof for exact head
Known proof gaps: none. The earlier macOS Swift cache infrastructure failure was fixed and landed separately in #98818, then this PR was refreshed and rerun to full exact-head green. |
|
Merged via squash.
|
|
Final landed-head proof for PR head
Simulator before/after evidence and live Gateway E2E details remain in the PR body and the earlier land-ready proof comment. |
* origin/main: feat(ios): modernize navigation and settings (#98811)
* feat(ios): modernize navigation and settings * fix(ios): remove obsolete settings helpers * test(ios): update i18n collector fixture * test(ios): update i18n collector fixture * test(ios): update i18n collector fixture
* feat(ios): modernize navigation and settings * fix(ios): remove obsolete settings helpers * test(ios): update i18n collector fixture * test(ios): update i18n collector fixture * test(ios): update i18n collector fixture
Closes #98803
AI-assisted: Codex implemented, simulator-tested, live-tested, and reviewed this maintainer-requested iOS design pass.
What Problem This Solves
The iOS Control, Agent, and Settings roots still mixed custom cards, repeated labels, duplicate destinations, nested segmented controls, and inconsistent custom/native navigation. The result was visually dense, used space inefficiently, and could change header behavior when opening the iPad drawer.
Why This Change Was Made
This replaces the three primary roots with native inset-grouped lists, system large-title navigation, search, and toolbar menus. Appearance and agent-status filtering move out of content cells into standard toolbar menus; Control removes destinations already present in the tab bar; and phone versus iPad navigation chrome is now an explicit contract rather than inferred from whether a sidebar action happens to exist. Liquid Glass remains reserved for compact interactive controls instead of becoming decorative card chrome.
User Impact
Evidence
OpenClawLogicTests: passed.testControlOverviewNavigation,testAppearanceUsesToolbarMenu, andtestAgentUsesToolbarFilter.testLiveGatewayControlOverviewNavigation: passed against a real local OpenClaw Gateway using short-lived setup-code pairing; Control loaded live state and Overview opened end to end.pnpm native:i18n:sync && pnpm native:i18n:check: passed; generated inventory stable.git diff --check: passed.Light appearance
Matched iPhone fixture captures from the pre-change
mainbaseline and this exact commit.Dark appearance comparison
Standard controls
Live Gateway proof