doc-detective-common 4.21.0 → 4.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2792,7 +2792,7 @@
2792
2792
  ]
2793
2793
  },
2794
2794
  "device": {
2795
- "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
2795
+ "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
2796
2796
  "examples": [
2797
2797
  "pixel7",
2798
2798
  {
@@ -2831,7 +2831,7 @@
2831
2831
  "transform": [
2832
2832
  "trim"
2833
2833
  ],
2834
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
2834
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
2835
2835
  },
2836
2836
  "deviceType": {
2837
2837
  "type": "string",
@@ -2844,11 +2844,11 @@
2844
2844
  "osVersion": {
2845
2845
  "type": "string",
2846
2846
  "minLength": 1,
2847
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
2847
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
2848
2848
  },
2849
2849
  "headless": {
2850
2850
  "type": "boolean",
2851
- "description": "Run the Android emulator without a window. Ignored where not applicable."
2851
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
2852
2852
  },
2853
2853
  "orientation": {
2854
2854
  "type": "string",
@@ -38797,7 +38797,7 @@
38797
38797
  "startSurface": {
38798
38798
  "$schema": "http://json-schema.org/draft-07/schema#",
38799
38799
  "title": "startSurface",
38800
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
38800
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
38801
38801
  "components": {
38802
38802
  "schemas": {
38803
38803
  "appDescriptor": {
@@ -38849,15 +38849,15 @@
38849
38849
  "install": {
38850
38850
  "type": "string",
38851
38851
  "minLength": 1,
38852
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
38852
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
38853
38853
  },
38854
38854
  "activity": {
38855
38855
  "type": "string",
38856
38856
  "minLength": 1,
38857
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
38857
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
38858
38858
  },
38859
38859
  "device": {
38860
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
38860
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
38861
38861
  "anyOf": [
38862
38862
  {
38863
38863
  "type": "string",
@@ -38890,7 +38890,7 @@
38890
38890
  "transform": [
38891
38891
  "trim"
38892
38892
  ],
38893
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
38893
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
38894
38894
  },
38895
38895
  "deviceType": {
38896
38896
  "type": "string",
@@ -38903,11 +38903,11 @@
38903
38903
  "osVersion": {
38904
38904
  "type": "string",
38905
38905
  "minLength": 1,
38906
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
38906
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
38907
38907
  },
38908
38908
  "headless": {
38909
38909
  "type": "boolean",
38910
- "description": "Run the Android emulator without a window. Ignored where not applicable."
38910
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
38911
38911
  },
38912
38912
  "orientation": {
38913
38913
  "type": "string",
@@ -39079,7 +39079,7 @@
39079
39079
  "transform": [
39080
39080
  "trim"
39081
39081
  ],
39082
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
39082
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
39083
39083
  },
39084
39084
  "deviceType": {
39085
39085
  "type": "string",
@@ -39092,11 +39092,11 @@
39092
39092
  "osVersion": {
39093
39093
  "type": "string",
39094
39094
  "minLength": 1,
39095
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
39095
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
39096
39096
  },
39097
39097
  "headless": {
39098
39098
  "type": "boolean",
39099
- "description": "Run the Android emulator without a window. Ignored where not applicable."
39099
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
39100
39100
  },
39101
39101
  "orientation": {
39102
39102
  "type": "string",
@@ -39195,15 +39195,15 @@
39195
39195
  "install": {
39196
39196
  "type": "string",
39197
39197
  "minLength": 1,
39198
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
39198
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
39199
39199
  },
39200
39200
  "activity": {
39201
39201
  "type": "string",
39202
39202
  "minLength": 1,
39203
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
39203
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
39204
39204
  },
39205
39205
  "device": {
39206
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
39206
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
39207
39207
  "anyOf": [
39208
39208
  {
39209
39209
  "type": "string",
@@ -39236,7 +39236,7 @@
39236
39236
  "transform": [
39237
39237
  "trim"
39238
39238
  ],
39239
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
39239
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
39240
39240
  },
39241
39241
  "deviceType": {
39242
39242
  "type": "string",
@@ -39249,11 +39249,11 @@
39249
39249
  "osVersion": {
39250
39250
  "type": "string",
39251
39251
  "minLength": 1,
39252
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
39252
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
39253
39253
  },
39254
39254
  "headless": {
39255
39255
  "type": "boolean",
39256
- "description": "Run the Android emulator without a window. Ignored where not applicable."
39256
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
39257
39257
  },
39258
39258
  "orientation": {
39259
39259
  "type": "string",
@@ -80988,7 +80988,7 @@
80988
80988
  "startSurface": {
80989
80989
  "$schema": "http://json-schema.org/draft-07/schema#",
80990
80990
  "title": "startSurface",
80991
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
80991
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
80992
80992
  "components": {
80993
80993
  "schemas": {
80994
80994
  "appDescriptor": {
@@ -81040,15 +81040,15 @@
81040
81040
  "install": {
81041
81041
  "type": "string",
81042
81042
  "minLength": 1,
81043
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
81043
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
81044
81044
  },
81045
81045
  "activity": {
81046
81046
  "type": "string",
81047
81047
  "minLength": 1,
81048
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
81048
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
81049
81049
  },
81050
81050
  "device": {
81051
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
81051
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
81052
81052
  "anyOf": [
81053
81053
  {
81054
81054
  "type": "string",
@@ -81081,7 +81081,7 @@
81081
81081
  "transform": [
81082
81082
  "trim"
81083
81083
  ],
81084
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
81084
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
81085
81085
  },
81086
81086
  "deviceType": {
81087
81087
  "type": "string",
@@ -81094,11 +81094,11 @@
81094
81094
  "osVersion": {
81095
81095
  "type": "string",
81096
81096
  "minLength": 1,
81097
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
81097
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
81098
81098
  },
81099
81099
  "headless": {
81100
81100
  "type": "boolean",
81101
- "description": "Run the Android emulator without a window. Ignored where not applicable."
81101
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
81102
81102
  },
81103
81103
  "orientation": {
81104
81104
  "type": "string",
@@ -81270,7 +81270,7 @@
81270
81270
  "transform": [
81271
81271
  "trim"
81272
81272
  ],
81273
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
81273
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
81274
81274
  },
81275
81275
  "deviceType": {
81276
81276
  "type": "string",
@@ -81283,11 +81283,11 @@
81283
81283
  "osVersion": {
81284
81284
  "type": "string",
81285
81285
  "minLength": 1,
81286
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
81286
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
81287
81287
  },
81288
81288
  "headless": {
81289
81289
  "type": "boolean",
81290
- "description": "Run the Android emulator without a window. Ignored where not applicable."
81290
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
81291
81291
  },
81292
81292
  "orientation": {
81293
81293
  "type": "string",
@@ -81386,15 +81386,15 @@
81386
81386
  "install": {
81387
81387
  "type": "string",
81388
81388
  "minLength": 1,
81389
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
81389
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
81390
81390
  },
81391
81391
  "activity": {
81392
81392
  "type": "string",
81393
81393
  "minLength": 1,
81394
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
81394
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
81395
81395
  },
81396
81396
  "device": {
81397
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
81397
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
81398
81398
  "anyOf": [
81399
81399
  {
81400
81400
  "type": "string",
@@ -81427,7 +81427,7 @@
81427
81427
  "transform": [
81428
81428
  "trim"
81429
81429
  ],
81430
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
81430
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
81431
81431
  },
81432
81432
  "deviceType": {
81433
81433
  "type": "string",
@@ -81440,11 +81440,11 @@
81440
81440
  "osVersion": {
81441
81441
  "type": "string",
81442
81442
  "minLength": 1,
81443
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
81443
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
81444
81444
  },
81445
81445
  "headless": {
81446
81446
  "type": "boolean",
81447
- "description": "Run the Android emulator without a window. Ignored where not applicable."
81447
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
81448
81448
  },
81449
81449
  "orientation": {
81450
81450
  "type": "string",
@@ -87363,7 +87363,7 @@
87363
87363
  ]
87364
87364
  },
87365
87365
  "device": {
87366
- "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
87366
+ "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
87367
87367
  "examples": [
87368
87368
  "pixel7",
87369
87369
  {
@@ -87402,7 +87402,7 @@
87402
87402
  "transform": [
87403
87403
  "trim"
87404
87404
  ],
87405
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
87405
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
87406
87406
  },
87407
87407
  "deviceType": {
87408
87408
  "type": "string",
@@ -87415,11 +87415,11 @@
87415
87415
  "osVersion": {
87416
87416
  "type": "string",
87417
87417
  "minLength": 1,
87418
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
87418
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
87419
87419
  },
87420
87420
  "headless": {
87421
87421
  "type": "boolean",
87422
- "description": "Run the Android emulator without a window. Ignored where not applicable."
87422
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
87423
87423
  },
87424
87424
  "orientation": {
87425
87425
  "type": "string",
@@ -100254,7 +100254,7 @@
100254
100254
  ]
100255
100255
  },
100256
100256
  "device": {
100257
- "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
100257
+ "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
100258
100258
  "examples": [
100259
100259
  "pixel7",
100260
100260
  {
@@ -100293,7 +100293,7 @@
100293
100293
  "transform": [
100294
100294
  "trim"
100295
100295
  ],
100296
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
100296
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
100297
100297
  },
100298
100298
  "deviceType": {
100299
100299
  "type": "string",
@@ -100306,11 +100306,11 @@
100306
100306
  "osVersion": {
100307
100307
  "type": "string",
100308
100308
  "minLength": 1,
100309
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
100309
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
100310
100310
  },
100311
100311
  "headless": {
100312
100312
  "type": "boolean",
100313
- "description": "Run the Android emulator without a window. Ignored where not applicable."
100313
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
100314
100314
  },
100315
100315
  "orientation": {
100316
100316
  "type": "string",
@@ -136259,7 +136259,7 @@
136259
136259
  "startSurface": {
136260
136260
  "$schema": "http://json-schema.org/draft-07/schema#",
136261
136261
  "title": "startSurface",
136262
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
136262
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
136263
136263
  "components": {
136264
136264
  "schemas": {
136265
136265
  "appDescriptor": {
@@ -136311,15 +136311,15 @@
136311
136311
  "install": {
136312
136312
  "type": "string",
136313
136313
  "minLength": 1,
136314
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
136314
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
136315
136315
  },
136316
136316
  "activity": {
136317
136317
  "type": "string",
136318
136318
  "minLength": 1,
136319
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
136319
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
136320
136320
  },
136321
136321
  "device": {
136322
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
136322
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
136323
136323
  "anyOf": [
136324
136324
  {
136325
136325
  "type": "string",
@@ -136352,7 +136352,7 @@
136352
136352
  "transform": [
136353
136353
  "trim"
136354
136354
  ],
136355
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
136355
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
136356
136356
  },
136357
136357
  "deviceType": {
136358
136358
  "type": "string",
@@ -136365,11 +136365,11 @@
136365
136365
  "osVersion": {
136366
136366
  "type": "string",
136367
136367
  "minLength": 1,
136368
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
136368
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
136369
136369
  },
136370
136370
  "headless": {
136371
136371
  "type": "boolean",
136372
- "description": "Run the Android emulator without a window. Ignored where not applicable."
136372
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
136373
136373
  },
136374
136374
  "orientation": {
136375
136375
  "type": "string",
@@ -136541,7 +136541,7 @@
136541
136541
  "transform": [
136542
136542
  "trim"
136543
136543
  ],
136544
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
136544
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
136545
136545
  },
136546
136546
  "deviceType": {
136547
136547
  "type": "string",
@@ -136554,11 +136554,11 @@
136554
136554
  "osVersion": {
136555
136555
  "type": "string",
136556
136556
  "minLength": 1,
136557
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
136557
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
136558
136558
  },
136559
136559
  "headless": {
136560
136560
  "type": "boolean",
136561
- "description": "Run the Android emulator without a window. Ignored where not applicable."
136561
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
136562
136562
  },
136563
136563
  "orientation": {
136564
136564
  "type": "string",
@@ -136657,15 +136657,15 @@
136657
136657
  "install": {
136658
136658
  "type": "string",
136659
136659
  "minLength": 1,
136660
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
136660
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
136661
136661
  },
136662
136662
  "activity": {
136663
136663
  "type": "string",
136664
136664
  "minLength": 1,
136665
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
136665
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
136666
136666
  },
136667
136667
  "device": {
136668
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
136668
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
136669
136669
  "anyOf": [
136670
136670
  {
136671
136671
  "type": "string",
@@ -136698,7 +136698,7 @@
136698
136698
  "transform": [
136699
136699
  "trim"
136700
136700
  ],
136701
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
136701
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
136702
136702
  },
136703
136703
  "deviceType": {
136704
136704
  "type": "string",
@@ -136711,11 +136711,11 @@
136711
136711
  "osVersion": {
136712
136712
  "type": "string",
136713
136713
  "minLength": 1,
136714
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
136714
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
136715
136715
  },
136716
136716
  "headless": {
136717
136717
  "type": "boolean",
136718
- "description": "Run the Android emulator without a window. Ignored where not applicable."
136718
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
136719
136719
  },
136720
136720
  "orientation": {
136721
136721
  "type": "string",
@@ -178450,7 +178450,7 @@
178450
178450
  "startSurface": {
178451
178451
  "$schema": "http://json-schema.org/draft-07/schema#",
178452
178452
  "title": "startSurface",
178453
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
178453
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
178454
178454
  "components": {
178455
178455
  "schemas": {
178456
178456
  "appDescriptor": {
@@ -178502,15 +178502,15 @@
178502
178502
  "install": {
178503
178503
  "type": "string",
178504
178504
  "minLength": 1,
178505
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
178505
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
178506
178506
  },
178507
178507
  "activity": {
178508
178508
  "type": "string",
178509
178509
  "minLength": 1,
178510
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
178510
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
178511
178511
  },
178512
178512
  "device": {
178513
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
178513
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
178514
178514
  "anyOf": [
178515
178515
  {
178516
178516
  "type": "string",
@@ -178543,7 +178543,7 @@
178543
178543
  "transform": [
178544
178544
  "trim"
178545
178545
  ],
178546
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
178546
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
178547
178547
  },
178548
178548
  "deviceType": {
178549
178549
  "type": "string",
@@ -178556,11 +178556,11 @@
178556
178556
  "osVersion": {
178557
178557
  "type": "string",
178558
178558
  "minLength": 1,
178559
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
178559
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
178560
178560
  },
178561
178561
  "headless": {
178562
178562
  "type": "boolean",
178563
- "description": "Run the Android emulator without a window. Ignored where not applicable."
178563
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
178564
178564
  },
178565
178565
  "orientation": {
178566
178566
  "type": "string",
@@ -178732,7 +178732,7 @@
178732
178732
  "transform": [
178733
178733
  "trim"
178734
178734
  ],
178735
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
178735
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
178736
178736
  },
178737
178737
  "deviceType": {
178738
178738
  "type": "string",
@@ -178745,11 +178745,11 @@
178745
178745
  "osVersion": {
178746
178746
  "type": "string",
178747
178747
  "minLength": 1,
178748
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
178748
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
178749
178749
  },
178750
178750
  "headless": {
178751
178751
  "type": "boolean",
178752
- "description": "Run the Android emulator without a window. Ignored where not applicable."
178752
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
178753
178753
  },
178754
178754
  "orientation": {
178755
178755
  "type": "string",
@@ -178848,15 +178848,15 @@
178848
178848
  "install": {
178849
178849
  "type": "string",
178850
178850
  "minLength": 1,
178851
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
178851
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
178852
178852
  },
178853
178853
  "activity": {
178854
178854
  "type": "string",
178855
178855
  "minLength": 1,
178856
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
178856
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
178857
178857
  },
178858
178858
  "device": {
178859
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
178859
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
178860
178860
  "anyOf": [
178861
178861
  {
178862
178862
  "type": "string",
@@ -178889,7 +178889,7 @@
178889
178889
  "transform": [
178890
178890
  "trim"
178891
178891
  ],
178892
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
178892
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
178893
178893
  },
178894
178894
  "deviceType": {
178895
178895
  "type": "string",
@@ -178902,11 +178902,11 @@
178902
178902
  "osVersion": {
178903
178903
  "type": "string",
178904
178904
  "minLength": 1,
178905
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
178905
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
178906
178906
  },
178907
178907
  "headless": {
178908
178908
  "type": "boolean",
178909
- "description": "Run the Android emulator without a window. Ignored where not applicable."
178909
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
178910
178910
  },
178911
178911
  "orientation": {
178912
178912
  "type": "string",
@@ -184887,7 +184887,7 @@
184887
184887
  ]
184888
184888
  },
184889
184889
  "device": {
184890
- "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
184890
+ "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
184891
184891
  "examples": [
184892
184892
  "pixel7",
184893
184893
  {
@@ -184926,7 +184926,7 @@
184926
184926
  "transform": [
184927
184927
  "trim"
184928
184928
  ],
184929
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
184929
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
184930
184930
  },
184931
184931
  "deviceType": {
184932
184932
  "type": "string",
@@ -184939,11 +184939,11 @@
184939
184939
  "osVersion": {
184940
184940
  "type": "string",
184941
184941
  "minLength": 1,
184942
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
184942
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
184943
184943
  },
184944
184944
  "headless": {
184945
184945
  "type": "boolean",
184946
- "description": "Run the Android emulator without a window. Ignored where not applicable."
184946
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
184947
184947
  },
184948
184948
  "orientation": {
184949
184949
  "type": "string",
@@ -185729,7 +185729,7 @@
185729
185729
  ]
185730
185730
  },
185731
185731
  "device": {
185732
- "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
185732
+ "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
185733
185733
  "examples": [
185734
185734
  "pixel7",
185735
185735
  {
@@ -185768,7 +185768,7 @@
185768
185768
  "transform": [
185769
185769
  "trim"
185770
185770
  ],
185771
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
185771
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
185772
185772
  },
185773
185773
  "deviceType": {
185774
185774
  "type": "string",
@@ -185781,11 +185781,11 @@
185781
185781
  "osVersion": {
185782
185782
  "type": "string",
185783
185783
  "minLength": 1,
185784
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
185784
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
185785
185785
  },
185786
185786
  "headless": {
185787
185787
  "type": "boolean",
185788
- "description": "Run the Android emulator without a window. Ignored where not applicable."
185788
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
185789
185789
  },
185790
185790
  "orientation": {
185791
185791
  "type": "string",
@@ -222374,7 +222374,7 @@
222374
222374
  "startSurface": {
222375
222375
  "$schema": "http://json-schema.org/draft-07/schema#",
222376
222376
  "title": "startSurface",
222377
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
222377
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
222378
222378
  "components": {
222379
222379
  "schemas": {
222380
222380
  "appDescriptor": {
@@ -222426,15 +222426,15 @@
222426
222426
  "install": {
222427
222427
  "type": "string",
222428
222428
  "minLength": 1,
222429
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
222429
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
222430
222430
  },
222431
222431
  "activity": {
222432
222432
  "type": "string",
222433
222433
  "minLength": 1,
222434
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
222434
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
222435
222435
  },
222436
222436
  "device": {
222437
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
222437
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
222438
222438
  "anyOf": [
222439
222439
  {
222440
222440
  "type": "string",
@@ -222467,7 +222467,7 @@
222467
222467
  "transform": [
222468
222468
  "trim"
222469
222469
  ],
222470
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
222470
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
222471
222471
  },
222472
222472
  "deviceType": {
222473
222473
  "type": "string",
@@ -222480,11 +222480,11 @@
222480
222480
  "osVersion": {
222481
222481
  "type": "string",
222482
222482
  "minLength": 1,
222483
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
222483
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
222484
222484
  },
222485
222485
  "headless": {
222486
222486
  "type": "boolean",
222487
- "description": "Run the Android emulator without a window. Ignored where not applicable."
222487
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
222488
222488
  },
222489
222489
  "orientation": {
222490
222490
  "type": "string",
@@ -222656,7 +222656,7 @@
222656
222656
  "transform": [
222657
222657
  "trim"
222658
222658
  ],
222659
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
222659
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
222660
222660
  },
222661
222661
  "deviceType": {
222662
222662
  "type": "string",
@@ -222669,11 +222669,11 @@
222669
222669
  "osVersion": {
222670
222670
  "type": "string",
222671
222671
  "minLength": 1,
222672
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
222672
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
222673
222673
  },
222674
222674
  "headless": {
222675
222675
  "type": "boolean",
222676
- "description": "Run the Android emulator without a window. Ignored where not applicable."
222676
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
222677
222677
  },
222678
222678
  "orientation": {
222679
222679
  "type": "string",
@@ -222772,15 +222772,15 @@
222772
222772
  "install": {
222773
222773
  "type": "string",
222774
222774
  "minLength": 1,
222775
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
222775
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
222776
222776
  },
222777
222777
  "activity": {
222778
222778
  "type": "string",
222779
222779
  "minLength": 1,
222780
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
222780
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
222781
222781
  },
222782
222782
  "device": {
222783
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
222783
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
222784
222784
  "anyOf": [
222785
222785
  {
222786
222786
  "type": "string",
@@ -222813,7 +222813,7 @@
222813
222813
  "transform": [
222814
222814
  "trim"
222815
222815
  ],
222816
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
222816
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
222817
222817
  },
222818
222818
  "deviceType": {
222819
222819
  "type": "string",
@@ -222826,11 +222826,11 @@
222826
222826
  "osVersion": {
222827
222827
  "type": "string",
222828
222828
  "minLength": 1,
222829
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
222829
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
222830
222830
  },
222831
222831
  "headless": {
222832
222832
  "type": "boolean",
222833
- "description": "Run the Android emulator without a window. Ignored where not applicable."
222833
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
222834
222834
  },
222835
222835
  "orientation": {
222836
222836
  "type": "string",
@@ -263864,7 +263864,7 @@
263864
263864
  "startSurface": {
263865
263865
  "$schema": "http://json-schema.org/draft-07/schema#",
263866
263866
  "title": "startSurface",
263867
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
263867
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
263868
263868
  "components": {
263869
263869
  "schemas": {
263870
263870
  "appDescriptor": {
@@ -263916,15 +263916,15 @@
263916
263916
  "install": {
263917
263917
  "type": "string",
263918
263918
  "minLength": 1,
263919
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
263919
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
263920
263920
  },
263921
263921
  "activity": {
263922
263922
  "type": "string",
263923
263923
  "minLength": 1,
263924
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
263924
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
263925
263925
  },
263926
263926
  "device": {
263927
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
263927
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
263928
263928
  "anyOf": [
263929
263929
  {
263930
263930
  "type": "string",
@@ -263957,7 +263957,7 @@
263957
263957
  "transform": [
263958
263958
  "trim"
263959
263959
  ],
263960
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
263960
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
263961
263961
  },
263962
263962
  "deviceType": {
263963
263963
  "type": "string",
@@ -263970,11 +263970,11 @@
263970
263970
  "osVersion": {
263971
263971
  "type": "string",
263972
263972
  "minLength": 1,
263973
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
263973
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
263974
263974
  },
263975
263975
  "headless": {
263976
263976
  "type": "boolean",
263977
- "description": "Run the Android emulator without a window. Ignored where not applicable."
263977
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
263978
263978
  },
263979
263979
  "orientation": {
263980
263980
  "type": "string",
@@ -264146,7 +264146,7 @@
264146
264146
  "transform": [
264147
264147
  "trim"
264148
264148
  ],
264149
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
264149
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
264150
264150
  },
264151
264151
  "deviceType": {
264152
264152
  "type": "string",
@@ -264159,11 +264159,11 @@
264159
264159
  "osVersion": {
264160
264160
  "type": "string",
264161
264161
  "minLength": 1,
264162
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
264162
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
264163
264163
  },
264164
264164
  "headless": {
264165
264165
  "type": "boolean",
264166
- "description": "Run the Android emulator without a window. Ignored where not applicable."
264166
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
264167
264167
  },
264168
264168
  "orientation": {
264169
264169
  "type": "string",
@@ -264262,15 +264262,15 @@
264262
264262
  "install": {
264263
264263
  "type": "string",
264264
264264
  "minLength": 1,
264265
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
264265
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
264266
264266
  },
264267
264267
  "activity": {
264268
264268
  "type": "string",
264269
264269
  "minLength": 1,
264270
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
264270
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
264271
264271
  },
264272
264272
  "device": {
264273
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
264273
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
264274
264274
  "anyOf": [
264275
264275
  {
264276
264276
  "type": "string",
@@ -264303,7 +264303,7 @@
264303
264303
  "transform": [
264304
264304
  "trim"
264305
264305
  ],
264306
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
264306
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
264307
264307
  },
264308
264308
  "deviceType": {
264309
264309
  "type": "string",
@@ -264316,11 +264316,11 @@
264316
264316
  "osVersion": {
264317
264317
  "type": "string",
264318
264318
  "minLength": 1,
264319
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
264319
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
264320
264320
  },
264321
264321
  "headless": {
264322
264322
  "type": "boolean",
264323
- "description": "Run the Android emulator without a window. Ignored where not applicable."
264323
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
264324
264324
  },
264325
264325
  "orientation": {
264326
264326
  "type": "string",
@@ -270788,7 +270788,7 @@
270788
270788
  ]
270789
270789
  },
270790
270790
  "device": {
270791
- "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
270791
+ "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
270792
270792
  "examples": [
270793
270793
  "pixel7",
270794
270794
  {
@@ -270827,7 +270827,7 @@
270827
270827
  "transform": [
270828
270828
  "trim"
270829
270829
  ],
270830
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
270830
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
270831
270831
  },
270832
270832
  "deviceType": {
270833
270833
  "type": "string",
@@ -270840,11 +270840,11 @@
270840
270840
  "osVersion": {
270841
270841
  "type": "string",
270842
270842
  "minLength": 1,
270843
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
270843
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
270844
270844
  },
270845
270845
  "headless": {
270846
270846
  "type": "boolean",
270847
- "description": "Run the Android emulator without a window. Ignored where not applicable."
270847
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
270848
270848
  },
270849
270849
  "orientation": {
270850
270850
  "type": "string",
@@ -271630,7 +271630,7 @@
271630
271630
  ]
271631
271631
  },
271632
271632
  "device": {
271633
- "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
271633
+ "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
271634
271634
  "examples": [
271635
271635
  "pixel7",
271636
271636
  {
@@ -271669,7 +271669,7 @@
271669
271669
  "transform": [
271670
271670
  "trim"
271671
271671
  ],
271672
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
271672
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
271673
271673
  },
271674
271674
  "deviceType": {
271675
271675
  "type": "string",
@@ -271682,11 +271682,11 @@
271682
271682
  "osVersion": {
271683
271683
  "type": "string",
271684
271684
  "minLength": 1,
271685
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
271685
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
271686
271686
  },
271687
271687
  "headless": {
271688
271688
  "type": "boolean",
271689
- "description": "Run the Android emulator without a window. Ignored where not applicable."
271689
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
271690
271690
  },
271691
271691
  "orientation": {
271692
271692
  "type": "string",
@@ -308275,7 +308275,7 @@
308275
308275
  "startSurface": {
308276
308276
  "$schema": "http://json-schema.org/draft-07/schema#",
308277
308277
  "title": "startSurface",
308278
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
308278
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
308279
308279
  "components": {
308280
308280
  "schemas": {
308281
308281
  "appDescriptor": {
@@ -308327,15 +308327,15 @@
308327
308327
  "install": {
308328
308328
  "type": "string",
308329
308329
  "minLength": 1,
308330
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
308330
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
308331
308331
  },
308332
308332
  "activity": {
308333
308333
  "type": "string",
308334
308334
  "minLength": 1,
308335
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
308335
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
308336
308336
  },
308337
308337
  "device": {
308338
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
308338
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
308339
308339
  "anyOf": [
308340
308340
  {
308341
308341
  "type": "string",
@@ -308368,7 +308368,7 @@
308368
308368
  "transform": [
308369
308369
  "trim"
308370
308370
  ],
308371
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
308371
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
308372
308372
  },
308373
308373
  "deviceType": {
308374
308374
  "type": "string",
@@ -308381,11 +308381,11 @@
308381
308381
  "osVersion": {
308382
308382
  "type": "string",
308383
308383
  "minLength": 1,
308384
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
308384
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
308385
308385
  },
308386
308386
  "headless": {
308387
308387
  "type": "boolean",
308388
- "description": "Run the Android emulator without a window. Ignored where not applicable."
308388
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
308389
308389
  },
308390
308390
  "orientation": {
308391
308391
  "type": "string",
@@ -308557,7 +308557,7 @@
308557
308557
  "transform": [
308558
308558
  "trim"
308559
308559
  ],
308560
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
308560
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
308561
308561
  },
308562
308562
  "deviceType": {
308563
308563
  "type": "string",
@@ -308570,11 +308570,11 @@
308570
308570
  "osVersion": {
308571
308571
  "type": "string",
308572
308572
  "minLength": 1,
308573
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
308573
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
308574
308574
  },
308575
308575
  "headless": {
308576
308576
  "type": "boolean",
308577
- "description": "Run the Android emulator without a window. Ignored where not applicable."
308577
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
308578
308578
  },
308579
308579
  "orientation": {
308580
308580
  "type": "string",
@@ -308673,15 +308673,15 @@
308673
308673
  "install": {
308674
308674
  "type": "string",
308675
308675
  "minLength": 1,
308676
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
308676
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
308677
308677
  },
308678
308678
  "activity": {
308679
308679
  "type": "string",
308680
308680
  "minLength": 1,
308681
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
308681
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
308682
308682
  },
308683
308683
  "device": {
308684
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
308684
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
308685
308685
  "anyOf": [
308686
308686
  {
308687
308687
  "type": "string",
@@ -308714,7 +308714,7 @@
308714
308714
  "transform": [
308715
308715
  "trim"
308716
308716
  ],
308717
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
308717
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
308718
308718
  },
308719
308719
  "deviceType": {
308720
308720
  "type": "string",
@@ -308727,11 +308727,11 @@
308727
308727
  "osVersion": {
308728
308728
  "type": "string",
308729
308729
  "minLength": 1,
308730
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
308730
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
308731
308731
  },
308732
308732
  "headless": {
308733
308733
  "type": "boolean",
308734
- "description": "Run the Android emulator without a window. Ignored where not applicable."
308734
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
308735
308735
  },
308736
308736
  "orientation": {
308737
308737
  "type": "string",
@@ -349765,7 +349765,7 @@
349765
349765
  "startSurface": {
349766
349766
  "$schema": "http://json-schema.org/draft-07/schema#",
349767
349767
  "title": "startSurface",
349768
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
349768
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
349769
349769
  "components": {
349770
349770
  "schemas": {
349771
349771
  "appDescriptor": {
@@ -349817,15 +349817,15 @@
349817
349817
  "install": {
349818
349818
  "type": "string",
349819
349819
  "minLength": 1,
349820
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
349820
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
349821
349821
  },
349822
349822
  "activity": {
349823
349823
  "type": "string",
349824
349824
  "minLength": 1,
349825
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
349825
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
349826
349826
  },
349827
349827
  "device": {
349828
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
349828
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
349829
349829
  "anyOf": [
349830
349830
  {
349831
349831
  "type": "string",
@@ -349858,7 +349858,7 @@
349858
349858
  "transform": [
349859
349859
  "trim"
349860
349860
  ],
349861
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
349861
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
349862
349862
  },
349863
349863
  "deviceType": {
349864
349864
  "type": "string",
@@ -349871,11 +349871,11 @@
349871
349871
  "osVersion": {
349872
349872
  "type": "string",
349873
349873
  "minLength": 1,
349874
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
349874
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
349875
349875
  },
349876
349876
  "headless": {
349877
349877
  "type": "boolean",
349878
- "description": "Run the Android emulator without a window. Ignored where not applicable."
349878
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
349879
349879
  },
349880
349880
  "orientation": {
349881
349881
  "type": "string",
@@ -350047,7 +350047,7 @@
350047
350047
  "transform": [
350048
350048
  "trim"
350049
350049
  ],
350050
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
350050
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
350051
350051
  },
350052
350052
  "deviceType": {
350053
350053
  "type": "string",
@@ -350060,11 +350060,11 @@
350060
350060
  "osVersion": {
350061
350061
  "type": "string",
350062
350062
  "minLength": 1,
350063
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
350063
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
350064
350064
  },
350065
350065
  "headless": {
350066
350066
  "type": "boolean",
350067
- "description": "Run the Android emulator without a window. Ignored where not applicable."
350067
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
350068
350068
  },
350069
350069
  "orientation": {
350070
350070
  "type": "string",
@@ -350163,15 +350163,15 @@
350163
350163
  "install": {
350164
350164
  "type": "string",
350165
350165
  "minLength": 1,
350166
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
350166
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
350167
350167
  },
350168
350168
  "activity": {
350169
350169
  "type": "string",
350170
350170
  "minLength": 1,
350171
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
350171
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
350172
350172
  },
350173
350173
  "device": {
350174
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
350174
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
350175
350175
  "anyOf": [
350176
350176
  {
350177
350177
  "type": "string",
@@ -350204,7 +350204,7 @@
350204
350204
  "transform": [
350205
350205
  "trim"
350206
350206
  ],
350207
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
350207
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
350208
350208
  },
350209
350209
  "deviceType": {
350210
350210
  "type": "string",
@@ -350217,11 +350217,11 @@
350217
350217
  "osVersion": {
350218
350218
  "type": "string",
350219
350219
  "minLength": 1,
350220
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
350220
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
350221
350221
  },
350222
350222
  "headless": {
350223
350223
  "type": "boolean",
350224
- "description": "Run the Android emulator without a window. Ignored where not applicable."
350224
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
350225
350225
  },
350226
350226
  "orientation": {
350227
350227
  "type": "string",
@@ -359902,7 +359902,7 @@
359902
359902
  ]
359903
359903
  },
359904
359904
  "device": {
359905
- "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
359905
+ "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
359906
359906
  "examples": [
359907
359907
  "pixel7",
359908
359908
  {
@@ -359941,7 +359941,7 @@
359941
359941
  "transform": [
359942
359942
  "trim"
359943
359943
  ],
359944
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
359944
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
359945
359945
  },
359946
359946
  "deviceType": {
359947
359947
  "type": "string",
@@ -359954,11 +359954,11 @@
359954
359954
  "osVersion": {
359955
359955
  "type": "string",
359956
359956
  "minLength": 1,
359957
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
359957
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
359958
359958
  },
359959
359959
  "headless": {
359960
359960
  "type": "boolean",
359961
- "description": "Run the Android emulator without a window. Ignored where not applicable."
359961
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
359962
359962
  },
359963
359963
  "orientation": {
359964
359964
  "type": "string",
@@ -360744,7 +360744,7 @@
360744
360744
  ]
360745
360745
  },
360746
360746
  "device": {
360747
- "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
360747
+ "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
360748
360748
  "examples": [
360749
360749
  "pixel7",
360750
360750
  {
@@ -360783,7 +360783,7 @@
360783
360783
  "transform": [
360784
360784
  "trim"
360785
360785
  ],
360786
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
360786
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
360787
360787
  },
360788
360788
  "deviceType": {
360789
360789
  "type": "string",
@@ -360796,11 +360796,11 @@
360796
360796
  "osVersion": {
360797
360797
  "type": "string",
360798
360798
  "minLength": 1,
360799
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
360799
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
360800
360800
  },
360801
360801
  "headless": {
360802
360802
  "type": "boolean",
360803
- "description": "Run the Android emulator without a window. Ignored where not applicable."
360803
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
360804
360804
  },
360805
360805
  "orientation": {
360806
360806
  "type": "string",
@@ -397389,7 +397389,7 @@
397389
397389
  "startSurface": {
397390
397390
  "$schema": "http://json-schema.org/draft-07/schema#",
397391
397391
  "title": "startSurface",
397392
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
397392
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
397393
397393
  "components": {
397394
397394
  "schemas": {
397395
397395
  "appDescriptor": {
@@ -397441,15 +397441,15 @@
397441
397441
  "install": {
397442
397442
  "type": "string",
397443
397443
  "minLength": 1,
397444
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
397444
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
397445
397445
  },
397446
397446
  "activity": {
397447
397447
  "type": "string",
397448
397448
  "minLength": 1,
397449
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
397449
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
397450
397450
  },
397451
397451
  "device": {
397452
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
397452
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
397453
397453
  "anyOf": [
397454
397454
  {
397455
397455
  "type": "string",
@@ -397482,7 +397482,7 @@
397482
397482
  "transform": [
397483
397483
  "trim"
397484
397484
  ],
397485
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
397485
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
397486
397486
  },
397487
397487
  "deviceType": {
397488
397488
  "type": "string",
@@ -397495,11 +397495,11 @@
397495
397495
  "osVersion": {
397496
397496
  "type": "string",
397497
397497
  "minLength": 1,
397498
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
397498
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
397499
397499
  },
397500
397500
  "headless": {
397501
397501
  "type": "boolean",
397502
- "description": "Run the Android emulator without a window. Ignored where not applicable."
397502
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
397503
397503
  },
397504
397504
  "orientation": {
397505
397505
  "type": "string",
@@ -397671,7 +397671,7 @@
397671
397671
  "transform": [
397672
397672
  "trim"
397673
397673
  ],
397674
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
397674
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
397675
397675
  },
397676
397676
  "deviceType": {
397677
397677
  "type": "string",
@@ -397684,11 +397684,11 @@
397684
397684
  "osVersion": {
397685
397685
  "type": "string",
397686
397686
  "minLength": 1,
397687
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
397687
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
397688
397688
  },
397689
397689
  "headless": {
397690
397690
  "type": "boolean",
397691
- "description": "Run the Android emulator without a window. Ignored where not applicable."
397691
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
397692
397692
  },
397693
397693
  "orientation": {
397694
397694
  "type": "string",
@@ -397787,15 +397787,15 @@
397787
397787
  "install": {
397788
397788
  "type": "string",
397789
397789
  "minLength": 1,
397790
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
397790
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
397791
397791
  },
397792
397792
  "activity": {
397793
397793
  "type": "string",
397794
397794
  "minLength": 1,
397795
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
397795
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
397796
397796
  },
397797
397797
  "device": {
397798
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
397798
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
397799
397799
  "anyOf": [
397800
397800
  {
397801
397801
  "type": "string",
@@ -397828,7 +397828,7 @@
397828
397828
  "transform": [
397829
397829
  "trim"
397830
397830
  ],
397831
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
397831
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
397832
397832
  },
397833
397833
  "deviceType": {
397834
397834
  "type": "string",
@@ -397841,11 +397841,11 @@
397841
397841
  "osVersion": {
397842
397842
  "type": "string",
397843
397843
  "minLength": 1,
397844
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
397844
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
397845
397845
  },
397846
397846
  "headless": {
397847
397847
  "type": "boolean",
397848
- "description": "Run the Android emulator without a window. Ignored where not applicable."
397848
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
397849
397849
  },
397850
397850
  "orientation": {
397851
397851
  "type": "string",
@@ -438879,7 +438879,7 @@
438879
438879
  "startSurface": {
438880
438880
  "$schema": "http://json-schema.org/draft-07/schema#",
438881
438881
  "title": "startSurface",
438882
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
438882
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
438883
438883
  "components": {
438884
438884
  "schemas": {
438885
438885
  "appDescriptor": {
@@ -438931,15 +438931,15 @@
438931
438931
  "install": {
438932
438932
  "type": "string",
438933
438933
  "minLength": 1,
438934
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
438934
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
438935
438935
  },
438936
438936
  "activity": {
438937
438937
  "type": "string",
438938
438938
  "minLength": 1,
438939
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
438939
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
438940
438940
  },
438941
438941
  "device": {
438942
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
438942
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
438943
438943
  "anyOf": [
438944
438944
  {
438945
438945
  "type": "string",
@@ -438972,7 +438972,7 @@
438972
438972
  "transform": [
438973
438973
  "trim"
438974
438974
  ],
438975
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
438975
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
438976
438976
  },
438977
438977
  "deviceType": {
438978
438978
  "type": "string",
@@ -438985,11 +438985,11 @@
438985
438985
  "osVersion": {
438986
438986
  "type": "string",
438987
438987
  "minLength": 1,
438988
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
438988
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
438989
438989
  },
438990
438990
  "headless": {
438991
438991
  "type": "boolean",
438992
- "description": "Run the Android emulator without a window. Ignored where not applicable."
438992
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
438993
438993
  },
438994
438994
  "orientation": {
438995
438995
  "type": "string",
@@ -439161,7 +439161,7 @@
439161
439161
  "transform": [
439162
439162
  "trim"
439163
439163
  ],
439164
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
439164
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
439165
439165
  },
439166
439166
  "deviceType": {
439167
439167
  "type": "string",
@@ -439174,11 +439174,11 @@
439174
439174
  "osVersion": {
439175
439175
  "type": "string",
439176
439176
  "minLength": 1,
439177
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
439177
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
439178
439178
  },
439179
439179
  "headless": {
439180
439180
  "type": "boolean",
439181
- "description": "Run the Android emulator without a window. Ignored where not applicable."
439181
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
439182
439182
  },
439183
439183
  "orientation": {
439184
439184
  "type": "string",
@@ -439277,15 +439277,15 @@
439277
439277
  "install": {
439278
439278
  "type": "string",
439279
439279
  "minLength": 1,
439280
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
439280
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
439281
439281
  },
439282
439282
  "activity": {
439283
439283
  "type": "string",
439284
439284
  "minLength": 1,
439285
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
439285
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
439286
439286
  },
439287
439287
  "device": {
439288
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
439288
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
439289
439289
  "anyOf": [
439290
439290
  {
439291
439291
  "type": "string",
@@ -439318,7 +439318,7 @@
439318
439318
  "transform": [
439319
439319
  "trim"
439320
439320
  ],
439321
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
439321
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
439322
439322
  },
439323
439323
  "deviceType": {
439324
439324
  "type": "string",
@@ -439331,11 +439331,11 @@
439331
439331
  "osVersion": {
439332
439332
  "type": "string",
439333
439333
  "minLength": 1,
439334
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
439334
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
439335
439335
  },
439336
439336
  "headless": {
439337
439337
  "type": "boolean",
439338
- "description": "Run the Android emulator without a window. Ignored where not applicable."
439338
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
439339
439339
  },
439340
439340
  "orientation": {
439341
439341
  "type": "string",
@@ -445175,7 +445175,7 @@
445175
445175
  "startSurface_v3": {
445176
445176
  "$schema": "http://json-schema.org/draft-07/schema#",
445177
445177
  "title": "startSurface",
445178
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
445178
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
445179
445179
  "components": {
445180
445180
  "schemas": {
445181
445181
  "appDescriptor": {
@@ -445227,15 +445227,15 @@
445227
445227
  "install": {
445228
445228
  "type": "string",
445229
445229
  "minLength": 1,
445230
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
445230
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
445231
445231
  },
445232
445232
  "activity": {
445233
445233
  "type": "string",
445234
445234
  "minLength": 1,
445235
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
445235
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
445236
445236
  },
445237
445237
  "device": {
445238
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
445238
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
445239
445239
  "anyOf": [
445240
445240
  {
445241
445241
  "type": "string",
@@ -445268,7 +445268,7 @@
445268
445268
  "transform": [
445269
445269
  "trim"
445270
445270
  ],
445271
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
445271
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
445272
445272
  },
445273
445273
  "deviceType": {
445274
445274
  "type": "string",
@@ -445281,11 +445281,11 @@
445281
445281
  "osVersion": {
445282
445282
  "type": "string",
445283
445283
  "minLength": 1,
445284
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
445284
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
445285
445285
  },
445286
445286
  "headless": {
445287
445287
  "type": "boolean",
445288
- "description": "Run the Android emulator without a window. Ignored where not applicable."
445288
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
445289
445289
  },
445290
445290
  "orientation": {
445291
445291
  "type": "string",
@@ -445457,7 +445457,7 @@
445457
445457
  "transform": [
445458
445458
  "trim"
445459
445459
  ],
445460
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
445460
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
445461
445461
  },
445462
445462
  "deviceType": {
445463
445463
  "type": "string",
@@ -445470,11 +445470,11 @@
445470
445470
  "osVersion": {
445471
445471
  "type": "string",
445472
445472
  "minLength": 1,
445473
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
445473
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
445474
445474
  },
445475
445475
  "headless": {
445476
445476
  "type": "boolean",
445477
- "description": "Run the Android emulator without a window. Ignored where not applicable."
445477
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
445478
445478
  },
445479
445479
  "orientation": {
445480
445480
  "type": "string",
@@ -445573,15 +445573,15 @@
445573
445573
  "install": {
445574
445574
  "type": "string",
445575
445575
  "minLength": 1,
445576
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
445576
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
445577
445577
  },
445578
445578
  "activity": {
445579
445579
  "type": "string",
445580
445580
  "minLength": 1,
445581
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
445581
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
445582
445582
  },
445583
445583
  "device": {
445584
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
445584
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
445585
445585
  "anyOf": [
445586
445586
  {
445587
445587
  "type": "string",
@@ -445614,7 +445614,7 @@
445614
445614
  "transform": [
445615
445615
  "trim"
445616
445616
  ],
445617
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
445617
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
445618
445618
  },
445619
445619
  "deviceType": {
445620
445620
  "type": "string",
@@ -445627,11 +445627,11 @@
445627
445627
  "osVersion": {
445628
445628
  "type": "string",
445629
445629
  "minLength": 1,
445630
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
445630
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
445631
445631
  },
445632
445632
  "headless": {
445633
445633
  "type": "boolean",
445634
- "description": "Run the Android emulator without a window. Ignored where not applicable."
445634
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
445635
445635
  },
445636
445636
  "orientation": {
445637
445637
  "type": "string",
@@ -481255,7 +481255,7 @@
481255
481255
  "startSurface": {
481256
481256
  "$schema": "http://json-schema.org/draft-07/schema#",
481257
481257
  "title": "startSurface",
481258
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
481258
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
481259
481259
  "components": {
481260
481260
  "schemas": {
481261
481261
  "appDescriptor": {
@@ -481307,15 +481307,15 @@
481307
481307
  "install": {
481308
481308
  "type": "string",
481309
481309
  "minLength": 1,
481310
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
481310
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
481311
481311
  },
481312
481312
  "activity": {
481313
481313
  "type": "string",
481314
481314
  "minLength": 1,
481315
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
481315
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
481316
481316
  },
481317
481317
  "device": {
481318
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
481318
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
481319
481319
  "anyOf": [
481320
481320
  {
481321
481321
  "type": "string",
@@ -481348,7 +481348,7 @@
481348
481348
  "transform": [
481349
481349
  "trim"
481350
481350
  ],
481351
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
481351
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
481352
481352
  },
481353
481353
  "deviceType": {
481354
481354
  "type": "string",
@@ -481361,11 +481361,11 @@
481361
481361
  "osVersion": {
481362
481362
  "type": "string",
481363
481363
  "minLength": 1,
481364
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
481364
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
481365
481365
  },
481366
481366
  "headless": {
481367
481367
  "type": "boolean",
481368
- "description": "Run the Android emulator without a window. Ignored where not applicable."
481368
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
481369
481369
  },
481370
481370
  "orientation": {
481371
481371
  "type": "string",
@@ -481537,7 +481537,7 @@
481537
481537
  "transform": [
481538
481538
  "trim"
481539
481539
  ],
481540
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
481540
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
481541
481541
  },
481542
481542
  "deviceType": {
481543
481543
  "type": "string",
@@ -481550,11 +481550,11 @@
481550
481550
  "osVersion": {
481551
481551
  "type": "string",
481552
481552
  "minLength": 1,
481553
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
481553
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
481554
481554
  },
481555
481555
  "headless": {
481556
481556
  "type": "boolean",
481557
- "description": "Run the Android emulator without a window. Ignored where not applicable."
481557
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
481558
481558
  },
481559
481559
  "orientation": {
481560
481560
  "type": "string",
@@ -481653,15 +481653,15 @@
481653
481653
  "install": {
481654
481654
  "type": "string",
481655
481655
  "minLength": 1,
481656
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
481656
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
481657
481657
  },
481658
481658
  "activity": {
481659
481659
  "type": "string",
481660
481660
  "minLength": 1,
481661
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
481661
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
481662
481662
  },
481663
481663
  "device": {
481664
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
481664
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
481665
481665
  "anyOf": [
481666
481666
  {
481667
481667
  "type": "string",
@@ -481694,7 +481694,7 @@
481694
481694
  "transform": [
481695
481695
  "trim"
481696
481696
  ],
481697
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
481697
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
481698
481698
  },
481699
481699
  "deviceType": {
481700
481700
  "type": "string",
@@ -481707,11 +481707,11 @@
481707
481707
  "osVersion": {
481708
481708
  "type": "string",
481709
481709
  "minLength": 1,
481710
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
481710
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
481711
481711
  },
481712
481712
  "headless": {
481713
481713
  "type": "boolean",
481714
- "description": "Run the Android emulator without a window. Ignored where not applicable."
481714
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
481715
481715
  },
481716
481716
  "orientation": {
481717
481717
  "type": "string",
@@ -488049,7 +488049,7 @@
488049
488049
  ]
488050
488050
  },
488051
488051
  "device": {
488052
- "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
488052
+ "description": "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
488053
488053
  "examples": [
488054
488054
  "pixel7",
488055
488055
  {
@@ -488088,7 +488088,7 @@
488088
488088
  "transform": [
488089
488089
  "trim"
488090
488090
  ],
488091
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
488091
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
488092
488092
  },
488093
488093
  "deviceType": {
488094
488094
  "type": "string",
@@ -488101,11 +488101,11 @@
488101
488101
  "osVersion": {
488102
488102
  "type": "string",
488103
488103
  "minLength": 1,
488104
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
488104
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
488105
488105
  },
488106
488106
  "headless": {
488107
488107
  "type": "boolean",
488108
- "description": "Run the Android emulator without a window. Ignored where not applicable."
488108
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
488109
488109
  },
488110
488110
  "orientation": {
488111
488111
  "type": "string",
@@ -524694,7 +524694,7 @@
524694
524694
  "startSurface": {
524695
524695
  "$schema": "http://json-schema.org/draft-07/schema#",
524696
524696
  "title": "startSurface",
524697
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
524697
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
524698
524698
  "components": {
524699
524699
  "schemas": {
524700
524700
  "appDescriptor": {
@@ -524746,15 +524746,15 @@
524746
524746
  "install": {
524747
524747
  "type": "string",
524748
524748
  "minLength": 1,
524749
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
524749
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
524750
524750
  },
524751
524751
  "activity": {
524752
524752
  "type": "string",
524753
524753
  "minLength": 1,
524754
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
524754
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
524755
524755
  },
524756
524756
  "device": {
524757
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
524757
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
524758
524758
  "anyOf": [
524759
524759
  {
524760
524760
  "type": "string",
@@ -524787,7 +524787,7 @@
524787
524787
  "transform": [
524788
524788
  "trim"
524789
524789
  ],
524790
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
524790
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
524791
524791
  },
524792
524792
  "deviceType": {
524793
524793
  "type": "string",
@@ -524800,11 +524800,11 @@
524800
524800
  "osVersion": {
524801
524801
  "type": "string",
524802
524802
  "minLength": 1,
524803
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
524803
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
524804
524804
  },
524805
524805
  "headless": {
524806
524806
  "type": "boolean",
524807
- "description": "Run the Android emulator without a window. Ignored where not applicable."
524807
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
524808
524808
  },
524809
524809
  "orientation": {
524810
524810
  "type": "string",
@@ -524976,7 +524976,7 @@
524976
524976
  "transform": [
524977
524977
  "trim"
524978
524978
  ],
524979
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
524979
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
524980
524980
  },
524981
524981
  "deviceType": {
524982
524982
  "type": "string",
@@ -524989,11 +524989,11 @@
524989
524989
  "osVersion": {
524990
524990
  "type": "string",
524991
524991
  "minLength": 1,
524992
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
524992
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
524993
524993
  },
524994
524994
  "headless": {
524995
524995
  "type": "boolean",
524996
- "description": "Run the Android emulator without a window. Ignored where not applicable."
524996
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
524997
524997
  },
524998
524998
  "orientation": {
524999
524999
  "type": "string",
@@ -525092,15 +525092,15 @@
525092
525092
  "install": {
525093
525093
  "type": "string",
525094
525094
  "minLength": 1,
525095
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
525095
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
525096
525096
  },
525097
525097
  "activity": {
525098
525098
  "type": "string",
525099
525099
  "minLength": 1,
525100
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
525100
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
525101
525101
  },
525102
525102
  "device": {
525103
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
525103
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
525104
525104
  "anyOf": [
525105
525105
  {
525106
525106
  "type": "string",
@@ -525133,7 +525133,7 @@
525133
525133
  "transform": [
525134
525134
  "trim"
525135
525135
  ],
525136
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
525136
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
525137
525137
  },
525138
525138
  "deviceType": {
525139
525139
  "type": "string",
@@ -525146,11 +525146,11 @@
525146
525146
  "osVersion": {
525147
525147
  "type": "string",
525148
525148
  "minLength": 1,
525149
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
525149
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
525150
525150
  },
525151
525151
  "headless": {
525152
525152
  "type": "boolean",
525153
- "description": "Run the Android emulator without a window. Ignored where not applicable."
525153
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
525154
525154
  },
525155
525155
  "orientation": {
525156
525156
  "type": "string",
@@ -566184,7 +566184,7 @@
566184
566184
  "startSurface": {
566185
566185
  "$schema": "http://json-schema.org/draft-07/schema#",
566186
566186
  "title": "startSurface",
566187
- "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator via the `device`, `install`, and `activity` fields (iOS lands in A4). Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
566187
+ "description": "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1–A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings → Privacy & Security → Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
566188
566188
  "components": {
566189
566189
  "schemas": {
566190
566190
  "appDescriptor": {
@@ -566236,15 +566236,15 @@
566236
566236
  "install": {
566237
566237
  "type": "string",
566238
566238
  "minLength": 1,
566239
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
566239
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
566240
566240
  },
566241
566241
  "activity": {
566242
566242
  "type": "string",
566243
566243
  "minLength": 1,
566244
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
566244
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
566245
566245
  },
566246
566246
  "device": {
566247
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
566247
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
566248
566248
  "anyOf": [
566249
566249
  {
566250
566250
  "type": "string",
@@ -566277,7 +566277,7 @@
566277
566277
  "transform": [
566278
566278
  "trim"
566279
566279
  ],
566280
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
566280
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
566281
566281
  },
566282
566282
  "deviceType": {
566283
566283
  "type": "string",
@@ -566290,11 +566290,11 @@
566290
566290
  "osVersion": {
566291
566291
  "type": "string",
566292
566292
  "minLength": 1,
566293
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
566293
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
566294
566294
  },
566295
566295
  "headless": {
566296
566296
  "type": "boolean",
566297
- "description": "Run the Android emulator without a window. Ignored where not applicable."
566297
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
566298
566298
  },
566299
566299
  "orientation": {
566300
566300
  "type": "string",
@@ -566466,7 +566466,7 @@
566466
566466
  "transform": [
566467
566467
  "trim"
566468
566468
  ],
566469
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
566469
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
566470
566470
  },
566471
566471
  "deviceType": {
566472
566472
  "type": "string",
@@ -566479,11 +566479,11 @@
566479
566479
  "osVersion": {
566480
566480
  "type": "string",
566481
566481
  "minLength": 1,
566482
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
566482
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
566483
566483
  },
566484
566484
  "headless": {
566485
566485
  "type": "boolean",
566486
- "description": "Run the Android emulator without a window. Ignored where not applicable."
566486
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
566487
566487
  },
566488
566488
  "orientation": {
566489
566489
  "type": "string",
@@ -566582,15 +566582,15 @@
566582
566582
  "install": {
566583
566583
  "type": "string",
566584
566584
  "minLength": 1,
566585
- "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Lands with the Android phase (A3); on other platforms it is validated but not yet honored."
566585
+ "description": "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
566586
566586
  },
566587
566587
  "activity": {
566588
566588
  "type": "string",
566589
566589
  "minLength": 1,
566590
- "description": "Android main activity override (defaults to the package's launcher activity). Lands with the Android phase (A3)."
566590
+ "description": "Android main activity override (defaults to the package's launcher activity). Android-only."
566591
566591
  },
566592
566592
  "device": {
566593
- "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Lands with the Android phase (A3).",
566593
+ "description": "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
566594
566594
  "anyOf": [
566595
566595
  {
566596
566596
  "type": "string",
@@ -566623,7 +566623,7 @@
566623
566623
  "transform": [
566624
566624
  "trim"
566625
566625
  ],
566626
- "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain and a matching system image are installed (`doc-detective install android`)."
566626
+ "description": "Device name and registry identity — the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
566627
566627
  },
566628
566628
  "deviceType": {
566629
566629
  "type": "string",
@@ -566636,11 +566636,11 @@
566636
566636
  "osVersion": {
566637
566637
  "type": "string",
566638
566638
  "minLength": 1,
566639
- "description": "Platform version used when creating a device; must match an installed system image (install more with `doc-detective install android`). Ignored when `name` already matches an existing device. Default: the newest installed version."
566639
+ "description": "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
566640
566640
  },
566641
566641
  "headless": {
566642
566642
  "type": "boolean",
566643
- "description": "Run the Android emulator without a window. Ignored where not applicable."
566643
+ "description": "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
566644
566644
  },
566645
566645
  "orientation": {
566646
566646
  "type": "string",