perf(ios): synthesize taps on resolved in-app back controls

Merged
TH
5h ago
+124-24

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