fix(wait): run duration waits without device discovery
Merged
TH
2d ago+273+273+012345678901234567890123456789-276-276-012345678901234567890123456789
Summary
agent-device wait 50 sleeps without selecting, binding or capturing a device, including empty or ambiguous inventories. Preserve named-session errors, recording lifetime, cancellation and observing-wait admission. Duration waits inspect no Android foreground state and acquire no sessionless execution host.
Fourteen files change. Migrate four public-runtime fixture files off the obsolete duration mock, retaining all nine cases. Remove the now-unused private wait-plan module/export and its helper-only test; retain independent registry and conditional-operation guards. Fixes #4422; part of #4368.
Validation
Head a5b93a189de69f27cefc65aa4146140ab324fd8d; base 3924da9474eded3d40c4abbaccc79fecae894366.
- Exact affected gate:42passed/25owned skips; exactCommit=true, checkoutChanged=false. Manifest edit retained full fail-open selection and #4050 fallback. Units:19,018passed/3skipped. Standalone production-exports check passed. Receipt summary, proof, review and skipped owners.
- Same provider command: base2failed/1passed; corrected3passed. Cancellation mutant detected. All nine public-runtime cases pass and retain typed-cancellation/local-diagnostics mutation detection. Experiments removed; source preserved.
- Independent reviews completed, including no findings on the unused-code removal. Accepted fixture finding fixed; hypothetical detached-send concern rejected against existing guards.
- Install/build, full formatting and diff checks passed. New-head CI/reviews remain pending. No live device required for host-duration execution.