Skip to content

Apple account controller ios#5655

Draft
tommyv1987 wants to merge 8 commits into
developfrom
feature/apple-account-controller-ios
Draft

Apple account controller ios#5655
tommyv1987 wants to merge 8 commits into
developfrom
feature/apple-account-controller-ios

Conversation

@tommyv1987

@tommyv1987 tommyv1987 commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Ticket

Description

  • Wire prepareRegisteredAccount, prefetch, and summary fetch through short-lived NymAccountController sessions instead of direct storage bypass for those paths.
  • Fresh login fetches ticketbooks behind ProcessingAccountView (120s timeout); background refresh uses a 25s timeout inside the BG task budget.
  • Skip account controller creation when the network extension tunnel is active; tear down on app background and cancel on connect start.
  • Cherry-pick background-fetch iOS work: onboarding handoff, IAP overlay fixes, gateway independence arc UX, compile gates, and related tests.
  • Add AccountTunnelPrefetchGate and macOS compile guards for iOS-only registration APIs in shared Home targets.
  • Login, mnemonic, and deeplink paths still use NymVpnAccountStorage (follow-up branch).

Checklist:

  • Changelog

Screenshots (optional, if UI related)


This change is Reviewable

@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 50cb0e05-9d45-4a33-b29c-00d96f92384e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/apple-account-controller-ios

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Replace NymVpnAccountStorage prepareRegisteredAccount, prefetch, and summary
fetch with short-lived NymAccountController sessions. Fresh login fetches
ticketbooks behind ProcessingAccountView (120s); BG refresh uses 25s.
Skip AC when NE tunnel is active; teardown on background and connect start.
Cherry-picks background-fetch UI (arc policy, IAP, onboarding, CI gates).
@tommyv1987 tommyv1987 force-pushed the feature/apple-account-controller-rust branch from 9438328 to 7eb3414 Compare June 22, 2026 14:44
@tommyv1987 tommyv1987 force-pushed the feature/apple-account-controller-ios branch from c8ad928 to 8ed5755 Compare June 22, 2026 14:44
@tommyv1987 tommyv1987 changed the base branch from feature/apple-account-controller-rust to develop June 22, 2026 14:47
@tommyv1987 tommyv1987 added this to the v2026.11 - Ulrichshorn milestone Jun 22, 2026
- `MixnetConfig` passes `enableNotifications` into `GatewayIndependence` and threads server-family reminder settings from `AppSettings`.
- Adds missing `serverFamilyRemindersEnabled` storage and `setGatewayIndependenceNotifications` through tunnel messaging and macOS gRPC.
- Replaces missing Rust `VpnError.AccountStoreBusy` with Swift-only `VPNErrorReason.accountStoreBusy` for the tunnel-active guard.
- Splits iOS account-controller session code into `CredentialsManager+iOSAccountController.swift` so SwiftLint stays under the type body error limit.
- Excludes `**/build/**` from local SwiftLint so SourcePackages are not scanned.
- iOS uses short-lived NymAccountController sessions for account summary, zk-nym prefetch, and post-register prep instead of storage-only prefetch hacks.
- Onboarding account prep treats inactive subscription as prepared so new accounts reach plan purchase without an account controller error alert.
- Login and create-account processing screens orchestrate summary sync and prefetch with shared gates and carousel UX.
- Account registration retries on store-busy conflicts and shuts down controllers when connecting or entering background.
- Passphrase sign-in routes through session coordinator and performAccountRegistration on iOS.
- iOS uses short-lived NymAccountController sessions for account summary, zk-nym prefetch, and post-register prep.
- Web portal purchases force a mandatory account refresh and poll until active, fixing stale no active subscription after returning from nym.com checkout.
- Privy login and create-account imports register when the VPN API token is missing and block auth completion until a usable token exists.
- Credential import during checkout overlay completes pending Privy handoff even when the drawer is hidden.
- Onboarding account prep treats inactive subscription as prepared so new accounts reach plan purchase without a controller error alert.
- Login and create-account processing screens orchestrate summary sync and prefetch with shared gates and carousel UX.
- Account and devices refreshes subscription status on open and when a payment deeplink is received.
- AccountSummaryRefreshPolicy and onboarding session policy unit tests cover refresh and import token gates.
- Big amendments to onboarding flow and seamless connectivity
@sonarqubecloud

Copy link
Copy Markdown

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