fix(ios): return chat to originating control detail#99245
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 2, 2026, 6:15 PM ET / 22:15 UTC. Summary PR surface: Other +214. Total +214 across 9 files. Reproducibility: yes. Current main routes Control-detail Chat actions through a path that clears the phone Control stack and provides no contextual Chat leading action; the linked recording/contact-sheet proof and PR UI test cover the after-fix flow. Review metrics: none identified. 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:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Let maintainers review and, if they agree, land this replacement as the canonical iPhone navigation fix and close the older contributor branch it supersedes. Do we have a high-confidence way to reproduce the issue? Yes. Current main routes Control-detail Chat actions through a path that clears the phone Control stack and provides no contextual Chat leading action; the linked recording/contact-sheet proof and PR UI test cover the after-fix flow. Is this the best way to solve the issue? Yes. The PR keeps cross-tab Chat request and return state in RootTabs while leaving the phone child stack in RootTabsPhoneControlHub, which is the narrow owner boundary for this navigation bug. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against cc0d7e1dd4c6. Label changesLabel justifications:
Evidence reviewedPR surface: Other +214. Total +214 across 9 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
|
Co-authored-by: Colin <[email protected]>
Co-authored-by: Colin <[email protected]>
799ea36 to
e42dc97
Compare
|
Maintainer repair complete and land-ready at exact head
No known proof gaps for the repaired phone navigation behavior. |
|
Merged via squash.
|
* fix(ios): return chat to originating control detail Co-authored-by: Colin <[email protected]> * fix(ios): reset retained state before control chat handoff Co-authored-by: Colin <[email protected]> --------- Co-authored-by: Colin <[email protected]>
What Problem This Solves
Repairs and supersedes #98023. On iPhone, opening Chat from a Control detail could leave no visible route back to the originating Overview, Activity, Workboard, or Sessions screen. The contributor branch could not be updated because maintainer edits are disabled.
Why This Change Was Made
The phone shell now carries two closed navigation values: a typed Control navigation request and a contextual Chat return that records both the source detail and the exact global Chat request it already handled. This keeps internal detail-return routing distinct from direct bottom-tab selection, prevents the later global request observation from erasing the contextual back action, and removes the original parallel nullable destination/request/reset-suppression state.
The maintainer rewrite also clears stale return state on programmatic Settings routing, resets Chat's retained embedded Settings stack before contextual routing, and dismisses a Workboard card sheet before switching tabs. A direct Control-tab tap always resets the child stack to the Control hub; the Chat header action returns to the exact source detail.
Contributor credit is preserved in the maintainer commit via
Co-authored-by: Colin <[email protected]>.User Impact
On iPhone, users can open Chat from Overview, Activity, Workboard, or Sessions and use a visible
Back to …action to return to that detail. Tapping the bottom Control tab instead returns to the main Control hub. iPad/sidebar behavior is unchanged.Evidence
e42dc9728a3d19fa7907bfaf9af0483c987d630c: iPhone 17 Pro / iOS 26.5 simulator UI E2E passed in 25.459s. It first retained Chat's Gateway Settings route, then proved Activity → Chat →Back to Activity→ Activity; direct Control tab → hub; and Overview agent-session row → Chat through the realNodeAppModel.openChatrequest path →Back to Overview→ Overview.RootTabsSourceGuardTestspassed 35/35, including Workboard card-sheet dismissal ordering. Earlier focused presentation/sidebar/render coverage passed 65/65.git diff --checkpasses; hosted CI run 28624771490 passed for the exact head, includingios-build,macos-swift, lint, guards, and all required shards.No changelog entry: release generation owns
CHANGELOG.md.