fix(ios): bound the idle wait of keyboard dismiss and keyboard enter
Merged
SI
19h ago+192+192+012345678901234567890123456789-2-2-0123456789
Summary
Fixes #4453. Bound the XCTest idle wait for keyboard dismiss and keyboard enter, so an animating app cannot hold their native tap behind an unbounded quiescence wait. Existing keyboard and screen-settle waits remain.
Four files change: the command cases, busy-keyboard fixture, two regression tests and runner development instructions.
Validation
Current head 27197a7527fbaee0ea73da19332995c88fc040ab. Independent review found no blockers. Range comparison preserves all three reviewed commits; the rebase does not change the keyboard paths.
- Current-head CI: 12 successful checks, two skipped. iOS smoke: 22 passed, zero skipped.
- Exact local affected receipt at tree-identical
09425873097a02a444686174a40e0cd91971ea9e: native-dupes, xctest-selection and packaged-runner-swift passed. Native-authoritative lanes were skipped locally. - Contributor evidence: iPhone 17 Pro simulator, iOS 27.3, Xcode 27.3. Both busy-keyboard tests passed with zero skips at
1b4c2e7; retained fixtures/tests on base2deb909produced both intended after-busy assertion failures. - Packed CLI at old head
b4f5510successfully ran enter and dismiss while busy. Native source identity and unchanged rebase preserve applicability; these busy cases were not rerun at the rebased SHA and do not run in CI.
Physical devices, macOS and tvOS were not validated. All earlier review threads are resolved.