fix(ios): press the navigation bar back button and speed up the back swipe
Summary
iOS back presses the navigation bar's system back button (identifier BackButton) only when exactly one live, hittable one is read from a readable tree, and two bar reads one 0.05 s pause apart agree and hold it (frames placed at the window's screen origin, so a placed iPad window matches). After the tap it re-reads the bars for up to 1 s, then once more with no deadline, so a slow host whose reads of a vanishing bar spend the 1 s in XCTest retries still reads the settled screen. It answers ok only when the bar count, the back button count, or a back button label changes. Bar titles and back button frames never count, so a countdown title or a large-title collapse cannot confirm a tap. A pop that keeps the same back button labels and bar count answers back_swipe_unverified. It never swipes after a delivered tap, and a hung query sends nothing more. Otherwise it falls back to the swipe, which now settles faster. Help, runner protocol and command docs are updated.
Validation
iOS 27.0 simulator, Settings > General, median of 8 runs:
| Path | base 80075b6 | 0d17e3e |
|---|---|---|
back (button) | 1.48 s | 0.57 s |
back --settle | 2.51 s | 1.56 s |
At 1154091 the 22 testInAppBack* runner tests pass on an iPhone 17 Pro simulator; the new slow-host test fails without the final read. The local iOS smoke tier passes, 7 of 7 scenarios (automation-input back: confirmed=yes confirmMs=372). The macOS runner test build, typecheck, lint, xctest-selection and focused vitest pass. At 40c2f69 the placed (non-full-screen) iPad Settings window gives found=yes pressed=yes confirmed=yes in 5 of 5 runs with the label-only confirmation (iPad evidence). Device evidence.
Risks: no physical-device run.
🤖 Generated with Claude Code
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.