Skip to content

feat!: remove iOS 16 - #126

Merged
finalerock44 merged 1 commit into
devfrom
chore/remove-ios-16
Aug 24, 2026
Merged

feat!: remove iOS 16#126
finalerock44 merged 1 commit into
devfrom
chore/remove-ios-16

Conversation

@finalerock44

@finalerock44 finalerock44 commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

iOS 16 was removed from the platform on 2026-08-24 (dcd). Dropping it from the CLI's enum means --ios-version 16 now fails client-side with a validation error naming the supported set, instead of travelling to the API for a 400. Old CLIs still get the server-side rejection, so this is defence in depth rather than the gate.

The --help text at config/flags/device.flags.ts derives from this enum, so it follows automatically; it now reads "options: 18, 17, 26".

Defaults were already iphone-14 / 17 in device-validation.service.ts and are unaffected — iPhone 14 keeps iOS 17 and 18.

src/types/generated/schema.types.ts is regenerated against the new API swagger. As well as narrowing iOSVersion it picks up the API-side drift that had accumulated since the artifact was last built on 2026-08-06.

Not touched: iphone-14-pro / iphone-15-pro are still in EiOSDevices despite having been removed from the platform in January. That is a separate drift with the same shape, and folding it in here would hide it inside an iOS 16 change.

What & why

Type of change

  • fix — bug fix
  • feat — new feature
  • perf — performance improvement
  • refactor — code change that's neither a fix nor a feature
  • docs — documentation only
  • chore / ci / build / test — tooling, no user-facing change
  • Breaking change (title has ! or PR notes a BREAKING CHANGE:)

Checklist

  • PR title follows the Conventional Commits format (see comment above)
  • pnpm lint passes
  • pnpm typecheck passes
  • pnpm build passes
  • I have not bumped the version or edited CHANGELOG.md (release-please handles this)
  • I have signed the CLA (the bot will prompt on first contribution)
  • Docs / README.md / STYLE_GUIDE.md updated if behaviour or output changed

How to test

iOS 16 was removed from the platform on 2026-08-24 (dcd). Dropping it from the
CLI's enum means `--ios-version 16` now fails client-side with a validation
error naming the supported set, instead of travelling to the API for a 400.
Old CLIs still get the server-side rejection, so this is defence in depth
rather than the gate.

The --help text at config/flags/device.flags.ts derives from this enum, so it
follows automatically; it now reads "options: 18, 17, 26".

Defaults were already iphone-14 / 17 in device-validation.service.ts and are
unaffected — iPhone 14 keeps iOS 17 and 18.

src/types/generated/schema.types.ts is regenerated against the new API
swagger. As well as narrowing iOSVersion it picks up the API-side drift that
had accumulated since the artifact was last built on 2026-08-06.

Not touched: iphone-14-pro / iphone-15-pro are still in EiOSDevices despite
having been removed from the platform in January. That is a separate drift
with the same shape, and folding it in here would hide it inside an iOS 16
change.
@finalerock44 finalerock44 self-assigned this Aug 24, 2026
@claude

claude Bot commented Aug 24, 2026

Copy link
Copy Markdown

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

@finalerock44
finalerock44 merged commit fcfa524 into dev Aug 24, 2026
10 checks passed
@finalerock44
finalerock44 deleted the chore/remove-ios-16 branch August 24, 2026 10:26
@finalerock44 finalerock44 mentioned this pull request Aug 24, 2026
14 tasks
finalerock44 added a commit that referenced this pull request Aug 24, 2026
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant