fix(ios): wait for resolved press targets to become hittable

SH
10h ago
+3266-251

Summary

Fixes #4388. Ordinary resolved primary iOS selector/ref press and click use the existing admission loop and request budget. Motion runs before native readiness. After unblocking, one canonical refresh creates a generation that must earn its own native proof. No public wait API is added.

tapCommand explicitly declares readiness intent. Private evidence has one construction/copy/remap owner; normalized Android clickability is retained. Unmeasured motion refusals report elapsed time.

The when-unknown idle-probe exception remains proposed, pending explicit acceptance and an ADR amendment. The coherent 98-file / 3,517-gross-line change needs a size exception.

Validation

e66ec2a: clean exact affected gate passed 15 runnable checks, 19,543 unit tests (+3 existing skips), 396 related. Independent review and omission controls passed.

Fresh daemon-backed selector/ref traces cover blocked→ready, default 60-second deadlines, caller aborts, combined motion/readiness and initial idle. Caller disclosure remains dispatch unknown despite observed zero input. Loaded runtime bytes and generations are directly observed; inspector timings are excluded from performance claims. Native builds retain actual d9f43ff attribution.

Current source, traces, measurements and all 23 recordings.

CI: 12 successful checks, 2 skipped; Settings replay and its aggregate failed. Reproduced identity bug and five recordings; repair pending. Native tests passed; automated review found zero issues.