feat(tv-remote): add hardware and media buttons for TV targets
Merged
MI
1d ago+497+497+012345678901234567890123456789-53-53-01234567890123456789
Summary
Extend tv-remote with 22 volume, power, media, channel, and color buttons plus android-keycode:N on Android TV (local ADB and Limrun). Keep TV-only admission. tvOS and Vega retain their eight navigation buttons and refuse unsupported buttons before dispatch.
Remove the unshipped hardware-key command and its parallel runtime operation. Phone controls are scoped separately in #3848. Scope: 23 files; no phone or Appium expansion and no new flags.
agent-device tv-remote volume-down --platform android --target tv
agent-device tv-remote android-keycode:300 --platform android --target tv
await client.command.tvRemote({ button: 'media-play-pause', platform: 'android', target: 'tv' });
Validation
Tested SHA: 1276904d752bdf66b297ad6e9eaccd063fd5ebbb.
pnpm check:affected --run --head HEAD: passed,exactCommit: true. Receipt:run-yjck6Z/receipt.json(summary in the update comment).- All 1,027 related files / 9,285 tests passed, including provider scenarios. Format, lint, typecheck, layering, Fallow, build, command docs, links, and prose passed.
- Claude independent review: recording finding fixed; final follow-up found no remaining issues.
- Live TV evidence: Android TV replay dispatched 25/85/24, changed/restored volume, and used helper
0.21.29-dev; tvOS refused before button dispatch. - Draft: direct current-head CLI response echoes and an unchanged tvOS runner log remain pending. T3’s pinned
0.21.25launcher requires replay; failure diagnostics request a snapshot. GitHub owns device/provider CI obligations; skipped lanes are not passes.