Before updating
Commit or back up your app changes. Compare your fork with thev2.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 applysupabase/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.
