From ffeec63fbdfb059fc07d89f0668d740643f2354f Mon Sep 17 00:00:00 2001 From: finalerock44 <77282157+finalerock44@users.noreply.github.com> Date: Wed, 26 Aug 2026 21:48:02 +0100 Subject: [PATCH] feat(device): add iOS 27 and the iPhone 17 family MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mirrors devicecloud-dev/dcd, where iOS 27 and iphone-17/-pro/-pro-max ship behind the IOS_27 rollout gate (on for dev, off in production until the fleet carries a 27 runtime). Nothing here needs gating. The flag descriptions and `cloud.ts` validation derive from these enums, so the CLI offers the values and the API's compatibility matrix is what actually accepts or rejects them — a user who asks for iOS 27 against production gets "iOS version '27' is not supported for device ...", which is the right error. `src/utils/compatibility.ts` already fetches the live matrix from GET /results/compatibility/data, so `dcd list devices` tracks the gate without a release. schema.types.ts regenerated from the API's swagger.json; the only delta is the three iOSVersion enums and the iOSDevice enum, confirming the committed types were otherwise in sync. Note the pre-existing drift in EiOSDevices, left alone here: it still carries iphone-14-pro and iphone-15-pro, which the API dropped. Worth its own cleanup rather than riding along with a feature change. --- src/types/domain/device.types.ts | 4 ++++ src/types/generated/schema.types.ts | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/types/domain/device.types.ts b/src/types/domain/device.types.ts index 5c808a7..1256ad6 100644 --- a/src/types/domain/device.types.ts +++ b/src/types/domain/device.types.ts @@ -13,6 +13,9 @@ export enum EiOSDevices { 'iphone-16-plus' = 'iphone-16-plus', 'iphone-16-pro' = 'iphone-16-pro', 'iphone-16-pro-max' = 'iphone-16-pro-max', + 'iphone-17' = 'iphone-17', + 'iphone-17-pro' = 'iphone-17-pro', + 'iphone-17-pro-max' = 'iphone-17-pro-max', } export enum EAndroidDevices { @@ -26,6 +29,7 @@ export enum EAndroidDevices { export enum EiOSVersions { 'eighteen' = '18', 'seventeen' = '17', + 'twentySeven' = '27', 'twentySix' = '26', } diff --git a/src/types/generated/schema.types.ts b/src/types/generated/schema.types.ts index a1dabd0..387b1c6 100644 --- a/src/types/generated/schema.types.ts +++ b/src/types/generated/schema.types.ts @@ -1650,9 +1650,9 @@ export interface components { appFile?: string; env: string; /** @enum {string} */ - iOSVersion?: "17" | "18" | "26"; + iOSVersion?: "17" | "18" | "26" | "27"; /** @enum {string} */ - iOSDevice?: "iphone-14" | "iphone-15" | "iphone-16" | "iphone-16-plus" | "iphone-16-pro" | "iphone-16-pro-max" | "ipad-pro-6th-gen"; + iOSDevice?: "iphone-14" | "iphone-15" | "iphone-16" | "iphone-16-plus" | "iphone-16-pro" | "iphone-16-pro-max" | "iphone-17" | "iphone-17-pro" | "iphone-17-pro-max" | "ipad-pro-6th-gen"; platform?: string; googlePlay?: boolean; config: string; @@ -1690,9 +1690,9 @@ export interface components { appFile?: string; env: string; /** @enum {string} */ - iOSVersion?: "17" | "18" | "26"; + iOSVersion?: "17" | "18" | "26" | "27"; /** @enum {string} */ - iOSDevice?: "iphone-14" | "iphone-15" | "iphone-16" | "iphone-16-plus" | "iphone-16-pro" | "iphone-16-pro-max" | "ipad-pro-6th-gen"; + iOSDevice?: "iphone-14" | "iphone-15" | "iphone-16" | "iphone-16-plus" | "iphone-16-pro" | "iphone-16-pro-max" | "iphone-17" | "iphone-17-pro" | "iphone-17-pro-max" | "ipad-pro-6th-gen"; platform?: string; googlePlay?: boolean; config: string; @@ -1741,9 +1741,9 @@ export interface components { appFile?: string; env: string; /** @enum {string} */ - iOSVersion?: "17" | "18" | "26"; + iOSVersion?: "17" | "18" | "26" | "27"; /** @enum {string} */ - iOSDevice?: "iphone-14" | "iphone-15" | "iphone-16" | "iphone-16-plus" | "iphone-16-pro" | "iphone-16-pro-max" | "ipad-pro-6th-gen"; + iOSDevice?: "iphone-14" | "iphone-15" | "iphone-16" | "iphone-16-plus" | "iphone-16-pro" | "iphone-16-pro-max" | "iphone-17" | "iphone-17-pro" | "iphone-17-pro-max" | "ipad-pro-6th-gen"; platform?: string; googlePlay?: boolean; config: string;