Skip to content

chore(runway): cherry-pick fix: Prompt for biometric access on iOS during wallet creation -#26056

Merged
joaoloureirop merged 7 commits intorelease/7.65.0from
cherry-pick-7-65-0-ff37603
Feb 13, 2026
Merged

chore(runway): cherry-pick fix: Prompt for biometric access on iOS during wallet creation -#26056
joaoloureirop merged 7 commits intorelease/7.65.0from
cherry-pick-7-65-0-ff37603

Conversation

@runway-github
Copy link
Contributor

@runway-github runway-github bot commented Feb 13, 2026

Description

This PR addresses a regression on 7.65.0 where biometrics access is no
longer prompted on wallet creation for iOS. The change here adds that
back, which should result in a more intuitive user experience + makes it
consistent with Android. This is an improvement relative to the code
that was removed in
#24496 since we're now
detecting the auth type prior to the password being stored rather than
triggering two storage actions.

Changelog

CHANGELOG entry:

Related issues

Fixes: #25998

Manual testing steps

Allowing biometrics

  • Will be prompted ask for biometric access on wallet creation
  • If allowed, unlock access control will be stored using biometrics
  • Future unlock triggers biometrics

Rejecting biometrics

  • Will be prompted ask for biometric access on wallet creation
  • If rejected, unlock access control will not be stored, forcing user to
    use password
  • Future unlock falls back to password entry

Screenshots/Recordings

Before

After

Allowing biometrics

ScreenRecording_02-12-2026.11-29-41_1.MP4

Rejecting biometrics

ScreenRecording_02-12-2026.11-45-59_1.MP4

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 core wallet creation/import and credential storage logic, including new native biometric prompting on iOS and changes to fallback behavior; regressions could affect onboarding success or how passwords are stored/retrieved.

Overview
Restores an explicit iOS biometric access-control prompt during wallet creation/import by adding Authentication.requestBiometricsAccessControlForIOS (backed by expo-local-authentication) and using its result to downgrade from BIOMETRIC to PASSWORD when the user declines/cancels.

Refactors auth persistence by removing updateAuthTypeStorageFlags/storePasswordWithFallback, making Authentication.storePassword public and adding an optional fallbackToPassword retry path; wallet creation/import and reset-password flows now call storePassword(..., true) directly.

Updates and expands unit tests to cover the new iOS prompt behavior and the revised storePassword fallback/flag logic, adds a Jest mock for expo-local-authentication, and introduces the expo-local-authentication dependency (iOS pod + package).

Written by Cursor Bugbot for commit 0f8b7e7. This will update automatically on new commits. Configure here.

ff37603

@github-actions
Copy link
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-bots Bot team (for MetaMask Bot, Runway Bot, etc.) label Feb 13, 2026
@socket-security
Copy link

socket-security bot commented Feb 13, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​expo-local-authentication@​15.0.210010087100100

View full report

@Cal-L Cal-L requested a review from a team as a code owner February 13, 2026 08:01
Copy link

@cursor cursor bot left a comment

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.

Copy link
Contributor

@ieow ieow left a comment

Choose a reason for hiding this comment

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

lgtm

@joaoloureirop joaoloureirop enabled auto-merge (squash) February 13, 2026 15:08
@github-actions
Copy link
Contributor

🔍 Smart E2E Test Selection

⏭️ Smart E2E selection skipped - base branch is not main (base: release/7.65.0)

All E2E tests pre-selected.

View GitHub Actions results

@sonarqubecloud
Copy link

@joaoloureirop joaoloureirop enabled auto-merge (squash) February 13, 2026 15:53
@joaoloureirop joaoloureirop merged commit b312aaf into release/7.65.0 Feb 13, 2026
69 of 71 checks passed
@joaoloureirop joaoloureirop deleted the cherry-pick-7-65-0-ff37603 branch February 13, 2026 15:54
@github-actions github-actions bot locked and limited conversation to collaborators Feb 13, 2026
@metamaskbot metamaskbot added the release-7.65.0 Issue or pull request that will be included in release 7.65.0 label Feb 16, 2026
@metamaskbot
Copy link
Collaborator

No release label on PR. Adding release label release-7.65.0 on PR, as PR was cherry-picked in branch 7.65.0.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.65.0 Issue or pull request that will be included in release 7.65.0 size-XL team-bots Bot team (for MetaMask Bot, Runway Bot, etc.)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants