Register `SUPPORTED_DRIVER_TYPES["uiautomator2"]` backed by the new
`AndroidDriver`, mirroring `WDADriver` method-for-method. tap/swipe/home use
the confirmed UiAutomator2 mobile commands (`clickGesture`, `dragGesture`,
`pressKey`); swipe converts `duration_ms` to a drag speed with a zero-distance
guard. Adds 34 mocked unit tests, an env-var-gated integration test, and
corrects the outdated "Android not registered" note in the iPhone setup doc.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- driver/registry.py never actually defined register_driver_type, so
the plugin-system's 'driver plugin registered successfully' scenario
was unreachable in production (only simulated via test monkeypatch).
Added a real implementation wired into the existing driver factory
registry.
- PluginRegistry.discover() only caught PluginValidationError/
DuplicatePluginError, so a driver-kind manifest that failed wiring
(DriverRegistryUnavailableError/PluginTargetResolutionError) aborted
the whole scan, silently skipping co-located tool/skill manifests.
Now caught and skipped per manifest instead.
openspec: plugin-system capability, archived change cloud-runtime