Skip to content

Conversation

@Mrtenz
Copy link
Member

@Mrtenz Mrtenz commented Jan 12, 2026

Explanation

This is the release candidate for version 748.0.0.

Primarily, this includes a re-release of @metamask/network-controller, which deprecates the latest version, makes a new major version, and then includes more details for clients to adopt the new changes.

In addition to @metamask/network-controller, we are also including these packages:

  • @metamask/accounts-controller
  • @metamask/bridge-controller
  • @metamask/bridge-status-controller
  • @metamask/ens-controller
  • @metamask/gas-fee-controller
  • @metamask/multichain-network-controller
  • @metamask/polling-controller
  • @metamask/sample-controllers
  • @metamask/selected-network-controller
  • @metamask/signature-controller
  • @metamask/transaction-controller
  • @metamask/transaction-pay-controller
  • @metamask/user-operation-controller

This is to help ensure that we can de-duplicate dependencies in clients effectively.

Note that the following packages have been intentionally omitted because they have other changes besides dependency bumps. We will let the respective teams handle their own releases:

  • @metamask/assets-controllers
  • @metamask/earn-controller
  • @metamask/multichain-api-controller
  • @metamask/network-enablement-controller

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Note

Focuses the release on dependency alignment and a re-release of the network controller.

  • Re-release @metamask/network-controller 28.0.0 (deprecates 27.2.0; documents breaking removal of ErrorReportingService:captureException)
  • Bump and align dependent packages: @metamask/accounts-controller 35.0.1, @metamask/transaction-controller 62.9.1, @metamask/gas-fee-controller 26.0.1, @metamask/polling-controller 16.0.1, @metamask/multichain-network-controller 3.0.1, @metamask/signature-controller 38.0.1, @metamask/bridge-controller 64.4.1, @metamask/bridge-status-controller 64.4.2, @metamask/ens-controller 19.0.1, @metamask/selected-network-controller 26.0.1, @metamask/transaction-pay-controller 11.0.1, @metamask/user-operation-controller 41.0.1, plus cascading updates across related packages
  • Various packages move peer deps to direct deps per changelogs to ease multi-version trees
  • Monorepo version set to 748.0.0; lockfile updated

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

@Mrtenz Mrtenz marked this pull request as ready for review January 12, 2026 15:44
@Mrtenz Mrtenz requested review from a team as code owners January 12, 2026 15:44
In addition to `@metamask/network-controller`, include these packages in
the release:

- `@metamask/accounts-controller`
- `@metamask/assets-controllers`
- `@metamask/bridge-controller`
- `@metamask/bridge-status-controller`
- `@metamask/ens-controller`
- `@metamask/gas-fee-controller`
- `@metamask/multichain-network-controller`
- `@metamask/polling-controller`
- `@metamask/sample-controllers`
- `@metamask/selected-network-controller`
- `@metamask/signature-controller`
- `@metamask/transaction-controller`
- `@metamask/transaction-pay-controller`
- `@metamask/user-operation-controller`

This is to help ensure that we can de-duplicate dependencies in clients
effectively.

Note that the following packages have been intentionally omitted because
they have other changes I am hesitate to release now. I will let the
respective teams handle their own releases:

- `@metamask/earn-controller`
- `@metamask/multichain-api-controller`
- `@metamask/network-enablement-controller`

Also include some tweaks to the `network-controller` CHANGELOG.
@mcmire mcmire requested review from a team as code owners January 12, 2026 19:39
@socket-security
Copy link

socket-security bot commented Jan 13, 2026

No dependency changes detected. Learn more about Socket for GitHub.

👍 No dependency changes detected in pull request

@mcmire
Copy link
Contributor

mcmire commented Jan 13, 2026

@SocketSecurity ignore npm/@metamask/[email protected]

This is our own package. fetch access is expected.

Copy link
Contributor

@cryptodev-2s cryptodev-2s left a comment

Choose a reason for hiding this comment

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

LGTM!

@mcmire mcmire added this pull request to the merge queue Jan 13, 2026
Merged via the queue into main with commit 2e79cb5 Jan 13, 2026
290 checks passed
@mcmire mcmire deleted the release/748.0.0 branch January 13, 2026 15:33
github-merge-queue bot pushed a commit to MetaMask/metamask-extension that referenced this pull request Jan 19, 2026
<!--
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.
-->

~~Depends on MetaMask/core#7624

## **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?
-->
Bumping `@metamask/profile-metrics-controller` to `^3.0.0`.

```markdown
### Added

- `ProfileMetricsController` contructor now accepts an optional `initialDelayDuration` parameter ([#7624](MetaMask/core#7624))
  - The parameter can be used to override the default time-based delay for the first data collection after opt-in
- Add `skipInitialDelay()` method to `ProfileMetricsController` ([#7624](MetaMask/core#7624))
  - The method can be also called through the `ProfileMetricsController:skipInitialDelay` action via messenger

### Changed

- **BREAKING:** `ProileMetricsControllerMessenger` now requires the `TransactionController:transactionSubmitted` action to be allowed ([#7624](MetaMask/core#7624))
- Set time-based delay for first `ProfileMetricsController` data collection after opt-in ([#7624](MetaMask/core#7624))
- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](MetaMask/core#7511))
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.18.0` ([#7534](MetaMask/core#7534), [#7583](MetaMask/core#7583))
- Bump `@metamask/accounts-controller` from `^35.0.0` to `^35.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
- Bump `@metamask/polling-controller` from `^16.0.0` to `^16.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
```

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/39270?quickstart=1)

## **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: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **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
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/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-extension/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]
> **Upgrade and integration**
> 
> - Bumps `@metamask/profile-metrics-controller` to `^3.0.0` and updates
related deps; adds LavaMoat allowances for `@metamask/utils`
> - Passes `initialDelayDuration` to `ProfileMetricsController` (10 min
prod; 1s tests)
> 
> **Skip flow and messaging**
> 
> - Adds `ProfileMetricsController:skipInitialDelay` to
`AppStateController` allowed actions and invokes it when
`setPna25Acknowledged(true, true)` is called
> - UI onboarding updates (`metametrics`, `welcome`) and Redux action
now pass the extra flag to enable immediate collection skip
> - `ProfileMetricsController` messenger now listens to
`TransactionController:transactionSubmitted`
> 
> **Tests**
> 
> - Updates controller init test for new args and e2e description to
reflect initial delay
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
62bb61c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: MetaMask Bot <[email protected]>
github-merge-queue bot pushed a commit to MetaMask/metamask-extension that referenced this pull request Jan 19, 2026
<!--
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.
-->

~~Depends on MetaMask/core#7624

## **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?
-->
Bumping `@metamask/profile-metrics-controller` to `^3.0.0`.

```markdown
### Added

- `ProfileMetricsController` contructor now accepts an optional `initialDelayDuration` parameter ([#7624](MetaMask/core#7624))
  - The parameter can be used to override the default time-based delay for the first data collection after opt-in
- Add `skipInitialDelay()` method to `ProfileMetricsController` ([#7624](MetaMask/core#7624))
  - The method can be also called through the `ProfileMetricsController:skipInitialDelay` action via messenger

### Changed

- **BREAKING:** `ProileMetricsControllerMessenger` now requires the `TransactionController:transactionSubmitted` action to be allowed ([#7624](MetaMask/core#7624))
- Set time-based delay for first `ProfileMetricsController` data collection after opt-in ([#7624](MetaMask/core#7624))
- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](MetaMask/core#7511))
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.18.0` ([#7534](MetaMask/core#7534), [#7583](MetaMask/core#7583))
- Bump `@metamask/accounts-controller` from `^35.0.0` to `^35.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
- Bump `@metamask/polling-controller` from `^16.0.0` to `^16.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
```

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/39270?quickstart=1)

## **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: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **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
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/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-extension/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]
> **Upgrade and integration**
> 
> - Bumps `@metamask/profile-metrics-controller` to `^3.0.0` and updates
related deps; adds LavaMoat allowances for `@metamask/utils`
> - Passes `initialDelayDuration` to `ProfileMetricsController` (10 min
prod; 1s tests)
> 
> **Skip flow and messaging**
> 
> - Adds `ProfileMetricsController:skipInitialDelay` to
`AppStateController` allowed actions and invokes it when
`setPna25Acknowledged(true, true)` is called
> - UI onboarding updates (`metametrics`, `welcome`) and Redux action
now pass the extra flag to enable immediate collection skip
> - `ProfileMetricsController` messenger now listens to
`TransactionController:transactionSubmitted`
> 
> **Tests**
> 
> - Updates controller init test for new args and e2e description to
reflect initial delay
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
62bb61c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: MetaMask Bot <[email protected]>
github-merge-queue bot pushed a commit to MetaMask/metamask-extension that referenced this pull request Jan 19, 2026
<!--
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.
-->

~~Depends on MetaMask/core#7624

## **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?
-->
Bumping `@metamask/profile-metrics-controller` to `^3.0.0`.

```markdown
### Added

- `ProfileMetricsController` contructor now accepts an optional `initialDelayDuration` parameter ([#7624](MetaMask/core#7624))
  - The parameter can be used to override the default time-based delay for the first data collection after opt-in
- Add `skipInitialDelay()` method to `ProfileMetricsController` ([#7624](MetaMask/core#7624))
  - The method can be also called through the `ProfileMetricsController:skipInitialDelay` action via messenger

### Changed

- **BREAKING:** `ProileMetricsControllerMessenger` now requires the `TransactionController:transactionSubmitted` action to be allowed ([#7624](MetaMask/core#7624))
- Set time-based delay for first `ProfileMetricsController` data collection after opt-in ([#7624](MetaMask/core#7624))
- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](MetaMask/core#7511))
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.18.0` ([#7534](MetaMask/core#7534), [#7583](MetaMask/core#7583))
- Bump `@metamask/accounts-controller` from `^35.0.0` to `^35.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
- Bump `@metamask/polling-controller` from `^16.0.0` to `^16.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
```

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/39270?quickstart=1)

## **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: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **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
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/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-extension/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]
> **Upgrade and integration**
> 
> - Bumps `@metamask/profile-metrics-controller` to `^3.0.0` and updates
related deps; adds LavaMoat allowances for `@metamask/utils`
> - Passes `initialDelayDuration` to `ProfileMetricsController` (10 min
prod; 1s tests)
> 
> **Skip flow and messaging**
> 
> - Adds `ProfileMetricsController:skipInitialDelay` to
`AppStateController` allowed actions and invokes it when
`setPna25Acknowledged(true, true)` is called
> - UI onboarding updates (`metametrics`, `welcome`) and Redux action
now pass the extra flag to enable immediate collection skip
> - `ProfileMetricsController` messenger now listens to
`TransactionController:transactionSubmitted`
> 
> **Tests**
> 
> - Updates controller init test for new args and e2e description to
reflect initial delay
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
62bb61c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: MetaMask Bot <[email protected]>
runway-github bot added a commit to MetaMask/metamask-extension that referenced this pull request Jan 19, 2026
<!--
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.
-->

~~Depends on MetaMask/core#7624

## **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?
-->
Bumping `@metamask/profile-metrics-controller` to `^3.0.0`.

```markdown
### Added

- `ProfileMetricsController` contructor now accepts an optional `initialDelayDuration` parameter ([#7624](MetaMask/core#7624))
  - The parameter can be used to override the default time-based delay for the first data collection after opt-in
- Add `skipInitialDelay()` method to `ProfileMetricsController` ([#7624](MetaMask/core#7624))
  - The method can be also called through the `ProfileMetricsController:skipInitialDelay` action via messenger

### Changed

- **BREAKING:** `ProileMetricsControllerMessenger` now requires the `TransactionController:transactionSubmitted` action to be allowed ([#7624](MetaMask/core#7624))
- Set time-based delay for first `ProfileMetricsController` data collection after opt-in ([#7624](MetaMask/core#7624))
- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](MetaMask/core#7511))
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.18.0` ([#7534](MetaMask/core#7534), [#7583](MetaMask/core#7583))
- Bump `@metamask/accounts-controller` from `^35.0.0` to `^35.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
- Bump `@metamask/polling-controller` from `^16.0.0` to `^16.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
```

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/39270?quickstart=1)

## **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: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **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
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/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-extension/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]
> **Upgrade and integration**
> 
> - Bumps `@metamask/profile-metrics-controller` to `^3.0.0` and updates
related deps; adds LavaMoat allowances for `@metamask/utils`
> - Passes `initialDelayDuration` to `ProfileMetricsController` (10 min
prod; 1s tests)
> 
> **Skip flow and messaging**
> 
> - Adds `ProfileMetricsController:skipInitialDelay` to
`AppStateController` allowed actions and invokes it when
`setPna25Acknowledged(true, true)` is called
> - UI onboarding updates (`metametrics`, `welcome`) and Redux action
now pass the extra flag to enable immediate collection skip
> - `ProfileMetricsController` messenger now listens to
`TransactionController:transactionSubmitted`
> 
> **Tests**
> 
> - Updates controller init test for new args and e2e description to
reflect initial delay
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
62bb61c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: MetaMask Bot <[email protected]>
runway-github bot added a commit to MetaMask/metamask-extension that referenced this pull request Jan 19, 2026
<!--
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.
-->

~~Depends on MetaMask/core#7624

## **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?
-->
Bumping `@metamask/profile-metrics-controller` to `^3.0.0`.

```markdown
### Added

- `ProfileMetricsController` contructor now accepts an optional `initialDelayDuration` parameter ([#7624](MetaMask/core#7624))
  - The parameter can be used to override the default time-based delay for the first data collection after opt-in
- Add `skipInitialDelay()` method to `ProfileMetricsController` ([#7624](MetaMask/core#7624))
  - The method can be also called through the `ProfileMetricsController:skipInitialDelay` action via messenger

### Changed

- **BREAKING:** `ProileMetricsControllerMessenger` now requires the `TransactionController:transactionSubmitted` action to be allowed ([#7624](MetaMask/core#7624))
- Set time-based delay for first `ProfileMetricsController` data collection after opt-in ([#7624](MetaMask/core#7624))
- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](MetaMask/core#7511))
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.18.0` ([#7534](MetaMask/core#7534), [#7583](MetaMask/core#7583))
- Bump `@metamask/accounts-controller` from `^35.0.0` to `^35.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
- Bump `@metamask/polling-controller` from `^16.0.0` to `^16.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
```

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/39270?quickstart=1)

## **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: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **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
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/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-extension/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]
> **Upgrade and integration**
>
> - Bumps `@metamask/profile-metrics-controller` to `^3.0.0` and updates
related deps; adds LavaMoat allowances for `@metamask/utils`
> - Passes `initialDelayDuration` to `ProfileMetricsController` (10 min
prod; 1s tests)
>
> **Skip flow and messaging**
>
> - Adds `ProfileMetricsController:skipInitialDelay` to
`AppStateController` allowed actions and invokes it when
`setPna25Acknowledged(true, true)` is called
> - UI onboarding updates (`metametrics`, `welcome`) and Redux action
now pass the extra flag to enable immediate collection skip
> - `ProfileMetricsController` messenger now listens to
`TransactionController:transactionSubmitted`
>
> **Tests**
>
> - Updates controller init test for new args and e2e description to
reflect initial delay
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
62bb61c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: MetaMask Bot <[email protected]>
runway-github bot pushed a commit to MetaMask/metamask-extension that referenced this pull request Jan 19, 2026
…er cp-13.14.1 (#39270)

<!--
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.
-->

~~Depends on MetaMask/core#7624

## **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?
-->
Bumping `@metamask/profile-metrics-controller` to `^3.0.0`.

```markdown
### Added

- `ProfileMetricsController` contructor now accepts an optional `initialDelayDuration` parameter ([#7624](MetaMask/core#7624))
  - The parameter can be used to override the default time-based delay for the first data collection after opt-in
- Add `skipInitialDelay()` method to `ProfileMetricsController` ([#7624](MetaMask/core#7624))
  - The method can be also called through the `ProfileMetricsController:skipInitialDelay` action via messenger

### Changed

- **BREAKING:** `ProileMetricsControllerMessenger` now requires the `TransactionController:transactionSubmitted` action to be allowed ([#7624](MetaMask/core#7624))
- Set time-based delay for first `ProfileMetricsController` data collection after opt-in ([#7624](MetaMask/core#7624))
- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](MetaMask/core#7511))
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.18.0` ([#7534](MetaMask/core#7534), [#7583](MetaMask/core#7583))
- Bump `@metamask/accounts-controller` from `^35.0.0` to `^35.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
- Bump `@metamask/polling-controller` from `^16.0.0` to `^16.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
```

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/39270?quickstart=1)

## **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: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **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
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/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-extension/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]
> **Upgrade and integration**
> 
> - Bumps `@metamask/profile-metrics-controller` to `^3.0.0` and updates
related deps; adds LavaMoat allowances for `@metamask/utils`
> - Passes `initialDelayDuration` to `ProfileMetricsController` (10 min
prod; 1s tests)
> 
> **Skip flow and messaging**
> 
> - Adds `ProfileMetricsController:skipInitialDelay` to
`AppStateController` allowed actions and invokes it when
`setPna25Acknowledged(true, true)` is called
> - UI onboarding updates (`metametrics`, `welcome`) and Redux action
now pass the extra flag to enable immediate collection skip
> - `ProfileMetricsController` messenger now listens to
`TransactionController:transactionSubmitted`
> 
> **Tests**
> 
> - Updates controller init test for new args and e2e description to
reflect initial delay
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
62bb61c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: MetaMask Bot <[email protected]>
Gudahtt pushed a commit to MetaMask/metamask-extension that referenced this pull request Jan 19, 2026
…er cp-13.14.1 (#39270)

<!--
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.
-->

~~Depends on MetaMask/core#7624

## **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?
-->
Bumping `@metamask/profile-metrics-controller` to `^3.0.0`.

```markdown
### Added

- `ProfileMetricsController` contructor now accepts an optional `initialDelayDuration` parameter ([#7624](MetaMask/core#7624))
  - The parameter can be used to override the default time-based delay for the first data collection after opt-in
- Add `skipInitialDelay()` method to `ProfileMetricsController` ([#7624](MetaMask/core#7624))
  - The method can be also called through the `ProfileMetricsController:skipInitialDelay` action via messenger

### Changed

- **BREAKING:** `ProileMetricsControllerMessenger` now requires the `TransactionController:transactionSubmitted` action to be allowed ([#7624](MetaMask/core#7624))
- Set time-based delay for first `ProfileMetricsController` data collection after opt-in ([#7624](MetaMask/core#7624))
- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](MetaMask/core#7511))
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.18.0` ([#7534](MetaMask/core#7534), [#7583](MetaMask/core#7583))
- Bump `@metamask/accounts-controller` from `^35.0.0` to `^35.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
- Bump `@metamask/polling-controller` from `^16.0.0` to `^16.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
```

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/39270?quickstart=1)

## **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: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **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
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/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-extension/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]
> **Upgrade and integration**
> 
> - Bumps `@metamask/profile-metrics-controller` to `^3.0.0` and updates
related deps; adds LavaMoat allowances for `@metamask/utils`
> - Passes `initialDelayDuration` to `ProfileMetricsController` (10 min
prod; 1s tests)
> 
> **Skip flow and messaging**
> 
> - Adds `ProfileMetricsController:skipInitialDelay` to
`AppStateController` allowed actions and invokes it when
`setPna25Acknowledged(true, true)` is called
> - UI onboarding updates (`metametrics`, `welcome`) and Redux action
now pass the extra flag to enable immediate collection skip
> - `ProfileMetricsController` messenger now listens to
`TransactionController:transactionSubmitted`
> 
> **Tests**
> 
> - Updates controller init test for new args and e2e description to
reflect initial delay
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
62bb61c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: MetaMask Bot <[email protected]>
Gudahtt added a commit to MetaMask/metamask-extension that referenced this pull request Jan 19, 2026
…er cp-13.14.1 (#39359)

- bump: @metamask/profile-metrics-controller cp-13.14.1 (#39270)

<!--
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.
-->

~~Depends on MetaMask/core#7624

## **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?
-->
Bumping `@metamask/profile-metrics-controller` to `^3.0.0`.

```markdown
### Added

- `ProfileMetricsController` contructor now accepts an optional `initialDelayDuration` parameter ([#7624](MetaMask/core#7624))
  - The parameter can be used to override the default time-based delay for the first data collection after opt-in
- Add `skipInitialDelay()` method to `ProfileMetricsController` ([#7624](MetaMask/core#7624))
  - The method can be also called through the `ProfileMetricsController:skipInitialDelay` action via messenger

### Changed

- **BREAKING:** `ProileMetricsControllerMessenger` now requires the `TransactionController:transactionSubmitted` action to be allowed ([#7624](MetaMask/core#7624))
- Set time-based delay for first `ProfileMetricsController` data collection after opt-in ([#7624](MetaMask/core#7624))
- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](MetaMask/core#7511))
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.18.0` ([#7534](MetaMask/core#7534), [#7583](MetaMask/core#7583))
- Bump `@metamask/accounts-controller` from `^35.0.0` to `^35.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
- Bump `@metamask/polling-controller` from `^16.0.0` to `^16.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
```

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/39270?quickstart=1)

## **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: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **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
Extension Coding

Standards](https://github.com/MetaMask/metamask-extension/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-extension/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]
> **Upgrade and integration of profile metrics delay**
> 
> - Bumps `@metamask/profile-metrics-controller` to `^3.0.0`;
initializes with `initialDelayDuration` (test: 1s, prod: 10m)
> - Adds `ProfileMetricsController:skipInitialDelay` action to
`AppStateController` messenger and invokes it when
`setPna25Acknowledged(true, true)` is called
> - Updates Profile Metrics messenger to require
`TransactionController:transactionSubmitted` event
> - Adjusts UI (`metametrics` and `welcome`) and `setPna25Acknowledged`
action to support optional delay skipping; updates tests accordingly
> - Updates LavaMoat policies and bumps related packages
(`network-controller`, `polling-controller`, `gas-fee-controller`,
`json-rpc-engine`, `eth-block-tracker`, etc.)
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
f32290f. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: MetaMask Bot <[email protected]>
[dba4a74](dba4a74)

---------

Co-authored-by: Michele Esposito <[email protected]>
Co-authored-by: MetaMask Bot <[email protected]>
Co-authored-by: Mark Stacey <[email protected]>
wantedsystem pushed a commit to MetaMask/metamask-extension that referenced this pull request Jan 27, 2026
<!--
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.
-->

~~Depends on MetaMask/core#7624

## **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?
-->
Bumping `@metamask/profile-metrics-controller` to `^3.0.0`.

```markdown
### Added

- `ProfileMetricsController` contructor now accepts an optional `initialDelayDuration` parameter ([#7624](MetaMask/core#7624))
  - The parameter can be used to override the default time-based delay for the first data collection after opt-in
- Add `skipInitialDelay()` method to `ProfileMetricsController` ([#7624](MetaMask/core#7624))
  - The method can be also called through the `ProfileMetricsController:skipInitialDelay` action via messenger

### Changed

- **BREAKING:** `ProileMetricsControllerMessenger` now requires the `TransactionController:transactionSubmitted` action to be allowed ([#7624](MetaMask/core#7624))
- Set time-based delay for first `ProfileMetricsController` data collection after opt-in ([#7624](MetaMask/core#7624))
- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](MetaMask/core#7511))
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.18.0` ([#7534](MetaMask/core#7534), [#7583](MetaMask/core#7583))
- Bump `@metamask/accounts-controller` from `^35.0.0` to `^35.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
- Bump `@metamask/polling-controller` from `^16.0.0` to `^16.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
```

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/39270?quickstart=1)

## **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: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **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
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/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-extension/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]
> **Upgrade and integration**
> 
> - Bumps `@metamask/profile-metrics-controller` to `^3.0.0` and updates
related deps; adds LavaMoat allowances for `@metamask/utils`
> - Passes `initialDelayDuration` to `ProfileMetricsController` (10 min
prod; 1s tests)
> 
> **Skip flow and messaging**
> 
> - Adds `ProfileMetricsController:skipInitialDelay` to
`AppStateController` allowed actions and invokes it when
`setPna25Acknowledged(true, true)` is called
> - UI onboarding updates (`metametrics`, `welcome`) and Redux action
now pass the extra flag to enable immediate collection skip
> - `ProfileMetricsController` messenger now listens to
`TransactionController:transactionSubmitted`
> 
> **Tests**
> 
> - Updates controller init test for new args and e2e description to
reflect initial delay
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
62bb61c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: MetaMask Bot <[email protected]>
wantedsystem pushed a commit to MetaMask/metamask-extension that referenced this pull request Jan 27, 2026
…er cp-13.14.1 (#39359)

- bump: @metamask/profile-metrics-controller cp-13.14.1 (#39270)

<!--
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.
-->

~~Depends on MetaMask/core#7624

<!--
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?
-->
Bumping `@metamask/profile-metrics-controller` to `^3.0.0`.

```markdown

- `ProfileMetricsController` contructor now accepts an optional `initialDelayDuration` parameter ([#7624](MetaMask/core#7624))
  - The parameter can be used to override the default time-based delay for the first data collection after opt-in
- Add `skipInitialDelay()` method to `ProfileMetricsController` ([#7624](MetaMask/core#7624))
  - The method can be also called through the `ProfileMetricsController:skipInitialDelay` action via messenger

- **BREAKING:** `ProileMetricsControllerMessenger` now requires the `TransactionController:transactionSubmitted` action to be allowed ([#7624](MetaMask/core#7624))
- Set time-based delay for first `ProfileMetricsController` data collection after opt-in ([#7624](MetaMask/core#7624))
- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](MetaMask/core#7511))
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.18.0` ([#7534](MetaMask/core#7534), [#7583](MetaMask/core#7583))
- Bump `@metamask/accounts-controller` from `^35.0.0` to `^35.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
- Bump `@metamask/polling-controller` from `^16.0.0` to `^16.0.2` ([#7604](MetaMask/core#7604), [#7642](MetaMask/core#7642))
```

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/39270?quickstart=1)

<!--
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:

1. Go to this page...
2.
3.

<!-- 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
Extension Coding

Standards](https://github.com/MetaMask/metamask-extension/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-extension/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]
> **Upgrade and integration of profile metrics delay**
>
> - Bumps `@metamask/profile-metrics-controller` to `^3.0.0`;
initializes with `initialDelayDuration` (test: 1s, prod: 10m)
> - Adds `ProfileMetricsController:skipInitialDelay` action to
`AppStateController` messenger and invokes it when
`setPna25Acknowledged(true, true)` is called
> - Updates Profile Metrics messenger to require
`TransactionController:transactionSubmitted` event
> - Adjusts UI (`metametrics` and `welcome`) and `setPna25Acknowledged`
action to support optional delay skipping; updates tests accordingly
> - Updates LavaMoat policies and bumps related packages
(`network-controller`, `polling-controller`, `gas-fee-controller`,
`json-rpc-engine`, `eth-block-tracker`, etc.)
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
f32290f. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: MetaMask Bot <[email protected]>
[dba4a74](dba4a74)

---------

Co-authored-by: Michele Esposito <[email protected]>
Co-authored-by: MetaMask Bot <[email protected]>
Co-authored-by: Mark Stacey <[email protected]>
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.

4 participants