From 206a63493099f5ab41750477300ad3fae6bc9027 Mon Sep 17 00:00:00 2001 From: finalerock44 <77282157+finalerock44@users.noreply.github.com> Date: Mon, 24 Aug 2026 13:06:16 +0100 Subject: [PATCH] chore: release 5.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Promote from dev to stable: * feat: remove iOS 16 (#126) — the platform removed iOS 16 on 2026-08-24, so `--ios-version 16` now fails against the API regardless of CLI version. Dropping '16' from `EiOSVersions` moves that rejection client-side with a better message ("Expected one of: 18, 17, 26") instead of a round trip to a 400. `--help` follows automatically, since the option list is derived from the enum. Defaults were already iphone-14 / 17 and are unaffected — iPhone 14 keeps iOS 17 and 18. `src/types/generated/schema.types.ts` is regenerated against the post-removal API swagger; alongside narrowing `iOSVersion` it picks up the API-side drift that had accumulated since the artifact was last built on 2026-08-06. No platform prerequisite in the other direction: the API is already serving the reduced matrix, verified end-to-end on dev (a 5.3.1 CLI targeting iOS 16 is refused by the fetched compatibility data, and a per-flow override reaches the server-side gate). `Release-As: 5.4.0` because the promotion commit is a `chore:` and would otherwise cut no release at all. It is 5.4.0 rather than 6.0.0 deliberately: #126 carried a `!` in its PR title, which is what put the beta line on a 6.0.0-beta.2 release PR before #127 re-pinned it. Removing a version the platform no longer serves takes away nothing that still worked, so it is not a major. The `!` does not reach production anyway — promotions are squash-merged, so it lives only in dev's history. Carries only the source delta — package.json version, CHANGELOG.md and the release-please manifests stay as release-please left them on production. Release-As: 5.4.0 --- src/types/domain/device.types.ts | 1 - src/types/generated/schema.types.ts | 79 ++++++++++++++++++++++------- 2 files changed, 62 insertions(+), 18 deletions(-) diff --git a/src/types/domain/device.types.ts b/src/types/domain/device.types.ts index 4f1ce7d..5c808a7 100644 --- a/src/types/domain/device.types.ts +++ b/src/types/domain/device.types.ts @@ -26,7 +26,6 @@ export enum EAndroidDevices { export enum EiOSVersions { 'eighteen' = '18', 'seventeen' = '17', - 'sixteen' = '16', 'twentySix' = '26', } diff --git a/src/types/generated/schema.types.ts b/src/types/generated/schema.types.ts index 574e604..a1dabd0 100644 --- a/src/types/generated/schema.types.ts +++ b/src/types/generated/schema.types.ts @@ -140,9 +140,10 @@ export interface paths { * never touches credits. Lets the CLI print the cell count and estimated cost, * and surface validation errors, before uploading the flow ZIP. * - * The dollar estimate is exact for non-Google-Play cells; a Google Play - * column's price is path-dependent until #1100 unifies the parallel and - * sequential Play tiering. + * The dollar estimate is exact for every cell, Google Play included: quote + * and charge both run buildBaseCostByTuple -> calculateCost -> the shared + * resolvePricingTier over the same typed device, and so do the parallel and + * sequential submit paths (#1100). */ post: operations["UploadsController_estimateMatrix"]; delete?: never; @@ -689,6 +690,29 @@ export interface paths { patch?: never; trace?: never; }; + "/webhooks/notify-on-retry": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Toggle re-delivery when a retry finishes on an already-reported run (#1277). + * + * Defaults to on, unlike the Slack and email equivalents: this endpoint exists + * for the consumer that would rather NOT be called twice, while automations + * that want the current state keep working untouched. + */ + post: operations["WebhooksController_setNotifyOnRetry"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/webhooks/regenerate-secret": { parameters: { query?: never; @@ -1626,7 +1650,7 @@ export interface components { appFile?: string; env: string; /** @enum {string} */ - iOSVersion?: "16" | "17" | "18" | "26"; + iOSVersion?: "17" | "18" | "26"; /** @enum {string} */ iOSDevice?: "iphone-14" | "iphone-15" | "iphone-16" | "iphone-16-plus" | "iphone-16-pro" | "iphone-16-pro-max" | "ipad-pro-6th-gen"; platform?: string; @@ -1666,7 +1690,7 @@ export interface components { appFile?: string; env: string; /** @enum {string} */ - iOSVersion?: "16" | "17" | "18" | "26"; + iOSVersion?: "17" | "18" | "26"; /** @enum {string} */ iOSDevice?: "iphone-14" | "iphone-15" | "iphone-16" | "iphone-16-plus" | "iphone-16-pro" | "iphone-16-pro-max" | "ipad-pro-6th-gen"; platform?: string; @@ -1717,7 +1741,7 @@ export interface components { appFile?: string; env: string; /** @enum {string} */ - iOSVersion?: "16" | "17" | "18" | "26"; + iOSVersion?: "17" | "18" | "26"; /** @enum {string} */ iOSDevice?: "iphone-14" | "iphone-15" | "iphone-16" | "iphone-16-plus" | "iphone-16-pro" | "iphone-16-pro-max" | "ipad-pro-6th-gen"; platform?: string; @@ -2300,9 +2324,7 @@ export interface operations { OrgController_handlePaddleWebhook: { parameters: { query?: never; - header: { - "paddle-signature": string; - }; + header?: never; path?: never; cookie?: never; }; @@ -2933,7 +2955,6 @@ export interface operations { * "iphone-14": { * "name": "iPhone 14", * "versions": [ - * "16", * "17", * "18" * ], @@ -2997,8 +3018,7 @@ export interface operations { * "33", * "34", * "35", - * "36", - * "37" + * "36" * ], * "deprecated": false * }, @@ -3016,8 +3036,7 @@ export interface operations { * "33", * "34", * "35", - * "36", - * "37" + * "36" * ], * "deprecated": false * }, @@ -3027,8 +3046,7 @@ export interface operations { * "33", * "34", * "35", - * "36", - * "37" + * "36" * ], * "deprecated": false * }, @@ -3139,6 +3157,8 @@ export interface operations { secret_key?: string; /** @description Masked secret (default) */ secret_key_masked?: string; + /** @description Re-deliver when retried tests finish (default true) */ + notify_on_retry?: boolean; /** Format: date-time */ created_at?: string; /** Format: date-time */ @@ -3198,6 +3218,32 @@ export interface operations { }; }; }; + WebhooksController_setNotifyOnRetry: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": { + notifyOnRetry: boolean; + }; + }; + }; + responses: { + /** @description Retry re-delivery setting updated */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": Record; + }; + }; + }; + }; WebhooksController_regenerateWebhookSecret: { parameters: { query?: never; @@ -3882,7 +3928,6 @@ export interface operations { query?: never; header: { authorization: string; - "x-dcd-org": string; }; path?: never; cookie?: never;