You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
adb: mark every host refusal as hostRefusal and derive dispatched: "no" from it #3075
#3055 adds hostRefusal: true to the device_offline classification in packages/platform-android/src/adb-failure.ts, meaning the host adb refused the command before it reached the device. Five other reasons in the same matcher table are host refusals too and carry no flag: device_unauthorized, multiple_devices, no_devices, device_not_found, server_version_mismatch. On the dispatched branch, discloseAdbInputDispatch in input-actions.ts says no only for TOOL_MISSING, so an input tap refused for an unauthorized device reads unknown today.
Required behavior
Each host-refusal reason in ANDROID_ADB_FAILURE_MATCHERS carries hostRefusal: true. A reason that can also come from a command that ran on the device (install_*, connection_dropped, timeout) does not.
discloseAdbInputDispatch and the helper-session producers say dispatched: "no" when adbHostRefusal === true and no earlier step was dispatched (dispatchedSteps === 0). The classifier is the single source; no second string match.
One row per host refusal in contracts/fixtures/dispatch-disclosure.json, each driven through attachAdbFailureHint and the real executor.
Completion conditions
adb-failure.test.ts asserts hostRefusal for the six reasons and its absence for the rest.
The dispatch-disclosure gate passes with the new rows owned by the Android driver test.
pnpm check:affected --run passes.
Dependencies
Blocked by: #3055 (introduces hostRefusal) and #3071 (introduces the table).
Activity