fix(wait): run duration waits without device discovery

Merged
TH
2d ago
+273-276

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.