feat(hardware-button): add Android mute, sleep, wake and media keys

Merged
TH
5h ago
+757-244

Summary

Extend hardware-button with eight Android keys: mute, sleep, wake, media-play-pause, media-next, media-previous, media-rewind, and media-fast-forward. ADB/helper, Limrun Android, and Appium use the existing button family. Sleep/wake are idempotent; power toggles.

Android phone and TV presses now share the contracts keycode table. Deleted both consumer tables and numeric capability notes; simplified capability descriptions and derived the Android cell list. Scope: 33 files; follow-up to #3859 and #3848. Existing iOS volume routes remain. WebDriver already rejects TV targets; added regression coverage and corrected the earlier admission claim.

agent-device hardware-button mute
agent-device hardware-button sleep
agent-device hardware-button media-next

Validation

Head: f3263517019688f5bdc580361b9836a680832ad3.

  • pnpm check:affected --run --head <sha> passed on reviewed base 1a1adcd953 and this head, both exactCommit:true: receipts, review dispositions, live evidence.
  • Final gate: 12 checks passed; 10,011 related tests passed. 929 focused tests passed. I cold-reviewed this fixup myself; no independent review of this fixup.
  • Live Android 15: all eleven buttons dispatched; mute, volume restoration, repeated sleep/wake and power states verified. Session/daemon closed; emulator shut down.
  • No live Appium or physical iPhone verification. Media playback effects without an active player are unverified. GitHub owns full coverage and device lanes; local skips are not passes.