Skip to content

feat: warning prompt - cp-7.74.0#28517

Merged
ieow merged 27 commits into
mainfrom
cw/warning-prompt
Apr 20, 2026
Merged

feat: warning prompt - cp-7.74.0#28517
ieow merged 27 commits into
mainfrom
cw/warning-prompt

Conversation

@ieow

@ieow ieow commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

Description

Google Sign-In on seedless accounts will require iOS 17.4 or later in a future release. Users on older iOS versions need a clear, repeatable nudge to update or back up their Secret Recovery Phrase before support is removed.

This change adds a post-login saga that, on iOS below 17.4, waits for wallet navigation to settle, then may present a reminder sheet with dedicated copy (distinct from the initial onboarding warning). The reminder is shown only when blocking mode is off (so it does not compete with the blocking UX), the user is on the seedless Google flow, and they have not dismissed the sheet within the last 7 days. Dismissal time is stored in onboarding state (iosGoogleWarningSheetLastDismissedAt) and covered by saga unit tests. JSDoc was added on related onboarding prompt helpers.

Changelog

CHANGELOG entry: Added periodic reminders after login for Google seedless users on iOS versions below 17.4 to update iOS or back up their Secret Recovery Phrase before Google Sign-In requirements change

Related issues

Fixes:

Manual testing steps

Feature: iOS Google version reminder after login

  Scenario: reminder shows for seedless Google on iOS below 17.4 when eligible
    Given the device is iOS with version below 17.4
    And Google login iOS unsupported blocking is disabled
    And the user has a seedless Google account (Google auth connection, seedless login flow)
    And the user has not dismissed the reminder sheet in the last 7 days (or never dismissed it)

    When the user completes login and reaches the wallet
    Then after a short delay a reminder sheet should appear with the "iOS update required" title and reminder copy
    And dismissing the sheet should prevent the same reminder from appearing again within 7 days

  Scenario: no reminder when blocking mode is enabled
    Given the device is iOS with version below 17.4
    And Google login iOS unsupported blocking is enabled

    When the user completes login
    Then the periodic post-login reminder sheet described in this PR should not be shown by this saga

  Scenario: no reminder for non-Google seedless or non-seedless users
    Given the device is iOS with version below 17.4
    And blocking mode is off

    When the user completes login as Apple seedless or a non-seedless account
    Then the periodic post-login reminder sheet should not be shown

  Scenario: reminder can show again after 7 days
    Given the device is iOS with version below 17.4
    And blocking mode is off
    And the user previously dismissed the reminder more than 7 days ago

    When the user logs in again
    Then the reminder sheet may be shown again

Screenshots/Recordings

Before

After

Screen.Recording.2026-04-10.at.2.48.52.PM.mov

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Medium Risk
Touches onboarding/authentication Redux state and introduces a new always-on root saga that can show blocking UI after login; mistakes could cause unexpected sheets, analytics noise, or incomplete state reset on wallet deletion.

Overview
Adds a new onboarding Redux field (iosGoogleWarningSheetLastDismissedAt) plus actions/selectors to persist when the iOS Google version warning was last dismissed, and a CLEAR_ONBOARDING action to reset the entire onboarding slice.

Introduces a new post-login saga (promptIosGoogleWarningSheetSaga) that, on iOS < 17.4 and for seedless Google accounts, waits for LOGIN, delays, then conditionally shows a reminder sheet (or error variant when the blocking feature flag is enabled) with a 7-day cooldown and optional analytics tracking. Updates onboarding social-login flow to record dismissal time and enriches the warning metric properties.

Expands onboarding iOS prompt helpers with dedicated reminder/error copy and new strings, and updates wallet deletion to clear onboarding state via clearOnboarding() (with corresponding action/reducer/saga tests added).

Reviewed by Cursor Bugbot for commit cd8e7bb. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

github-actions Bot commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbot metamaskbot added the team-onboarding Onboarding team label Apr 8, 2026
@github-actions github-actions Bot added the size-S label Apr 8, 2026
Comment thread app/store/sagas/onboarding/legacyIosGoogle.ts Outdated
Base automatically changed from cw/legacy-ios-google-not-supported to main April 9, 2026 09:13
Comment thread app/store/sagas/onboarding/legacyIosGoogleReminder.ts
@github-actions github-actions Bot added size-M and removed size-S labels Apr 10, 2026
Comment thread app/store/sagas/onboarding/legacyIosGoogleReminder.test.ts
Comment thread app/components/Views/Onboarding/OnboardingIosPrompt.tsx Outdated
Comment thread app/store/sagas/onboarding/legacyIosGoogleReminder.test.ts
@github-actions github-actions Bot added size-L and removed size-M labels Apr 14, 2026
Comment thread app/store/sagas/onboarding/legacyIosGoogleReminder.ts
Comment thread app/store/sagas/onboarding/legacyIosGoogleReminder.ts

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 8259d16. Configure here.

Comment thread app/core/Authentication/Authentication.ts
@ieow ieow marked this pull request as ready for review April 17, 2026 15:00
@ieow ieow requested a review from a team as a code owner April 17, 2026 15:00
@ieow ieow requested a review from grvgoel81 April 17, 2026 15:00
@github-actions github-actions Bot added the risk-medium Moderate testing recommended · Possible bug introduction risk label Apr 20, 2026
@github-actions github-actions Bot added risk-medium Moderate testing recommended · Possible bug introduction risk and removed risk-medium Moderate testing recommended · Possible bug introduction risk labels Apr 20, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: SmokeSeedlessOnboarding, SmokeWalletPlatform
  • Selected Performance tags: None (no tests recommended)
  • Risk Level: medium
  • AI Confidence: 85%
click to see 🤖 AI reasoning details

E2E Test Selection:
The changes are focused on:

  1. Seedless onboarding / Google login iOS warning flows: A new Redux action setIosGoogleWarningSheetLastDismissedAt and clearOnboarding (consolidated reset), a new saga promptIosGoogleWarningSheetSaga that shows iOS Google version warning reminders after login, and new UI components in OnboardingIosPrompt.tsx. These directly affect SmokeSeedlessOnboarding tests (Google login new user, existing user, lock/unlock, reset wallet, add SRP).

  2. Authentication.deleteWallet() refactoring: The deleteWallet() method now dispatches a single clearOnboarding() action instead of 4 separate dispatches. This is functionally equivalent but needs validation - the google-login-reset-wallet.spec.ts test exercises this path. The clearOnboarding reducer resets to initialOnboardingState which now includes the new iosGoogleWarningSheetLastDismissedAt: null field.

  3. New saga registered in rootSaga: The promptIosGoogleWarningSheetSaga is forked in rootSaga and runs after every LOGIN action on iOS < 17.4 with Google auth. This could affect login flows tested in SmokeSeedlessOnboarding (lock/unlock tests).

  4. SmokeWalletPlatform: The new saga runs after login and involves wallet lifecycle events. The deleteWallet refactoring also touches wallet lifecycle. SmokeWalletPlatform covers wallet lifecycle analytics and multi-SRP architecture which intersects with these changes.

No performance impact expected - these are UI flow changes with minimal rendering overhead. The saga has a 5-second delay but only runs on iOS < 17.4 with Google login, which is a narrow condition unlikely to affect performance benchmarks.

Performance Test Selection:
No performance impact expected. Changes are limited to: (1) onboarding Redux state additions (minimal overhead), (2) a new saga that only runs on iOS < 17.4 with Google login after a 5-second delay, (3) UI component additions for warning sheets. None of these affect rendering performance, asset loading, account list, or critical user flow timing in ways that would be measurable by performance tests.

View GitHub Actions results

@tylerc-consensys tylerc-consensys left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. Also mistakenly pushed to this branch just now (i've reverted it)

@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown
Contributor

E2E Fixture Validation — Schema is up to date
12 value mismatches detected (expected — fixture represents an existing user).
View details

@ieow ieow changed the title feat: warning prompt feat: warning prompt - cp-7.73.0 Apr 20, 2026
@ieow ieow enabled auto-merge April 20, 2026 13:48
@ieow ieow added this pull request to the merge queue Apr 20, 2026
Merged via the queue into main with commit f77c17a Apr 20, 2026
105 checks passed
@ieow ieow deleted the cw/warning-prompt branch April 20, 2026 14:01
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 20, 2026
@metamaskbotv2 metamaskbotv2 Bot added the release-7.75.0 Issue or pull request that will be included in release 7.75.0 label Apr 20, 2026
@ieow ieow changed the title feat: warning prompt - cp-7.73.0 feat: warning prompt - cp-7.74.0 Apr 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.75.0 Issue or pull request that will be included in release 7.75.0 risk-medium Moderate testing recommended · Possible bug introduction risk size-L team-onboarding Onboarding team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants