diff --git a/openspec/changes/android-driver/.openspec.yaml b/openspec/changes/archive/2026-07-13-android-driver/.openspec.yaml similarity index 100% rename from openspec/changes/android-driver/.openspec.yaml rename to openspec/changes/archive/2026-07-13-android-driver/.openspec.yaml diff --git a/openspec/changes/android-driver/design.md b/openspec/changes/archive/2026-07-13-android-driver/design.md similarity index 100% rename from openspec/changes/android-driver/design.md rename to openspec/changes/archive/2026-07-13-android-driver/design.md diff --git a/openspec/changes/android-driver/proposal.md b/openspec/changes/archive/2026-07-13-android-driver/proposal.md similarity index 100% rename from openspec/changes/android-driver/proposal.md rename to openspec/changes/archive/2026-07-13-android-driver/proposal.md diff --git a/openspec/changes/android-driver/specs/driver-registry/spec.md b/openspec/changes/archive/2026-07-13-android-driver/specs/driver-registry/spec.md similarity index 100% rename from openspec/changes/android-driver/specs/driver-registry/spec.md rename to openspec/changes/archive/2026-07-13-android-driver/specs/driver-registry/spec.md diff --git a/openspec/changes/android-driver/tasks.md b/openspec/changes/archive/2026-07-13-android-driver/tasks.md similarity index 100% rename from openspec/changes/android-driver/tasks.md rename to openspec/changes/archive/2026-07-13-android-driver/tasks.md diff --git a/openspec/specs/driver-registry/spec.md b/openspec/specs/driver-registry/spec.md index 04d553f..117647a 100644 --- a/openspec/specs/driver-registry/spec.md +++ b/openspec/specs/driver-registry/spec.md @@ -4,12 +4,16 @@ TBD - created by archiving change device-agent-runtime-foundation. Update Purpose after archive. ## Requirements ### Requirement: Driver type registry lives in the driver layer -The system SHALL provide a registry, owned by the `driver` package, that maps a `driver_type` string (e.g. `"wda"`) to a builder function producing a `DriverFactory` for that type, so that any caller needing to construct a driver for a device does so without importing a concrete driver class directly. +The system SHALL provide a registry, owned by the `driver` package, that maps a `driver_type` string (e.g. `"wda"`, `"uiautomator2"`) to a builder function producing a `DriverFactory` for that type, so that any caller needing to construct a driver for a device does so without importing a concrete driver class directly. #### Scenario: Building a factory for a known driver type - **WHEN** a caller requests a driver factory for `driver_type="wda"` with connection info (e.g. `server_url`, `udid`) - **THEN** the registry returns a `DriverFactory` that, when invoked, constructs a working `WDADriver` configured with that connection info +#### Scenario: Building a factory for the Android driver type +- **WHEN** a caller requests a driver factory for `driver_type="uiautomator2"` with connection info (e.g. `server_url`, `udid`) +- **THEN** the registry returns a `DriverFactory` that, when invoked, constructs a working `AndroidDriver` configured with that connection info + #### Scenario: Building a factory for an unknown driver type - **WHEN** a caller requests a driver factory for a `driver_type` that is not registered - **THEN** the registry raises a clear error naming the unsupported `driver_type`, instead of returning `None` or a factory that fails later at connect time