perf(ios): synthesize taps on resolved in-app back controls
Summary
Use synthesized coordinate taps for resolved iOS in-app back controls. Retain measured candidate frames through ranking and dispatch to avoid repeated element resolution and XCTest tap quiescence waits. Keep the navigation-bar → ranked back control → verified leading-slot fallback and #2728 typed outcomes. macOS/tvOS behavior is unchanged. Three files; no scope expansion. Related: #2728.
Validation
Base: 642393cadb4510cdccab581c1046ac83e9b52ae8. Head: 0351d1996998593599a9a24806298747f2a545c0.
pnpm check:affected --run --head 0351d19969: exit 0, exactCommit=true; receipt.tmp/validation/run-YyADUC/receipt.json.pnpm format,pnpm check:xctest-selection, TypeScript build, iOS runner build: passed.- Two focused native tests: head 2 passed; same tests/fixture with base navigation: 2 failed on the intended XCTest-tap assertion. Independent review: no findings.
- Bluesky 1.136.0, dedicated iPhone 17 Pro/iOS 27.0: identical post-thread → back → feed sequence, three successful runs each. Runner accepted→completed milliseconds: base 2091/2378/2331; head 1397/1461/1527. CLI wall milliseconds: base 2382/2705/2535; head 1588/1720/1860. Median runner time improves 37.3%; all six navigations verified on the feed.
CI still owns macOS/native cross-platform builds and integration/coverage. Review control-selection parity and the existing synthesis-failure fallback. No PR was opened by this worker.
Implemented by a Codex worker; opened and reviewed by the coordinating Claude session.
🤖 Generated with Claude Code