Skip to content

chore(release): sync stable to main for version 7.69.0#26714

Closed
metamaskbot wants to merge 19 commits into
mainfrom
stable-main-7.69.0
Closed

chore(release): sync stable to main for version 7.69.0#26714
metamaskbot wants to merge 19 commits into
mainfrom
stable-main-7.69.0

Conversation

@metamaskbot
Copy link
Copy Markdown
Collaborator

@metamaskbot metamaskbot commented Feb 27, 2026

This PR syncs the stable branch to main for version 7.69.0.

Synchronization Process:

  • Fetches the latest changes from the remote repository
  • Resets the branch to match the stable branch
  • Attempts to merge changes from main into the branch
  • Handles merge conflicts if they occur

File Preservation:

Preserves specific files from the stable branch:

  • CHANGELOG.md
  • bitrise.yml
  • android/app/build.gradle
  • ios/MetaMask.xcodeproj/project.pbxproj
  • package.json

Indicates the next version candidate of main to 7.69.0

metamaskbot and others added 17 commits February 24, 2026 20:16
- chore: remove process.env spread (#26368)

## **Description**

We shouldn't be spreading then accessing process.env variables. It
doesn't work correctly with the dev watcher
Example:
```
console.log({
  x: process.env.METAMASK_ENVIRONMENT,
  y: { ...process.env }?.METAMASK_ENVIRONMENT,
  z: { ...process.env }?.NODE_ENV,
});

Returns
{
  x: 'dev',
  y: undefined // IT FAILS
  z: 'development'
}
```

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: chore: remove process.env spread

## **Related issues**

Fixes:

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding

Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I've included tests if applicable
- [ ] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I've applied the right labels on the PR (see [labeling

guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Small change to environment detection logic plus test Babel config
exclusion; low risk but could affect behavior where `isProduction()`
gates production-only features if env vars are mis-set.
> 
> **Overview**
> Updates `isProduction()` in `app/util/environment.ts` to directly read
`process.env.METAMASK_ENVIRONMENT` (removing the `{ ...process.env }`
spread workaround) to avoid incorrect/undefined values under the dev
watcher.
> 
> Adjusts `babel.config.tests.js` exclusions so
`transform-inline-environment-variables` does not transform
`app/util/environment.ts` (and its test), keeping runtime env var reads
intact during tests.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
b64f8fa. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[f07db0a](f07db0a)

---------

Co-authored-by: Prithpal Sooriya <prithpal.sooriya@consensys.net>
Co-authored-by: Wei Sun <wei.sun@consensys.net>
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution? -->

Cherry-pick #26481

CI is broken due to a vulnerability with bn.js

<img width="538" height="612" alt="image"

src="https://github.com/user-attachments/assets/9cdeb857-cfde-4e95-aeb9-154de3722904"
/>

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

Fixes:

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

<!-- [screenshots/recordings] -->

<!-- [screenshots/recordings] -->

- [ ] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding

Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I've included tests if applicable
- [ ] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

- [ ] 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.


<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk because this only changes dependency pins/lockfile, but it
can affect any code paths relying on `bn.js` behavior across transitive
deps.
> 
> **Overview**
> Pins `bn.js` to newer patch releases by adding explicit Yarn
`resolutions` for both v4 and v5, and updates the `bnjs4`/`bnjs5`
aliases accordingly to resolve an audit vulnerability.
> 
> Updates related type dependency pinning by moving `@types/bnjs5` to
`@types/bn.js@^5.2.0`, with corresponding `yarn.lock` refresh to reflect
the new `bn.js` and `@types/bn.js` versions.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
a946b35. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->



<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry:

## **Related issues**

Fixes:

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I've included tests if applicable
- [ ] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **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.

---------

Co-authored-by: Bernardo Garces Chapero <bernardo.chapero@consensys.net>
This PR updates the change log for 7.66.0. (Hotfix - no test plan
generated.)

Co-authored-by: metamaskbot <metamaskbot@users.noreply.github.com>
Co-authored-by: João Loureiro <175489935+joaoloureirop@users.noreply.github.com>
# 🚀 v7.66.1 Testing & Release Quality Process

Hi Team,
As part of our new **MetaMask Release Quality Process**, here’s a quick
overview of the key processes, testing strategies, and milestones to
ensure a smooth and high-quality deployment.

---

## 📋 Key Processes

### Testing Strategy
- **Developer Teams:**
Conduct regression and exploratory testing for your functional areas,
including automated and manual tests for critical workflows.
- **QA Team:**
Focus on exploratory testing across the wallet, prioritize high-impact
areas, and triage any Sentry errors found during testing.
- **Customer Success Team:**
Validate new functionalities and provide feedback to support release
monitoring.

### GitHub Signoff
- Each team must **sign off on the Release Candidate (RC)** via GitHub
by the end of the validation timeline (**Tuesday EOD PT**).
- Ensure all tests outlined in the Testing Plan are executed, and any
identified issues are addressed.

### Issue Resolution
- **Resolve all Release Blockers** (Sev0 and Sev1) by **Tuesday EOD
PT**.
- For unresolved blockers, PRs may be reverted, or feature flags
disabled to maintain release quality and timelines.

### Cherry-Picking Criteria
- Only **critical fixes** meeting outlined criteria will be
cherry-picked.
- Developers must ensure these fixes are thoroughly reviewed, tested,
and merged by **Tuesday EOD PT**.

---

## 🗓️ Timeline and Milestones

1. **Today (Friday):** Begin Release Candidate validation.
2. **Tuesday EOD PT:** Finalize RC with all fixes and cherry-picks.
3. **Wednesday:** Buffer day for final checks.
4. **Thursday:** Submit release to app stores and begin rollout to 1% of
users.
5. **Monday:** Scale deployment to 10%.
6. **Tuesday:** Full rollout to 100%.

---

## ✅ Signoff Checklist

Each team is responsible for signing off via GitHub. Use the checkbox
below to track signoff completion:

# Team sign-off checklist
- [ ] Mobile Platform

This process is a major step forward in ensuring release stability and
quality. Let’s stay aligned and make this release a success! 🚀

Feel free to reach out if you have questions or need clarification.

Many thanks in advance

# Reference
- Testing plan sheet -
https://docs.google.com/spreadsheets/d/1tsoodlAlyvEUpkkcNcbZ4PM9HuC9cEM80RZeoVv5OCQ/edit?gid=404070372#gid=404070372

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk release/versioning and dependency-resolution tweaks; main
risk is unintended behavior changes where `isProduction()` is used if
test/CI env vars are misconfigured.
> 
> **Overview**
> Bumps `OTA_VERSION` to `v7.66.1` for the release.
> 
> Simplifies `isProduction()` to directly read
`process.env.METAMASK_ENVIRONMENT`, adds a unit test for it, and
excludes `app/util/environment.ts` (and its test) from Babel env-var
inlining during tests.
> 
> Updates Yarn resolutions/aliases to newer `bn.js` versions (and
`@types/bn.js` for the `bnjs5` alias), with corresponding `yarn.lock`
updates.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
d06b101. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@github-actions
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-bots Bot team (for MetaMask Bot, Runway Bot, etc.) label Feb 27, 2026
joaoloureirop
joaoloureirop previously approved these changes Feb 27, 2026
@joaoloureirop joaoloureirop changed the title release: sync stable to main for version 7.69.0 chore(release): sync stable to main for version 7.69.0 Feb 27, 2026
@joaoloureirop joaoloureirop added team-mobile-platform Mobile Platform team and removed team-mobile-platform Mobile Platform team labels Feb 28, 2026
joaoloureirop
joaoloureirop previously approved these changes Feb 28, 2026
@joaoloureirop joaoloureirop removed request for a team February 28, 2026 00:19
@github-actions github-actions Bot added size-M and removed size-XL labels Feb 28, 2026
@joaoloureirop joaoloureirop added the team-mobile-platform Mobile Platform team label Feb 28, 2026
joaoloureirop
joaoloureirop previously approved these changes Feb 28, 2026
@joaoloureirop joaoloureirop removed the team-mobile-platform Mobile Platform team label Feb 28, 2026
@github-actions github-actions Bot added size-XS and removed size-M labels Feb 28, 2026
@joaoloureirop joaoloureirop added team-mobile-platform Mobile Platform team and removed team-mobile-platform Mobile Platform team labels Feb 28, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 3, 2026

🔍 Smart E2E Test Selection

  • Selected E2E tags: None (no tests recommended)
  • Selected Performance tags: None (no tests recommended)
  • Risk Level: low
  • AI Confidence: 98%
click to see 🤖 AI reasoning details

E2E Test Selection:
The only change in this PR is an update to CHANGELOG.md, which is a pure documentation file. The change adds a new version entry (7.66.1) documenting a previous fix and updates the version comparison links at the bottom of the file. This has zero impact on application code, test infrastructure, UI components, or any user-facing functionality. No E2E tests are needed to validate this change.

Performance Test Selection:
CHANGELOG.md is a documentation file with no impact on application performance. No code changes that could affect rendering, data loading, or app responsiveness are present in this PR.

View GitHub Actions results

@joaoloureirop
Copy link
Copy Markdown
Contributor

Merge my PR

2 similar comments
@joaoloureirop
Copy link
Copy Markdown
Contributor

Merge my PR

@chloeYue
Copy link
Copy Markdown
Contributor

Merge my PR

@chloeYue
Copy link
Copy Markdown
Contributor

Close this PR in favor of this one: #27094

@chloeYue chloeYue closed this Mar 10, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

size-XS 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