fix: preserve clear state before iOS launch URLs - #1486
Conversation
Size Report
Startup median (7 runs, lower is better):
Top changed chunks:
|
|
Review at The fix correctly forces the app-only launch before the stored URL when Add one real simulator fixture journey through |
|
Addressed in Added a real iOS simulator fixture journey through the public Maestro
Device validation: iPhone 17 Pro simulator ( Pre-push format, typecheck, lint, and coverage gates also pass. |
|
Exact-head code review is clean. The real Maestro Readiness is held by the later failed iOS keyboard-dismiss step ( |
|
Addressed the readiness feedback and investigated the failing iOS job from its uploaded runner artifacts. The failure was not fixture isolation and the runner did find a safe native dismiss control. The runner now captures the visible keyboard, taps the same allowlisted native control, waits up to two seconds for that keyboard to disappear, and then reads current keyboard visibility. The fresh final read means a replacement keyboard still correctly reports failure; there is no navigation fallback, retry tap, or relaxed success condition. I also extracted the keyboard helpers from the already oversized Validation on the exact fix:
The PR body now reflects the current twelve-file scope and validation. Exact-head CI is running for |
|
Reviewed exact head |
|
Summary
Preserve
clearAppStateon the direct iOS app launch before applying a stored runtime launch URL, and strip app-only flags from the follow-up URL dispatch.Remove the unreachable direct deep-link relaunch branch, reuse the local simulator lifecycle predicate, and replace duplicated iOS test fixtures. Fix the CI-observed keyboard-dismissal race by waiting a bounded interval for the tapped native keyboard control to take effect, then observing current keyboard state. The keyboard behavior now lives in a focused runner module instead of further growing the interaction module.
Scope spans twelve files across the session-open / Apple lifecycle path, iOS live smoke coverage, and the Apple runner's keyboard boundary.
Validation
pnpm format:check && pnpm typecheck && pnpm lintpnpm check:fallowpnpm build:xcuitest: iOS and macOS runner builds passedpnpm checktooling/build/Fallow gates passed; its parallel unit fan-out hit documented host contention, and all 13 failed tests passed in their six files when rerun serially (224 passed)6d7f48f92, including the 15-minute iOS smoke lane