Skip to main content
v2.3.0 lets your app choose its Settings, account, auth, and paywall surfaces while shared packages keep their state and service logic. It also adds typed record storage and fixes quota enforcement, record loading, chat navigation, and accessibility identifiers.

Before updating

Commit or back up your app changes. Compare your fork with the v2.3.0 tag and merge on an upgrade branch. Do not replace your app-owned screens with the sample wrappers. Keep your bundle ID, branding, service settings, and secrets. Use Xcode 26.2 or newer, the iOS 26 SDK, and Swift 6 strict concurrency. The runtime minimum remains iOS 17. Release tests cover iOS 26.2 and iOS 18.6; that does not claim an iOS 17 device test.

Apply the AI quota migration

If your backend uses the AI endpoint, review and apply supabase/migrations/20261002000000_lock_ai_rate_limit_policy.sql through your normal database migration process before exposing that endpoint to clients. Apply earlier migrations in order on a new backend. Back up existing data and check the change in staging first. The RPC still accepts the same arguments, but only permits the server policy: 60 requests per 3,600 seconds. An authenticated caller cannot choose a shorter window or raise the limit. Anonymous execution is removed. A custom policy requires a reviewed change to both the database function and edge function. Pulling source does not apply a migration to your hosted database.

Merge the capabilities you use

Keep explicit capability choices in CompositionRoot. Remove unused features and their routes instead of adding a second service stack. The new record store suits small datasets: each write encodes the full collection. Use the existing database repositories when you need queries or larger datasets.

Verify your app

Run your fork’s tests and strict lint after the merge. Check New Chat navigation, stream cancellation, saved records after restart, account actions, purchase and restore, and any enabled sync or photo upload. Compare light and dark screens and large text sizes. Keep your own snapshot references and review differences. Before App Store submission, follow the 4.3 checklist. The starter app’s passing checks do not test your live service accounts or guarantee App Store approval. Keep private provider keys out of client config.

Evidence and design

See release validation for the tested commit, runs, counts, and coverage. The technical article explains the design choices and their limits. App Generator has a separate release process; this upgrade does not require it.