Skip to content

feat: forward duration and traceId to RPC Service Degraded segment events#42569

Merged
cryptodev-2s merged 12 commits into
mainfrom
chore/bump-network-controller-v31
May 13, 2026
Merged

feat: forward duration and traceId to RPC Service Degraded segment events#42569
cryptodev-2s merged 12 commits into
mainfrom
chore/bump-network-controller-v31

Conversation

@cryptodev-2s

@cryptodev-2s cryptodev-2s commented May 11, 2026

Copy link
Copy Markdown
Contributor

Description

Bumps @metamask/network-controller to ^32.0.0, @metamask/controller-utils to ^12.1.0, and @metamask/connectivity-controller to ^0.2.0 (transitive requirement of network-controller@32). Threads the new optional duration and traceId fields from the NetworkController:rpcEndpointDegraded (and …ChainDegraded) event payloads through to the Segment RPC Service Degraded event as duration_ms and trace_id.

Payload semantics

  • duration (number | undefined): the policy execution time in milliseconds when the request succeeded but exceeded the degraded threshold. undefined when retries were exhausted.
  • traceId (string | undefined): the value of the X-Trace-Id response header from the last request attempt. undefined when no response was received or the header was absent.

Both fields are conditionally omitted from the Segment event when the upstream value is undefined (we use === undefined rather than truthy-style checks: a duration value of 0 is technically valid, and for traceId empty string is distinguishable from "not present"). Segment property names use snake_case to match the existing rpc_method_name, retry_reason, etc.

This enables correlating degraded RPC events with backend traces for debugging RPC health, and surfaces actual slow-success latency.

Side effects from the dependency bumps

@metamask/connectivity-controller@0.2.0 made ConnectivityAdapter.getStatus() async (core#7679).

  • ExtensionConnectivityAdapter.getStatus() now returns Promise<ConnectivityStatus>; its existing tests await the call.
  • No runtime behavior change — the extension uses a push model (external detector pushes via setConnectivityStatus), and the controller's new default state ('online') matches the adapter's initial state.

@metamask/controller-utils@12.1.0 added Monad Mainnet (0x8f) to the default Infura networks set (core#8680).

  • network-controller-init.ts extends the existing friendly-name override list with networks[CHAIN_IDS.MONAD].name = 'Monad' (alongside Ethereum/Linea/Base/Arbitrum/BSC/OP/Polygon).
  • E2E fixtures (default-fixture.json, onboarding-fixture.json) include a Monad entry with the overridden name.
  • privacy-snapshot.json and test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json allowlist monad-mainnet.infura.io.
  • metamask-controller.test.js includes 0x8f in networksWithoutFailoverUrls.
  • errors.spec.ts background-state snapshots include MON in CurrencyController.currencyRates.
  • multiple-provider-connections.spec.ts bumps EVM popular-networks count 8 → 9 and adds MONAD_DISPLAY_NAME to the displayed-network assertions; edit-networks-permissions.spec.ts bumps post-Mainnet-disconnect count 7 → 8.
  • NetworkControllerInit inline snapshot updated.

See upstream core PR MetaMask/core#8455 for the duration/traceId change.

Changelog

CHANGELOG entry: null

Related issues

Fixes: WPC-963 and MUSD-784

Manual testing steps

  1. Pull and build the branch.
  2. Configure a network whose RPC endpoint either responds slowly (>5s) or returns retriable errors (e.g. 503).
  3. Trigger any JSON-RPC call (e.g. switch chains, refresh balances) so the degraded code path fires.
  4. With MetaMask metrics enabled, inspect outgoing Segment requests and verify the RPC Service Degraded event:
    • On a slow success, duration_ms is present (a number) and trace_id is present when the endpoint sets X-Trace-Id.
    • On retries-exhausted, duration_ms is omitted; trace_id is present if the failing response carried the header, otherwise omitted.

Screenshots/Recordings

N/A — no UI change.

Before

After

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
Medium risk because it changes telemetry payload construction for degraded RPC events and threads new fields through the network controller init path; it also updates default network initialization (adds Monad mainnet) and adjusts connectivity adapter API to be async, which could affect consumers if mismatched.

Overview
Adds richer telemetry for degraded RPC endpoints. onRpcEndpointDegraded/trackRpcEndpointEvent now accept optional duration and traceId and include them in the Segment RPC Service Degraded event as duration_ms and trace_id only when explicitly present.

Wires the new degraded-event fields through initialization and updates tests. NetworkControllerInit forwards duration/traceId from the NetworkController:rpcEndpointDegraded messenger payload, adds Monad mainnet (0x8f) to the default network naming snapshot, and updates the extension connectivity adapter getStatus to be async (with tests updated to await).

Updates LavaMoat policies. The policy.json files are refreshed to reflect updated package dependency paths (notably around @metamask/controller-utils).

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

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

@cryptodev-2s cryptodev-2s self-assigned this May 11, 2026
@cryptodev-2s cryptodev-2s marked this pull request as ready for review May 11, 2026 10:59
@socket-security

socket-security Bot commented May 11, 2026

Copy link
Copy Markdown

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

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​metamask/​network-controller@​30.0.1 ⏵ 32.0.09610078 +197 +4100

View full report

@cryptodev-2s

Copy link
Copy Markdown
Contributor Author

@metamaskbot update-policies

@metamaskbot

Copy link
Copy Markdown
Collaborator

Policies updated.
👀 Please review the diff for suspicious new powers.

Tip

Follow the policy review process outlined in the LavaMoat Policy Review Process doc before expecting an approval from Policy Reviewers.
🧠 Learn how to read policy diffs: https://lavamoat.github.io/guides/policy-diff/#what-to-look-for-when-reviewing-a-policy-diff

👀 lavamoat/browserify/beta/policy.json changes differ from lavamoat/browserify/main/policy.json changes
👀 lavamoat/browserify/experimental/policy.json changes differ from lavamoat/browserify/main/policy.json changes
👀 lavamoat/browserify/flask/policy.json changes differ from lavamoat/browserify/main/policy.json changes
👀 lavamoat/webpack/mv2/beta/policy.json changes differ from lavamoat/webpack/mv2/main/policy.json changes
👀 lavamoat/webpack/mv2/experimental/policy.json changes differ from lavamoat/webpack/mv2/main/policy.json changes
👀 lavamoat/webpack/mv2/flask/policy.json changes differ from lavamoat/webpack/mv2/main/policy.json changes
👀 lavamoat/webpack/mv3/beta/policy.json changes differ from lavamoat/webpack/mv3/main/policy.json changes
👀 lavamoat/webpack/mv3/experimental/policy.json changes differ from lavamoat/webpack/mv3/main/policy.json changes
👀 lavamoat/webpack/mv3/flask/policy.json changes differ from lavamoat/webpack/mv3/main/policy.json changes

@metamaskbot metamaskbot requested a review from a team as a code owner May 11, 2026 11:15
@metamaskbotv2

metamaskbotv2 Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor
Builds ready [e5080d5]
⚡ Performance Benchmarks (Total: 🟢 15 pass · 🟡 9 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25666794895 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -56%
  • loadNewAccount/total: -56%
  • bridgeUserActions/bridge_load_page: -35%
  • bridgeUserActions/bridge_load_asset_picker: -25%
  • bridgeUserActions/bridge_search_token: -29%
  • bridgeUserActions/total: -29%
  • loadNewAccount/load_new_account: -53%
  • loadNewAccount/total: -53%
  • bridgeUserActions/bridge_load_asset_picker: -36%
  • bridgeUserActions/bridge_search_token: -37%
  • bridgeUserActions/total: -30%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.2s
  • 🟡 confirmTx/FCP: p75 2.0s
  • 🟡 bridgeUserActions/FCP: p75 2.0s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -16%
  • startupStandardHome/load: -11%
  • startupStandardHome/domContentLoaded: -11%
  • startupStandardHome/domInteractive: +12%
  • startupStandardHome/firstPaint: -26%
  • startupStandardHome/backgroundConnect: -35%
  • startupStandardHome/firstReactRender: -19%
  • startupStandardHome/loadScripts: -11%
  • startupStandardHome/numNetworkReqs: -50%
  • startupStandardHome/uiStartup: -14%
  • startupStandardHome/domInteractive: -44%
  • startupStandardHome/initialActions: -40%
  • startupStandardHome/setupStore: -58%
  • startupStandardHome/numNetworkReqs: -45%
  • startupPowerUserHome/uiStartup: -44%
  • startupPowerUserHome/load: -17%
  • startupPowerUserHome/domContentLoaded: -17%
  • startupPowerUserHome/domInteractive: -72%
  • startupPowerUserHome/backgroundConnect: -73%
  • startupPowerUserHome/loadScripts: -15%
  • startupPowerUserHome/setupStore: -87%
  • startupPowerUserHome/numNetworkReqs: -69%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/LCP: p75 2.8s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
assetDetails
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/pwFormToMetricsScreen: +589%
  • onboardingImportWallet/metricsToWalletReadyScreen: -30%
  • onboardingImportWallet/doneButtonToHomeScreen: -73%
  • onboardingImportWallet/total: -47%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/createPwToRecoveryScreen: +1099%
  • onboardingNewWallet/skipBackupToMetricsScreen: -66%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +87%
  • onboardingNewWallet/doneButtonToAssetList: -33%
  • onboardingNewWallet/total: -28%
  • assetDetails/assetClickToPriceChart: -39%
  • assetDetails/total: -39%
  • solanaAssetDetails/assetClickToPriceChart: -72%
  • solanaAssetDetails/total: -72%
  • importSrpHome/openAccountMenuAfterLogin: -76%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -61%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +36%
  • swap/total: +13%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/INP: p75 216ms
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 2.1s
  • 🟡 sendTransactions/INP: p75 208ms
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 swap/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 431.5 KiB (6.69%)
  • ui: 7.64 KiB (0.09%)
  • common: 551.63 KiB (4.09%)

@cryptodev-2s

Copy link
Copy Markdown
Contributor Author

@metamaskbot update-policies

@metamaskbot

Copy link
Copy Markdown
Collaborator

LavaMoat validation was skipped in CI. Policies were not checked for this commit.

@cryptodev-2s

Copy link
Copy Markdown
Contributor Author

@metamaskbot update-policies

@metamaskbot

Copy link
Copy Markdown
Collaborator

LavaMoat validation is still running. Please retry @metamaskbot update-policies after CI validation completes.

@cryptodev-2s

Copy link
Copy Markdown
Contributor Author

@metamaskbot update-policies

@metamaskbot

Copy link
Copy Markdown
Collaborator

Policies updated.
👀 Please review the diff for suspicious new powers.

Tip

Follow the policy review process outlined in the LavaMoat Policy Review Process doc before expecting an approval from Policy Reviewers.
🧠 Learn how to read policy diffs: https://lavamoat.github.io/guides/policy-diff/#what-to-look-for-when-reviewing-a-policy-diff

👀 lavamoat/browserify/beta/policy.json changes differ from lavamoat/browserify/main/policy.json changes
👀 lavamoat/browserify/experimental/policy.json changes differ from lavamoat/browserify/main/policy.json changes
👀 lavamoat/browserify/flask/policy.json changes differ from lavamoat/browserify/main/policy.json changes
👀 lavamoat/webpack/mv2/beta/policy.json changes differ from lavamoat/webpack/mv2/main/policy.json changes
👀 lavamoat/webpack/mv2/experimental/policy.json changes differ from lavamoat/webpack/mv2/main/policy.json changes
👀 lavamoat/webpack/mv2/flask/policy.json changes differ from lavamoat/webpack/mv2/main/policy.json changes
👀 lavamoat/webpack/mv3/beta/policy.json changes differ from lavamoat/webpack/mv3/main/policy.json changes
👀 lavamoat/webpack/mv3/experimental/policy.json changes differ from lavamoat/webpack/mv3/main/policy.json changes
👀 lavamoat/webpack/mv3/flask/policy.json changes differ from lavamoat/webpack/mv3/main/policy.json changes

@metamaskbotv2

metamaskbotv2 Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor
Builds ready [7470695]
⚡ Performance Benchmarks (Total: 🟢 14 pass · 🟡 10 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25673846849 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -71%
  • loadNewAccount/total: -71%
  • bridgeUserActions/bridge_load_page: -34%
  • bridgeUserActions/bridge_load_asset_picker: -36%
  • bridgeUserActions/bridge_search_token: -26%
  • bridgeUserActions/total: -33%
  • loadNewAccount/load_new_account: -55%
  • loadNewAccount/total: -55%
  • bridgeUserActions/bridge_load_page: +17%
  • bridgeUserActions/bridge_load_asset_picker: -53%
  • bridgeUserActions/bridge_search_token: -35%
  • bridgeUserActions/total: -30%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.0s
  • 🟡 confirmTx/FCP: p75 2.0s
  • 🟡 bridgeUserActions/FCP: p75 2.0s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -15%
  • startupStandardHome/firstPaint: -17%
  • startupStandardHome/backgroundConnect: -37%
  • startupStandardHome/firstReactRender: -26%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -50%
  • startupStandardHome/uiStartup: -12%
  • startupStandardHome/domInteractive: -36%
  • startupStandardHome/initialActions: -40%
  • startupStandardHome/setupStore: -58%
  • startupStandardHome/numNetworkReqs: -45%
  • startupPowerUserHome/uiStartup: -48%
  • startupPowerUserHome/load: -20%
  • startupPowerUserHome/domContentLoaded: -20%
  • startupPowerUserHome/domInteractive: -77%
  • startupPowerUserHome/backgroundConnect: -75%
  • startupPowerUserHome/firstReactRender: -14%
  • startupPowerUserHome/loadScripts: -18%
  • startupPowerUserHome/setupStore: -90%
  • startupPowerUserHome/numNetworkReqs: -63%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/LCP: p75 2.6s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
assetDetails
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/pwFormToMetricsScreen: +564%
  • onboardingImportWallet/metricsToWalletReadyScreen: -45%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/total: -48%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/createPwToRecoveryScreen: +1102%
  • onboardingNewWallet/skipBackupToMetricsScreen: -66%
  • onboardingNewWallet/doneButtonToAssetList: -59%
  • onboardingNewWallet/total: -49%
  • assetDetails/assetClickToPriceChart: -49%
  • assetDetails/total: -49%
  • solanaAssetDetails/assetClickToPriceChart: -66%
  • solanaAssetDetails/total: -66%
  • importSrpHome/loginToHomeScreen: -17%
  • importSrpHome/openAccountMenuAfterLogin: -76%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -61%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +36%
  • swap/total: +13%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 onboardingNewWallet/INP: p75 216ms
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/INP: p75 208ms
  • 🟡 sendTransactions/FCP: p75 2.0s
  • 🟡 swap/FCP: p75 2.0s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: +25%
  • dappPageLoad/firstPaint: +17%
  • dappPageLoad/firstContentfulPaint: +17%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 396.13 KiB (6.41%)
  • ui: 776 Bytes (0.01%)
  • common: 549.28 KiB (4.07%)

@metamaskbotv2

metamaskbotv2 Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor
Builds ready [54e5e11] [reused from 6c2207e]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 0 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25685829095 | Baseline logs

Interaction Benchmarks · Samples: 5

⚠️ Missing data: chrome/webpack/interactionUserActions

Benchmarkfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]
User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyOnboardingImport, chrome/webpack/userJourneyOnboardingNew, chrome/webpack/userJourneyAssets, chrome/webpack/userJourneyAccountManagement, chrome/webpack/userJourneyTransactions, firefox/webpack/userJourneyAssets, firefox/webpack/userJourneyTransactions

Benchmarkfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: +28%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 396.12 KiB (6.41%)
  • ui: 673 Bytes (0.01%)
  • common: 549.29 KiB (4.19%)

@cryptodev-2s

Copy link
Copy Markdown
Contributor Author

@metamaskbot update-policies

@metamaskbot

Copy link
Copy Markdown
Collaborator

LavaMoat validation failed but no policy diffs were produced (the validation job may have crashed before generating diffs).

Failed jobs:

@cryptodev-2s

Copy link
Copy Markdown
Contributor Author

@metamaskbot update-policies

@metamaskbotv2

metamaskbotv2 Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor
Builds ready [34f4ae8] [reused from c9e4add]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 14 pass · 🟡 10 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25820285046 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -60%
  • loadNewAccount/total: -60%
  • bridgeUserActions/bridge_load_page: -32%
  • bridgeUserActions/bridge_load_asset_picker: -33%
  • bridgeUserActions/bridge_search_token: -26%
  • bridgeUserActions/total: -33%
  • loadNewAccount/load_new_account: -75%
  • loadNewAccount/total: -75%
  • bridgeUserActions/bridge_load_asset_picker: -38%
  • bridgeUserActions/bridge_search_token: -33%
  • bridgeUserActions/total: -29%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 1.9s
  • 🟡 confirmTx/FCP: p75 2.0s
  • 🟡 bridgeUserActions/FCP: p75 2.0s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -19%
  • startupStandardHome/load: -14%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/firstPaint: -31%
  • startupStandardHome/backgroundConnect: -39%
  • startupStandardHome/firstReactRender: -22%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -50%
  • startupStandardHome/uiStartup: -11%
  • startupStandardHome/domInteractive: -47%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/setupStore: -58%
  • startupStandardHome/numNetworkReqs: -45%
  • startupPowerUserHome/uiStartup: -47%
  • startupPowerUserHome/load: -18%
  • startupPowerUserHome/domContentLoaded: -18%
  • startupPowerUserHome/domInteractive: -74%
  • startupPowerUserHome/backgroundConnect: -75%
  • startupPowerUserHome/loadScripts: -16%
  • startupPowerUserHome/setupStore: -89%
  • startupPowerUserHome/numNetworkReqs: -70%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/LCP: p75 2.7s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
assetDetails
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -84%
  • onboardingImportWallet/pwFormToMetricsScreen: +596%
  • onboardingImportWallet/metricsToWalletReadyScreen: -39%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +14%
  • onboardingImportWallet/total: -47%
  • onboardingNewWallet/srpButtonToPwForm: -75%
  • onboardingNewWallet/createPwToRecoveryScreen: +1136%
  • onboardingNewWallet/skipBackupToMetricsScreen: -64%
  • onboardingNewWallet/doneButtonToAssetList: -24%
  • onboardingNewWallet/total: -20%
  • assetDetails/assetClickToPriceChart: -49%
  • assetDetails/total: -49%
  • solanaAssetDetails/assetClickToPriceChart: -74%
  • solanaAssetDetails/total: -74%
  • importSrpHome/loginToHomeScreen: -18%
  • importSrpHome/openAccountMenuAfterLogin: -75%
  • importSrpHome/homeAfterImportWithNewWallet: -66%
  • importSrpHome/total: -60%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +36%
  • swap/total: +13%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 onboardingNewWallet/INP: p75 208ms
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/INP: p75 224ms
  • 🟡 sendTransactions/FCP: p75 2.0s
  • 🟡 swap/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: +19%
  • dappPageLoad/firstPaint: +17%
  • dappPageLoad/firstContentfulPaint: +17%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 330.98 KiB (5.33%)
  • ui: 3.15 KiB (0.03%)
  • common: 423.95 KiB (3.46%)

cryptodev-2s and others added 9 commits May 13, 2026 21:19
…ents

Bumps @metamask/network-controller to ^32.0.0,
@metamask/controller-utils to ^12.1.0, and @metamask/connectivity-controller
to ^0.2.0. Threads the new optional duration and traceId fields from
NetworkController:rpcEndpointDegraded through to the Segment event as
duration_ms and trace_id.

Adapter side-effect: connectivity-controller@0.2.0 made
ConnectivityAdapter.getStatus() async, so ExtensionConnectivityAdapter
now returns Promise<ConnectivityStatus>. The default-state semantics
are unchanged (adapter and controller both default to 'online').

The NetworkControllerInit snapshot picks up Monad Mainnet as a new
default Infura network from controller-utils@12.1.
@metamask/controller-utils@12.1.0 adds monad-mainnet to the default
Infura networks set. The new chain shows up in the initial state without
a failover URL, so it belongs in networksWithoutFailoverUrls.
@metamask/controller-utils@12.1.0 adds Monad Mainnet to the default
Infura networks. NetworkController hits monad-mainnet.infura.io during
the fixture-validation E2E test; add the host to the snapshot.
@metamask/controller-utils@12.1.0 adds Monad Mainnet to the default
Infura networks set, so it's now part of the EVM popular networks
auto-granted on EIP-1193 connect.

- network-controller-init: override Monad's name to 'Monad' to match
  the existing friendly-name pattern (Ethereum, Linea, Base, ...).
- multiple-provider-connections: bump connected-network count 8 -> 9
  and add MONAD_DISPLAY_NAME to the displayed-network assertion.
- edit-networks-permissions: bump post-Mainnet-disconnect count 7 -> 8.
- network-controller-init snapshot: regenerated with the new name.
The MONAD_DISPLAY_NAME constant is 'Monad', matching the friendly-name
override in network-controller-init.ts. However, that override only
fires when no persistedState is provided (onboarding flow). E2E tests
use FixtureBuilderV2 which provides persistedState, so the override is
skipped and the chain inherits the upstream NetworkNickname
'Monad Mainnet' when NetworkController augments runtime state with the
new default Infura networks. Match what the modal's data-testid
actually renders.
CurrencyRateController now seeds an MON entry at runtime because
@metamask/controller-utils@12.1.0 added Monad Mainnet (native MON) to
the default Infura networks. The errors.spec background-state
deep-equal assertions need the MON rate in the expected state.
…lowlist

NetworkController initializes Monad Mainnet during onboarding now that
controller-utils@12.1.0 added it to the default Infura networks set;
the Maximum Privacy Settings test expects no network calls outside the
allowlist.
@cryptodev-2s cryptodev-2s force-pushed the chore/bump-network-controller-v31 branch from e11c8f2 to 829bc6a Compare May 13, 2026 19:20
@metamaskbotv2

metamaskbotv2 Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

👨‍🔧 @MetaMask/extension-platform (1 files, +18 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +18 -0

🕵️ @MetaMask/extension-privacy-reviewers (2 files, +2 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 privacy/
          • 📄 privacy-max-allowlist-onboarding.json +1 -0
    • 📄 privacy-snapshot.json +1 -0

📜 @MetaMask/policy-reviewers (12 files, +4124 -396)
  • 📁 lavamoat/
    • 📁 browserify/
      • 📁 beta/
        • 📄 policy.json +521 -51
      • 📁 experimental/
        • 📄 policy.json +521 -51
      • 📁 flask/
        • 📄 policy.json +521 -51
      • 📁 main/
        • 📄 policy.json +521 -51
    • 📁 webpack/
      • 📁 mv2/
        • 📁 beta/
          • 📄 policy.json +410 -35
        • 📁 experimental/
          • 📄 policy.json +410 -35
        • 📁 flask/
          • 📄 policy.json +410 -35
        • 📁 main/
          • 📄 policy.json +410 -35
      • 📁 mv3/
        • 📁 beta/
          • 📄 policy.json +100 -13
        • 📁 experimental/
          • 📄 policy.json +100 -13
        • 📁 flask/
          • 📄 policy.json +100 -13
        • 📁 main/
          • 📄 policy.json +100 -13

Tip

Follow the policy review process outlined in the LavaMoat Policy Review Process doc before expecting an approval from Policy Reviewers.


🧪 @MetaMask/qa (2 files, +19 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +18 -0
      • 📁 tests/
        • 📁 privacy/
          • 📄 privacy-max-allowlist-onboarding.json +1 -0

1 similar comment
@metamaskbotv2

metamaskbotv2 Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

👨‍🔧 @MetaMask/extension-platform (1 files, +18 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +18 -0

🕵️ @MetaMask/extension-privacy-reviewers (2 files, +2 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 privacy/
          • 📄 privacy-max-allowlist-onboarding.json +1 -0
    • 📄 privacy-snapshot.json +1 -0

📜 @MetaMask/policy-reviewers (12 files, +4124 -396)
  • 📁 lavamoat/
    • 📁 browserify/
      • 📁 beta/
        • 📄 policy.json +521 -51
      • 📁 experimental/
        • 📄 policy.json +521 -51
      • 📁 flask/
        • 📄 policy.json +521 -51
      • 📁 main/
        • 📄 policy.json +521 -51
    • 📁 webpack/
      • 📁 mv2/
        • 📁 beta/
          • 📄 policy.json +410 -35
        • 📁 experimental/
          • 📄 policy.json +410 -35
        • 📁 flask/
          • 📄 policy.json +410 -35
        • 📁 main/
          • 📄 policy.json +410 -35
      • 📁 mv3/
        • 📁 beta/
          • 📄 policy.json +100 -13
        • 📁 experimental/
          • 📄 policy.json +100 -13
        • 📁 flask/
          • 📄 policy.json +100 -13
        • 📁 main/
          • 📄 policy.json +100 -13

Tip

Follow the policy review process outlined in the LavaMoat Policy Review Process doc before expecting an approval from Policy Reviewers.


🧪 @MetaMask/qa (2 files, +19 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +18 -0
      • 📁 tests/
        • 📁 privacy/
          • 📄 privacy-max-allowlist-onboarding.json +1 -0

network-controller-init.ts renames Monad Mainnet to 'Monad' during the
fresh-onboarding flow (alongside Ethereum/Linea/Base/etc.), so the
wallet-fixture-validation E2E observes name='Monad'. Sync both fixture
files to match.
@metamaskbotv2

metamaskbotv2 Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

👨‍🔧 @MetaMask/extension-platform (1 files, +18 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +18 -0

🕵️ @MetaMask/extension-privacy-reviewers (2 files, +2 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 privacy/
          • 📄 privacy-max-allowlist-onboarding.json +1 -0
    • 📄 privacy-snapshot.json +1 -0

📜 @MetaMask/policy-reviewers (12 files, +4124 -396)
  • 📁 lavamoat/
    • 📁 browserify/
      • 📁 beta/
        • 📄 policy.json +521 -51
      • 📁 experimental/
        • 📄 policy.json +521 -51
      • 📁 flask/
        • 📄 policy.json +521 -51
      • 📁 main/
        • 📄 policy.json +521 -51
    • 📁 webpack/
      • 📁 mv2/
        • 📁 beta/
          • 📄 policy.json +410 -35
        • 📁 experimental/
          • 📄 policy.json +410 -35
        • 📁 flask/
          • 📄 policy.json +410 -35
        • 📁 main/
          • 📄 policy.json +410 -35
      • 📁 mv3/
        • 📁 beta/
          • 📄 policy.json +100 -13
        • 📁 experimental/
          • 📄 policy.json +100 -13
        • 📁 flask/
          • 📄 policy.json +100 -13
        • 📁 main/
          • 📄 policy.json +100 -13

Tip

Follow the policy review process outlined in the LavaMoat Policy Review Process doc before expecting an approval from Policy Reviewers.


🧪 @MetaMask/qa (2 files, +19 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +18 -0
      • 📁 tests/
        • 📁 privacy/
          • 📄 privacy-max-allowlist-onboarding.json +1 -0

@metamaskbotv2

metamaskbotv2 Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor
Builds ready [e4d4742] [reused from 829bc6a]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 12 pass · 🟡 9 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25822104517 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
confirmTx
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -68%
  • loadNewAccount/total: -68%
  • bridgeUserActions/bridge_load_page: -32%
  • bridgeUserActions/bridge_load_asset_picker: -31%
  • bridgeUserActions/bridge_search_token: -28%
  • bridgeUserActions/total: -30%
  • loadNewAccount/load_new_account: -57%
  • loadNewAccount/total: -57%
  • bridgeUserActions/bridge_load_asset_picker: -49%
  • bridgeUserActions/bridge_search_token: -34%
  • bridgeUserActions/total: -31%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.0s
  • 🟡 confirmTx/FCP: p75 2.0s
  • 🟡 bridgeUserActions/FCP: p75 2.0s
  • 🟡 loadNewAccount/INP: p75 232ms
Startup Benchmarks · Samples: 100

⚠️ Missing data: firefox/webpack/startupPowerUserHome

Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -19%
  • startupStandardHome/load: -14%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/backgroundConnect: -38%
  • startupStandardHome/firstReactRender: -26%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/numNetworkReqs: -50%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/setupStore: -51%
  • startupStandardHome/numNetworkReqs: -45%
User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: firefox/webpack/userJourneyAssets

Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
assetDetails
[Sentry log · main/release]
🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -83%
  • onboardingImportWallet/pwFormToMetricsScreen: +601%
  • onboardingImportWallet/metricsToWalletReadyScreen: -19%
  • onboardingImportWallet/doneButtonToHomeScreen: -79%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +25%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -73%
  • onboardingNewWallet/createPwToRecoveryScreen: +1369%
  • onboardingNewWallet/skipBackupToMetricsScreen: -64%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +47%
  • onboardingNewWallet/doneButtonToAssetList: -24%
  • onboardingNewWallet/total: -19%
  • assetDetails/assetClickToPriceChart: -42%
  • assetDetails/total: -42%
  • solanaAssetDetails/assetClickToPriceChart: -69%
  • solanaAssetDetails/total: -69%
  • importSrpHome/openAccountMenuAfterLogin: -73%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -60%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +36%
  • swap/total: +13%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/INP: p75 248ms
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/FCP: p75 2.0s
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 swap/FCP: p75 2.0s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: +27%
  • dappPageLoad/firstPaint: +13%
  • dappPageLoad/firstContentfulPaint: +13%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 330.98 KiB (5.33%)
  • ui: 605 Bytes (0.01%)
  • common: 423.16 KiB (3.46%)

…rtions

Now that the wallet fixtures carry name='Monad' (matching the
network-controller-init.ts override), the modal's data-testid resolves
to 'Monad'. Use the existing display-name constant instead of the
upstream-derived 'Monad Mainnet' literal.
@metamaskbotv2

metamaskbotv2 Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

👨‍🔧 @MetaMask/extension-platform (1 files, +18 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +18 -0

🕵️ @MetaMask/extension-privacy-reviewers (2 files, +2 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 privacy/
          • 📄 privacy-max-allowlist-onboarding.json +1 -0
    • 📄 privacy-snapshot.json +1 -0

📜 @MetaMask/policy-reviewers (12 files, +4124 -396)
  • 📁 lavamoat/
    • 📁 browserify/
      • 📁 beta/
        • 📄 policy.json +521 -51
      • 📁 experimental/
        • 📄 policy.json +521 -51
      • 📁 flask/
        • 📄 policy.json +521 -51
      • 📁 main/
        • 📄 policy.json +521 -51
    • 📁 webpack/
      • 📁 mv2/
        • 📁 beta/
          • 📄 policy.json +410 -35
        • 📁 experimental/
          • 📄 policy.json +410 -35
        • 📁 flask/
          • 📄 policy.json +410 -35
        • 📁 main/
          • 📄 policy.json +410 -35
      • 📁 mv3/
        • 📁 beta/
          • 📄 policy.json +100 -13
        • 📁 experimental/
          • 📄 policy.json +100 -13
        • 📁 flask/
          • 📄 policy.json +100 -13
        • 📁 main/
          • 📄 policy.json +100 -13

Tip

Follow the policy review process outlined in the LavaMoat Policy Review Process doc before expecting an approval from Policy Reviewers.


🧪 @MetaMask/qa (2 files, +19 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +18 -0
      • 📁 tests/
        • 📁 privacy/
          • 📄 privacy-max-allowlist-onboarding.json +1 -0

@metamaskbotv2

metamaskbotv2 Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor
Builds ready [5480377] [reused from 829bc6a]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 12 pass · 🟡 9 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25822668782 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
confirmTx
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -68%
  • loadNewAccount/total: -68%
  • bridgeUserActions/bridge_load_page: -32%
  • bridgeUserActions/bridge_load_asset_picker: -31%
  • bridgeUserActions/bridge_search_token: -28%
  • bridgeUserActions/total: -30%
  • loadNewAccount/load_new_account: -57%
  • loadNewAccount/total: -57%
  • bridgeUserActions/bridge_load_asset_picker: -49%
  • bridgeUserActions/bridge_search_token: -34%
  • bridgeUserActions/total: -31%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.0s
  • 🟡 confirmTx/FCP: p75 2.0s
  • 🟡 bridgeUserActions/FCP: p75 2.0s
  • 🟡 loadNewAccount/INP: p75 232ms
Startup Benchmarks · Samples: 100

⚠️ Missing data: firefox/webpack/startupPowerUserHome

Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -19%
  • startupStandardHome/load: -14%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/backgroundConnect: -38%
  • startupStandardHome/firstReactRender: -26%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/numNetworkReqs: -50%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/setupStore: -51%
  • startupStandardHome/numNetworkReqs: -45%
User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: firefox/webpack/userJourneyAssets

Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
assetDetails
[Sentry log · main/release]
🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -83%
  • onboardingImportWallet/pwFormToMetricsScreen: +601%
  • onboardingImportWallet/metricsToWalletReadyScreen: -19%
  • onboardingImportWallet/doneButtonToHomeScreen: -79%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +25%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -73%
  • onboardingNewWallet/createPwToRecoveryScreen: +1369%
  • onboardingNewWallet/skipBackupToMetricsScreen: -64%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +47%
  • onboardingNewWallet/doneButtonToAssetList: -24%
  • onboardingNewWallet/total: -19%
  • assetDetails/assetClickToPriceChart: -42%
  • assetDetails/total: -42%
  • solanaAssetDetails/assetClickToPriceChart: -69%
  • solanaAssetDetails/total: -69%
  • importSrpHome/openAccountMenuAfterLogin: -73%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -60%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +36%
  • swap/total: +13%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/INP: p75 248ms
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/FCP: p75 2.0s
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 swap/FCP: p75 2.0s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: +27%
  • dappPageLoad/firstPaint: +13%
  • dappPageLoad/firstContentfulPaint: +13%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 330.98 KiB (5.33%)
  • ui: 605 Bytes (0.01%)
  • common: 423.16 KiB (3.46%)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The addition of Monad is expected, as it was requested by the Money team: https://consensyssoftware.atlassian.net/browse/MUSD-784

mikesposito
mikesposito previously approved these changes May 13, 2026

@mikesposito mikesposito left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM!

@mcmire mcmire 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.

Policy changes look OK, but I had comments about the rest of the PR below.

Comment thread app/scripts/lib/network-controller/messenger-action-handlers.test.ts Outdated
Comment thread package.json
"@metamask/bridge-status-controller": "71.1.1",
"@metamask/messenger@npm:^0.3.0": "^1.2.0",
"@metamask/network-controller": "30.0.1",
"@metamask/network-controller": "32.0.0",

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.

Hmm, I didn't realize we had a resolution for network-controller. Can we get rid of this?

Suggested change
"@metamask/network-controller": "32.0.0",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I am not sure why this was added I have a following PR that is focused on bumping packages and removing this and other resolutions.

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.

Okay, fair enough.

Omission is already covered by the existing 'calls trackEvent with the
correct parameters' test on line ~210, which uses
toHaveBeenCalledWith({...}) with a strict properties object that does
not include duration_ms or trace_id.
@metamaskbotv2

metamaskbotv2 Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

👨‍🔧 @MetaMask/extension-platform (1 files, +18 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +18 -0

🕵️ @MetaMask/extension-privacy-reviewers (2 files, +2 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 privacy/
          • 📄 privacy-max-allowlist-onboarding.json +1 -0
    • 📄 privacy-snapshot.json +1 -0

📜 @MetaMask/policy-reviewers (12 files, +4124 -396)
  • 📁 lavamoat/
    • 📁 browserify/
      • 📁 beta/
        • 📄 policy.json +521 -51
      • 📁 experimental/
        • 📄 policy.json +521 -51
      • 📁 flask/
        • 📄 policy.json +521 -51
      • 📁 main/
        • 📄 policy.json +521 -51
    • 📁 webpack/
      • 📁 mv2/
        • 📁 beta/
          • 📄 policy.json +410 -35
        • 📁 experimental/
          • 📄 policy.json +410 -35
        • 📁 flask/
          • 📄 policy.json +410 -35
        • 📁 main/
          • 📄 policy.json +410 -35
      • 📁 mv3/
        • 📁 beta/
          • 📄 policy.json +100 -13
        • 📁 experimental/
          • 📄 policy.json +100 -13
        • 📁 flask/
          • 📄 policy.json +100 -13
        • 📁 main/
          • 📄 policy.json +100 -13

Tip

Follow the policy review process outlined in the LavaMoat Policy Review Process doc before expecting an approval from Policy Reviewers.


🧪 @MetaMask/qa (2 files, +19 -0)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +18 -0
      • 📁 tests/
        • 📁 privacy/
          • 📄 privacy-max-allowlist-onboarding.json +1 -0

@metamaskbotv2

metamaskbotv2 Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor
Builds ready [290dee7] [reused from 829bc6a]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 12 pass · 🟡 9 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 25824917746 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
confirmTx
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -68%
  • loadNewAccount/total: -68%
  • bridgeUserActions/bridge_load_page: -32%
  • bridgeUserActions/bridge_load_asset_picker: -31%
  • bridgeUserActions/bridge_search_token: -28%
  • bridgeUserActions/total: -30%
  • loadNewAccount/load_new_account: -57%
  • loadNewAccount/total: -57%
  • bridgeUserActions/bridge_load_asset_picker: -49%
  • bridgeUserActions/bridge_search_token: -34%
  • bridgeUserActions/total: -31%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.0s
  • 🟡 confirmTx/FCP: p75 2.0s
  • 🟡 bridgeUserActions/FCP: p75 2.0s
  • 🟡 loadNewAccount/INP: p75 232ms
Startup Benchmarks · Samples: 100

⚠️ Missing data: firefox/webpack/startupPowerUserHome

Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -19%
  • startupStandardHome/load: -14%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/backgroundConnect: -38%
  • startupStandardHome/firstReactRender: -26%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/numNetworkReqs: -50%
  • startupStandardHome/initialActions: +20%
  • startupStandardHome/setupStore: -51%
  • startupStandardHome/numNetworkReqs: -45%
User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: firefox/webpack/userJourneyAssets

Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
assetDetails
[Sentry log · main/release]
🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -83%
  • onboardingImportWallet/pwFormToMetricsScreen: +601%
  • onboardingImportWallet/metricsToWalletReadyScreen: -19%
  • onboardingImportWallet/doneButtonToHomeScreen: -79%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +25%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -73%
  • onboardingNewWallet/createPwToRecoveryScreen: +1369%
  • onboardingNewWallet/skipBackupToMetricsScreen: -64%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +47%
  • onboardingNewWallet/doneButtonToAssetList: -24%
  • onboardingNewWallet/total: -19%
  • assetDetails/assetClickToPriceChart: -42%
  • assetDetails/total: -42%
  • solanaAssetDetails/assetClickToPriceChart: -69%
  • solanaAssetDetails/total: -69%
  • importSrpHome/openAccountMenuAfterLogin: -73%
  • importSrpHome/homeAfterImportWithNewWallet: -68%
  • importSrpHome/total: -60%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +36%
  • swap/total: +13%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/INP: p75 248ms
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/FCP: p75 2.0s
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 swap/FCP: p75 2.0s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: +27%
  • dappPageLoad/firstPaint: +13%
  • dappPageLoad/firstContentfulPaint: +13%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 330.98 KiB (5.33%)
  • ui: 605 Bytes (0.01%)
  • common: 423.16 KiB (3.46%)

@sonarqubecloud

Copy link
Copy Markdown

@mcmire mcmire 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.

LGTM.

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

Labels

release-13.32.0 Issue or pull request that will be included in release 13.32.0 size-M team-core-platform Core Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants