fix(ios): keep failed alert reads unresolved
Merged
TH
2d ago+548+548+012345678901234567890123456789-262-262-012345678901234567890123456789
Summary
Required Apple alert reads preserve uncertainty as ALERT_UNRESOLVED instead of reporting absence or choosing an action from incomplete information. Recognized app alerts, Safari dialogs and dismiss-popup windows with no acquired actions also stay unresolved and retriable. Disabled controls remain visible; action selection uses enabled controls. Blocking system prompts retain precedence. Follow-up to #4149. The change touches 22 files across the runner, contracts, tests and command documentation.
Validation
- Base
3d6ddf32adf6c9615df13a64488399a769d13761; behavior-tested head187113225f2bc7ce60a60f73bad0b20fc095889a. The same native query-seam regression fails on base (empty get/wait success andALERT_BUTTON_NOT_FOUND) and passes on head. Independent review found no concrete issue. pnpm check:affected --run --head 42fe0b3971a0aaaa68573db26defe64f25b83cdepassed, receiptrun-LpkO2Y(exactCommit=true,checkoutChanged=false): 14 passed, one deduplicated, 10 hosted or manual lanes skipped. Related tests: 1,106 passed; unit tests: 17,220 passed, one skipped. Hosted and parked lanes remain obligations.- At
187113225f2bc7ce60a60f73bad0b20fc095889a, the native unit-enabled build and 14 selected native tests passed; focused TypeScript: 24 passed. The new head changes only CLI help and command documentation, naming all three recognized surfaces; no native behavior or tests changed. - Earlier controlled primary-host evidence remains attributed to
3d6ddf3; it does not prove natural AX failure or remote-host acquisition. Head live fixture evidence and limits are recorded separately. - A near-deadline action dispatched and timed out with unknown dispatch, although its handler ran once; it was not a success. Wait can miss prompts appearing in its final <=300 ms, and admitted work can outlive its budget. Hosted CI for
42fe0b3remains pending.