Skip to content

fix(perps): update perps controller 3.1.1 cp-13.28.0#41558

Merged
aganglada merged 15 commits into
mainfrom
fix/tat-2699-fix-perps-decimal-logic
Apr 17, 2026
Merged

fix(perps): update perps controller 3.1.1 cp-13.28.0#41558
aganglada merged 15 commits into
mainfrom
fix/tat-2699-fix-perps-decimal-logic

Conversation

@abretonc7s

@abretonc7s abretonc7s commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

Description

This PR is the base branch for the perps controller update and decimal-logic work in TAT-2699.

It upgrades the extension to @metamask/perps-controller@3.1.1, keeps the decimal/calculation logic changes, and includes the required extension integration support for that controller update (StorageService wiring, Jest support, and LavaMoat updates). A few perps UI files still appear here only where the retained hunks are logic-owned rather than presentation-only.

The UI-facing display/formatting parity changes were split out into stacked PR #41853.

Changelog

CHANGELOG entry: null

Related issues

Fixes: TAT-2699

Related:

Manual testing steps

  1. Open a perps market such as BTC or ETH in extension.
  2. Verify order-entry calculations use the updated decimal logic for size, margin, liquidation, and fees.
  3. Verify the perps controller initializes correctly and the relevant perps screens still load.
  4. Run the extension perps validation recipe: temp/agentic/recipes/teams/perps/recipes/pr-41558-decimal-formatting.json.

Screenshots/Recordings

Before

N/A for this split PR. UI-facing screenshot evidence lives in stacked PR #41853.

After

N/A for this split PR. UI-facing screenshot evidence lives in stacked PR #41853.

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 upgrades a core dependency and changes perps infrastructure wiring (formatting, Sentry breadcrumbs, and persistent cache via StorageService), which can affect order-entry calculations and cached market data behavior.

Overview
Upgrades @metamask/perps-controller to 3.1.1 and updates perps infrastructure to use the package-provided formatPerpsFiat/formatPercentage and expose PRICE_RANGES_UNIVERSAL, aligning formatting behavior with the controller.

Adds a diskCache implementation to createPerpsInfrastructure backed by StorageService (with an in-memory read-through cache) and wires the required StorageService:getItem/setItem/removeItem actions through the perps messenger/init path.

Extends tracing to forward addBreadcrumb calls to Sentry, adds perpsCalculateLiquidationPrice to the background API wiring/tests, and updates LavaMoat policies to allow Intl.NumberFormat for the perps controller.

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

@github-actions

github-actions Bot commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

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

@metamaskbot metamaskbot added the team-perps Perps team label Apr 8, 2026
@metamaskbotv2

metamaskbotv2 Bot commented Apr 8, 2026

Copy link
Copy Markdown
Contributor
Builds ready [4c47afc]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): f34f804 | Date: 9/10/58222 | Pipeline: 24134926535 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -16%
  • loadNewAccount/total: -16%
  • bridgeUserActions/bridge_load_asset_picker: -30%
  • bridgeUserActions/bridge_search_token: -25%
  • bridgeUserActions/total: -23%

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

  • 🟡 loadNewAccount/FCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.5s
  • 🟡 bridgeUserActions/FCP: p75 2.5s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/load: -10%
  • startupStandardHome/domContentLoaded: -12%
  • startupStandardHome/domInteractive: +10%
  • startupStandardHome/backgroundConnect: +14%
  • startupStandardHome/firstReactRender: -13%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/numNetworkReqs: -11%
  • startupPowerUserHome/backgroundConnect: +128%
  • startupPowerUserHome/setupStore: +11%
  • startupPowerUserHome/numNetworkReqs: -49%
  • startupStandardHome/uiStartup: -13%
  • startupStandardHome/load: -11%
  • startupStandardHome/domContentLoaded: -11%
  • startupStandardHome/firstPaint: +16%
  • startupStandardHome/backgroundConnect: -32%
  • startupStandardHome/firstReactRender: -28%
  • startupStandardHome/loadScripts: -11%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/domInteractive: -19%
  • startupStandardHome/domInteractive: -50%
  • startupStandardHome/firstReactRender: +11%
  • startupStandardHome/initialActions: +25%
  • startupStandardHome/setupStore: +29%
  • startupPowerUserHome/backgroundConnect: -35%
  • startupStandardHome/initialActions: +11%
  • startupStandardHome/setupStore: -20%
  • startupPowerUserHome/backgroundConnect: -27%

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

  • 🔴 startupPowerUserHome/INP: p75 736ms
  • 🔴 startupPowerUserHome/INP: p75 728ms
  • 🟡 startupPowerUserHome/LCP: p75 3.5s
  • 🟡 startupPowerUserHome/INP: p75 320ms
  • 🟡 startupPowerUserHome/LCP: p75 3.5s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/metricsToWalletReadyScreen: -34%
  • onboardingImportWallet/doneButtonToHomeScreen: -75%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +33%
  • onboardingImportWallet/total: -39%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/skipBackupToMetricsScreen: -67%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -26%
  • onboardingNewWallet/doneButtonToAssetList: -29%
  • onboardingNewWallet/total: -29%
  • assetDetails/assetClickToPriceChart: -50%
  • assetDetails/total: -50%
  • solanaAssetDetails/assetClickToPriceChart: -72%
  • solanaAssetDetails/total: -72%
  • importSrpHome/openAccountMenuAfterLogin: -75%
  • importSrpHome/homeAfterImportWithNewWallet: -72%
  • importSrpHome/total: -60%
  • sendTransactions/selectTokenToSendFormLoaded: -21%
  • sendTransactions/reviewTransactionToConfirmationPage: +36%
  • sendTransactions/total: +35%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +32%
  • swap/total: +12%

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

  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.5s
  • 🟡 importSrpHome/FCP: p75 2.4s
  • 🟡 sendTransactions/INP: p75 264ms
  • 🟡 sendTransactions/FCP: p75 2.5s
  • 🟡 swap/FCP: p75 2.5s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs
  • background: 58 Bytes (0%)
  • ui: 5 Bytes (0%)
  • common: 20 Bytes (0%)

@metamaskbotv2

metamaskbotv2 Bot commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

🕵️ @MetaMask/extension-privacy-reviewers (1 files, +1 -1)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 settings/
          • 📄 state-logs.json +1 -1

👨‍🔧 @MetaMask/perps (2 files, +219 -27)
  • 📁 app/
    • 📁 scripts/
      • 📁 controllers/
        • 📁 perps/
          • 📄 infrastructure.test.ts +160 -5
          • 📄 infrastructure.ts +59 -22

📜 @MetaMask/policy-reviewers (8 files, +8 -0)
  • 📁 lavamoat/
    • 📁 browserify/
      • 📁 beta/
        • 📄 policy.json +1 -0
      • 📁 experimental/
        • 📄 policy.json +1 -0
      • 📁 flask/
        • 📄 policy.json +1 -0
      • 📁 main/
        • 📄 policy.json +1 -0
    • 📁 webpack/
      • 📁 mv2/
        • 📁 beta/
          • 📄 policy.json +1 -0
        • 📁 experimental/
          • 📄 policy.json +1 -0
        • 📁 flask/
          • 📄 policy.json +1 -0
        • 📁 main/
          • 📄 policy.json +1 -0

Tip

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


🧪 @MetaMask/qa (1 files, +1 -1)
  • 📁 test/
    • 📁 e2e/
      • 📁 tests/
        • 📁 settings/
          • 📄 state-logs.json +1 -1

@github-actions github-actions Bot added the size-S label Apr 8, 2026
@abretonc7s

abretonc7s commented Apr 8, 2026

Copy link
Copy Markdown
Contributor Author

Automated fix-bug run — TAT-2699

Metric Value
Run ec37f81d
Duration ?m
Model claude/sonnet
Nudges 0
Difficulty high (7/10)
Grade rationale This is a cross-component decimal formatting issue affecting multiple screens and fields throughout the perps module. It requires consistent implementation across numerous UI elements and likely involves complex number formatting logic that was already difficult to get right on mobile.
Cost estimate $17.74
Worker report

Fix Report: TAT-2699 — Decimal logic issues

Summary

Perps UI screens displayed prices with hardcoded 2-decimal formatting instead of the adaptive formatting used on mobile. Entry prices, liquidation prices, TP/SL prices, funding payments, and token quantities were either missing thousands separators or showing the wrong number of decimal places.

Root Cause

perps-market-detail-page.tsx:470,957,1195,1210,1277,1299,1321 used formatNumber({minimumFractionDigits:2, maximumFractionDigits:2}) and raw string interpolation (`$${position.entryPrice}`) instead of the adaptive formatCurrencyWithMinThreshold(value,'USD') function. perps-order-entry-page.tsx:451 had the same header-price issue. edit-margin-modal-content.tsx:143-174 used formatNumber({min:2,max:2}) for liquidation price comparisons. reverse-position-modal.tsx:81 used .toFixed(2) for the estimated token size instead of formatTokenQuantity(sizeNum, symbol).

Data flow: position price fields (entryPrice, liquidationPrice, takeProfitPrice, stopLossPrice, cumulativeFunding.sinceOpen) arrive as raw API strings like "2053.9" or "4.7253227822". The old code either passed them through raw (showing all decimals) or forced exactly 2 decimal places. The fix calls formatCurrencyWithMinThreshold(parseFloat(field.replace(/,/gu,'')), 'USD') which uses Intl.NumberFormat({style:'currency'}) — 2 decimal places for normal values, < $0.01 for micro values, and proper thousands separators.

Changes

File Change
ui/pages/perps/perps-market-detail-page.tsx Header price (chart label): formatNumber({min:2,max:2})formatCurrencyWithMinThreshold. OHLCV bar value: same. Position entry/liquidation/TP/SL/funding prices: raw string → formatCurrencyWithMinThreshold(parseFloat(field.replace(/,/gu,'')), 'USD').
ui/pages/perps/perps-order-entry-page.tsx Header price: same header fix as market detail.
ui/components/app/perps/edit-margin/edit-margin-modal-content.tsx Liquidation price comparison (anchor + estimated): formatNumber({min:2,max:2})formatCurrencyWithMinThreshold.
ui/components/app/perps/reverse-position/reverse-position-modal.tsx Est. size label: .toFixed(2)formatTokenQuantity(sizeNum, position.symbol). Added useFormatters() import.
ui/components/app/perps/reverse-position/reverse-position-modal.test.tsx Updated assertions to match adaptive token formatting: '2.50 ETH''2.5 ETH', '0.50 BTC''0.500 BTC'.

Test Plan

Automated:

  • yarn jest reverse-position-modal.test.tsx edit-margin-modal-content.test.tsx perps-market-detail-page.test.tsx perps-order-entry-page.test.tsx --no-coverage — all pass, 0 violations
  • yarn lint:eslint on changed files — 0 errors
  • yarn lint:tsc — exit 0
  • yarn verify-locales --quiet — passed
  • yarn circular-deps:check — passed
  • Recipe artifacts/recipe.json — 9/9 nodes PASS

Manual Gherkin:

Given I am on the ETH perps market detail page with an open position
When I view the position detail card
Then entry price displays with thousands separator (e.g. $2,053.90 not $2053.90)
And liquidation price displays with 2 decimal places (not raw API precision)
And funding payments below $0.01 show as "< $0.01"

Given I open the reverse position modal for a 2.5 ETH long
When I view the "Est. size" row
Then it shows "2.5 ETH" (no trailing zero)

Given I open the reverse position modal for a 0.5 BTC short
When I view the "Est. size" row
Then it shows "0.500 BTC" (3 significant digits for sub-1 values)

Evidence

Artifact Description
before.mp4 Recipe run against pre-fix build showing old formatting
after.mp4 Recipe run after fix (9/9 pass), new build with fix
before-market-detail-price.png Position detail with old raw string prices
before-market-stats.png Stats section before fix
after-market-detail-price.png Position detail (captured during recipe run)
after-market-stats.png Stats section (captured during recipe run)

Ticket

TAT-2699

@abretonc7s abretonc7s marked this pull request as ready for review April 8, 2026 13:36
@abretonc7s abretonc7s requested a review from a team as a code owner April 8, 2026 13:36
Comment thread ui/pages/perps/perps-market-detail-page.tsx Outdated
@metamaskbotv2

metamaskbotv2 Bot commented Apr 8, 2026

Copy link
Copy Markdown
Contributor
Builds ready [ef7ff31]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): f34f804 | Date: 9/10/58222 | Pipeline: 24137619825 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -16%
  • loadNewAccount/total: -16%
  • bridgeUserActions/bridge_load_asset_picker: +27%

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

  • 🟡 loadNewAccount/FCP: p75 2.6s
  • 🟡 confirmTx/FCP: p75 2.6s
  • 🟡 bridgeUserActions/FCP: p75 2.6s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -11%
  • startupStandardHome/load: -14%
  • startupStandardHome/domContentLoaded: -16%
  • startupStandardHome/firstReactRender: -13%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/loadScripts: -18%
  • startupStandardHome/numNetworkReqs: -21%
  • startupPowerUserHome/backgroundConnect: +94%
  • startupPowerUserHome/setupStore: +22%
  • startupPowerUserHome/numNetworkReqs: -40%
  • startupStandardHome/uiStartup: -11%
  • startupStandardHome/load: -10%
  • startupStandardHome/firstPaint: +26%
  • startupStandardHome/backgroundConnect: -26%
  • startupStandardHome/firstReactRender: -28%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/domInteractive: -17%
  • startupPowerUserHome/numNetworkReqs: +35%
  • startupStandardHome/initialActions: +25%
  • startupStandardHome/setupStore: +21%
  • startupPowerUserHome/uiStartup: -12%
  • startupPowerUserHome/domInteractive: -11%
  • startupPowerUserHome/backgroundConnect: -42%
  • startupPowerUserHome/setupStore: +14%
  • startupStandardHome/initialActions: +11%
  • startupStandardHome/setupStore: -42%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/uiStartup: -12%
  • startupPowerUserHome/backgroundConnect: -38%
  • startupPowerUserHome/firstReactRender: -11%

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

  • 🔴 startupPowerUserHome/INP: p75 864ms
  • 🔴 startupPowerUserHome/INP: p75 720ms
  • 🟡 startupPowerUserHome/LCP: p75 3.3s
  • 🟡 startupPowerUserHome/LCP: p75 3.5s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -84%
  • onboardingImportWallet/metricsToWalletReadyScreen: -33%
  • onboardingImportWallet/doneButtonToHomeScreen: -75%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +33%
  • onboardingImportWallet/total: -40%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/skipBackupToMetricsScreen: -67%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -30%
  • onboardingNewWallet/doneButtonToAssetList: -28%
  • onboardingNewWallet/total: -28%
  • assetDetails/assetClickToPriceChart: -44%
  • assetDetails/total: -44%
  • solanaAssetDetails/assetClickToPriceChart: -74%
  • solanaAssetDetails/total: -74%
  • importSrpHome/loginToHomeScreen: +14%
  • importSrpHome/openAccountMenuAfterLogin: -71%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -60%
  • sendTransactions/openSendPageFromHome: -20%
  • sendTransactions/selectTokenToSendFormLoaded: -22%
  • sendTransactions/reviewTransactionToConfirmationPage: +35%
  • sendTransactions/total: +32%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +11%

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

  • 🟡 assetDetails/INP: p75 224ms
  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.5s
  • 🟡 importSrpHome/INP: p75 216ms
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/INP: p75 248ms
  • 🟡 sendTransactions/FCP: p75 2.5s
  • 🟡 swap/FCP: p75 2.5s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs
  • background: 58 Bytes (0%)
  • ui: 97 Bytes (0%)
  • common: 20 Bytes (0%)

@abretonc7s abretonc7s added the DO-NOT-MERGE Pull requests that should not be merged label Apr 15, 2026

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

@abretonc7s would you mind fixing the sonar issues?
They are highlighted in the files

@abretonc7s abretonc7s requested review from a team as code owners April 15, 2026 14:25
@abretonc7s abretonc7s marked this pull request as draft April 15, 2026 15:42
@abretonc7s abretonc7s changed the title fix: Decimal logic issues fix(perps): decimal logic issues Apr 15, 2026
@github-actions github-actions Bot added size-XL and removed size-S labels Apr 15, 2026
@socket-security

socket-security Bot commented Apr 15, 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/​perps-controller@​3.0.0 ⏵ 3.1.169 -110083 +196 +1100
Updated@​metamask/​profile-metrics-controller@​3.0.4 ⏵ 3.1.3991007597 +2100

View full report

@socket-security

socket-security Bot commented Apr 15, 2026

Copy link
Copy Markdown

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

@abretonc7s abretonc7s marked this pull request as ready for review April 15, 2026 17:05
@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 main/policy.json policy changes
👀 lavamoat/browserify/experimental/policy.json changes differ from main/policy.json policy changes
👀 lavamoat/browserify/flask/policy.json changes differ from main/policy.json policy changes
👀 lavamoat/webpack/mv2/beta/policy.json changes differ from mv2/main/policy.json policy changes
👀 lavamoat/webpack/mv2/experimental/policy.json changes differ from mv2/main/policy.json policy changes
👀 lavamoat/webpack/mv2/flask/policy.json changes differ from mv2/main/policy.json policy changes
✅ lavamoat/webpack/mv3/beta/policy.json changes match mv3/main/policy.json policy changes
✅ lavamoat/webpack/mv3/experimental/policy.json changes match mv3/main/policy.json policy changes
✅ lavamoat/webpack/mv3/flask/policy.json changes match mv3/main/policy.json policy changes

Comment thread app/scripts/controllers/perps/infrastructure.ts
@metamaskbotv2

metamaskbotv2 Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor
Builds ready [f23eaa5]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24539747822 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -21%
  • loadNewAccount/total: -21%
  • bridgeUserActions/bridge_load_page: -21%
  • bridgeUserActions/bridge_load_asset_picker: -47%
  • bridgeUserActions/bridge_search_token: -23%
  • bridgeUserActions/total: -28%

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

  • 🟡 loadNewAccount/FCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.5s
  • 🟡 bridgeUserActions/FCP: p75 2.5s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -22%
  • startupStandardHome/load: -11%
  • startupStandardHome/domContentLoaded: -11%
  • startupStandardHome/firstReactRender: -10%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -13%
  • startupStandardHome/setupStore: +14%
  • startupStandardHome/numNetworkReqs: -34%
  • startupPowerUserHome/uiStartup: -31%
  • startupPowerUserHome/backgroundConnect: +104%
  • startupPowerUserHome/numNetworkReqs: +13%
  • startupStandardHome/uiStartup: -18%
  • startupStandardHome/load: -14%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/backgroundConnect: -34%
  • startupStandardHome/firstReactRender: -19%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/numNetworkReqs: -44%
  • startupPowerUserHome/uiStartup: -26%
  • startupPowerUserHome/domInteractive: -17%
  • startupStandardHome/uiStartup: -11%
  • startupStandardHome/domInteractive: -58%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/numNetworkReqs: -34%
  • startupPowerUserHome/uiStartup: -29%
  • startupPowerUserHome/load: +16%
  • startupPowerUserHome/domContentLoaded: +16%
  • startupPowerUserHome/domInteractive: +47%
  • startupPowerUserHome/backgroundConnect: -21%
  • startupPowerUserHome/firstReactRender: +10%
  • startupPowerUserHome/loadScripts: +17%
  • startupPowerUserHome/setupStore: +25%
  • startupPowerUserHome/numNetworkReqs: -10%
  • startupStandardHome/uiStartup: -16%
  • startupStandardHome/domInteractive: -52%
  • startupStandardHome/initialActions: +14%
  • startupStandardHome/setupStore: -50%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/uiStartup: -24%
  • startupPowerUserHome/backgroundConnect: -15%
  • startupPowerUserHome/setupStore: -18%

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

  • 🔴 startupPowerUserHome/INP: p75 736ms
  • 🔴 startupPowerUserHome/INP: p75 784ms
  • 🟡 startupPowerUserHome/LCP: p75 3.9s
  • 🟡 startupPowerUserHome/LCP: p75 3.9s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/metricsToWalletReadyScreen: -37%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +26%
  • onboardingImportWallet/total: -42%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/createPwToRecoveryScreen: +17%
  • onboardingNewWallet/skipBackupToMetricsScreen: -65%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -13%
  • onboardingNewWallet/doneButtonToAssetList: -25%
  • onboardingNewWallet/total: -26%
  • assetDetails/assetClickToPriceChart: -46%
  • assetDetails/total: -46%
  • solanaAssetDetails/assetClickToPriceChart: -73%
  • solanaAssetDetails/total: -73%
  • importSrpHome/loginToHomeScreen: +16%
  • importSrpHome/openAccountMenuAfterLogin: -78%
  • importSrpHome/homeAfterImportWithNewWallet: -76%
  • importSrpHome/total: -65%
  • sendTransactions/openSendPageFromHome: -12%
  • sendTransactions/selectTokenToSendFormLoaded: -24%
  • sendTransactions/reviewTransactionToConfirmationPage: +34%
  • sendTransactions/total: +31%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +32%
  • swap/total: +12%

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

  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.5s
  • 🟡 importSrpHome/FCP: p75 2.1s
  • 🟡 sendTransactions/INP: p75 216ms
  • 🟡 sendTransactions/FCP: p75 2.5s
  • 🟡 swap/FCP: p75 2.6s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 708 Bytes (0.01%)
  • ui: 1.73 KiB (0.02%)
  • common: 14.24 KiB (0.11%)

Address the CI/performance review feedback by removing the broad Jest transformIgnorePatterns exceptions and isolating the affected infrastructure test behind a local @metamask/perps-controller mock.

Constraint: Keep the branch diff minimal and avoid paying a repo-wide CI performance cost for a perps-specific test need
Rejected: Keep the node_modules transform allowlists in unit/integration Jest config | slows extension CI and broadens the maintenance surface for little value
Confidence: high
Scope-risk: narrow
Directive: Prefer local test mocks over global Jest transform exceptions when only a small number of tests need package isolation
Tested: targeted Jest for perps infrastructure/init; ESLint on touched files; yarn lint:tsc; yarn circular-deps:check
Not-tested: Full CI rerun after push
…ogic' into fix/tat-2699-controller-decimal-base
Remove the integration-specific node_modules transform allowlist now that the affected path is covered by local package mocking and the representative integration path no longer needs the broader transform exception.

Constraint: Keep the change scoped to the integration Jest config only
Rejected: Keep the transitive ESM allowlist in integration Jest | adds CI cost and maintenance overhead for little value
Confidence: high
Scope-risk: narrow
Directive: If a future integration failure needs perps-controller isolation, prefer targeted mocking over broad transformIgnorePatterns exceptions
Tested: local integration webpack build; representative integration Jest path; targeted non-UI Jest; yarn lint:tsc; yarn circular-deps:check
Not-tested: Full branch CI rerun after push
…ogic' into fix/tat-2699-controller-decimal-base
@metamaskbotv2

metamaskbotv2 Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor
Builds ready [0472ef0]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24542179207 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -25%
  • loadNewAccount/total: -25%
  • bridgeUserActions/bridge_load_page: -18%
  • bridgeUserActions/bridge_load_asset_picker: -60%
  • bridgeUserActions/bridge_search_token: -21%
  • bridgeUserActions/total: -32%

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

  • 🟡 loadNewAccount/FCP: p75 2.2s
  • 🟡 confirmTx/FCP: p75 2.3s
  • 🟡 bridgeUserActions/FCP: p75 2.1s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -22%
  • startupStandardHome/load: -10%
  • startupStandardHome/firstPaint: -27%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -13%
  • startupStandardHome/setupStore: +14%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/uiStartup: -20%
  • startupPowerUserHome/domContentLoaded: +11%
  • startupPowerUserHome/firstPaint: +16%
  • startupPowerUserHome/backgroundConnect: +88%
  • startupPowerUserHome/initialActions: +100%
  • startupPowerUserHome/setupStore: +21%
  • startupPowerUserHome/numNetworkReqs: -51%
  • startupStandardHome/uiStartup: -21%
  • startupStandardHome/load: -16%
  • startupStandardHome/domContentLoaded: -16%
  • startupStandardHome/firstPaint: -18%
  • startupStandardHome/backgroundConnect: -36%
  • startupStandardHome/firstReactRender: -23%
  • startupStandardHome/loadScripts: -16%
  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: -44%
  • startupPowerUserHome/uiStartup: -25%
  • startupPowerUserHome/numNetworkReqs: +46%
  • startupStandardHome/domInteractive: -20%
  • startupStandardHome/backgroundConnect: +11%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/numNetworkReqs: -26%
  • startupPowerUserHome/uiStartup: -39%
  • startupPowerUserHome/domInteractive: -11%
  • startupPowerUserHome/backgroundConnect: -35%
  • startupPowerUserHome/firstReactRender: -10%
  • startupPowerUserHome/setupStore: +21%
  • startupStandardHome/uiStartup: -19%
  • startupStandardHome/load: -12%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/domInteractive: -69%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/loadScripts: -12%
  • startupStandardHome/setupStore: -60%
  • startupStandardHome/numNetworkReqs: -34%
  • startupPowerUserHome/uiStartup: -25%
  • startupPowerUserHome/domInteractive: -17%
  • startupPowerUserHome/backgroundConnect: -23%
  • startupPowerUserHome/setupStore: +43%

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

  • 🔴 startupPowerUserHome/INP: p75 784ms
  • 🔴 startupPowerUserHome/INP: p75 736ms
  • 🟡 startupPowerUserHome/LCP: p75 3.3s
  • 🟡 startupPowerUserHome/LCP: p75 3.9s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/metricsToWalletReadyScreen: -40%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +26%
  • onboardingImportWallet/total: -42%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/skipBackupToMetricsScreen: -68%
  • onboardingNewWallet/doneButtonToAssetList: -41%
  • onboardingNewWallet/total: -39%
  • assetDetails/assetClickToPriceChart: -18%
  • assetDetails/total: -18%
  • solanaAssetDetails/assetClickToPriceChart: -59%
  • solanaAssetDetails/total: -59%
  • importSrpHome/openAccountMenuAfterLogin: -68%
  • importSrpHome/homeAfterImportWithNewWallet: -69%
  • importSrpHome/total: -61%
  • sendTransactions/selectTokenToSendFormLoaded: -25%
  • sendTransactions/reviewTransactionToConfirmationPage: +37%
  • sendTransactions/total: +32%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +32%
  • swap/total: +11%

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

  • 🟡 assetDetails/INP: p75 208ms
  • 🟡 assetDetails/FCP: p75 2.6s
  • 🟡 solanaAssetDetails/FCP: p75 2.6s
  • 🟡 importSrpHome/INP: p75 216ms
  • 🟡 importSrpHome/FCP: p75 2.6s
  • 🟡 sendTransactions/INP: p75 216ms
  • 🟡 sendTransactions/FCP: p75 2.6s
  • 🟡 swap/FCP: p75 2.7s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 708 Bytes (0.01%)
  • ui: 1.73 KiB (0.02%)
  • common: 14.24 KiB (0.11%)

Update the perps disk cache adapter so in-memory state changes only after StorageService writes/removes succeed, and add regression tests for rejected persistence calls.

Constraint: Keep the fix scoped to the cache consistency bug reported on the controller branch
Rejected: Keep optimistic memory updates without rollback | can return stale in-memory state after failed persistence and mislead the current session
Confidence: high
Scope-risk: narrow
Directive: When the disk cache has both memory and persistent layers, treat the persistent operation as the source of truth for mutation ordering
Tested: Jest app/scripts/controllers/perps/infrastructure.test.ts --no-coverage; ESLint on touched files
Not-tested: Full branch CI rerun after push
@metamaskbotv2

metamaskbotv2 Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor
Builds ready [7cc8149]
⚡ Performance Benchmarks (Total: 🟢 6 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24544363939 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -23%
  • loadNewAccount/total: -23%
  • bridgeUserActions/bridge_load_asset_picker: -45%
  • bridgeUserActions/total: -18%

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

  • 🟡 loadNewAccount/FCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.5s
  • 🟡 bridgeUserActions/FCP: p75 2.5s
Startup Benchmarks · Samples: 100

⚠️ Missing data: chrome/browserify/startupStandardHome

Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupPowerUserHome/uiStartup: -21%
  • startupPowerUserHome/domInteractive: -12%
  • startupPowerUserHome/backgroundConnect: +87%
  • startupPowerUserHome/numNetworkReqs: +19%
  • startupStandardHome/uiStartup: -19%
  • startupStandardHome/load: -14%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/backgroundConnect: -32%
  • startupStandardHome/firstReactRender: -23%
  • startupStandardHome/loadScripts: -15%
  • startupStandardHome/numNetworkReqs: -44%
  • startupPowerUserHome/uiStartup: -28%
  • startupPowerUserHome/domInteractive: -19%
  • startupPowerUserHome/firstPaint: -12%
  • startupPowerUserHome/numNetworkReqs: +46%
  • startupStandardHome/uiStartup: -13%
  • startupStandardHome/domInteractive: -57%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/numNetworkReqs: -34%
  • startupPowerUserHome/uiStartup: -34%
  • startupPowerUserHome/backgroundConnect: -31%
  • startupPowerUserHome/firstReactRender: -10%
  • startupStandardHome/uiStartup: -20%
  • startupStandardHome/load: -12%
  • startupStandardHome/domContentLoaded: -12%
  • startupStandardHome/domInteractive: -68%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/loadScripts: -12%
  • startupStandardHome/setupStore: -60%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/uiStartup: -33%
  • startupPowerUserHome/backgroundConnect: -30%

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

  • 🔴 startupPowerUserHome/INP: p75 720ms
  • 🔴 startupPowerUserHome/INP: p75 712ms
  • 🟡 startupPowerUserHome/INP: p75 264ms
  • 🟡 startupPowerUserHome/LCP: p75 3.6s
  • 🟡 startupPowerUserHome/LCP: p75 3.5s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/metricsToWalletReadyScreen: -39%
  • onboardingImportWallet/doneButtonToHomeScreen: -79%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +27%
  • onboardingImportWallet/total: -43%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/skipBackupToMetricsScreen: -68%
  • onboardingNewWallet/doneButtonToAssetList: -29%
  • onboardingNewWallet/total: -30%
  • assetDetails/assetClickToPriceChart: -29%
  • assetDetails/total: -29%
  • solanaAssetDetails/assetClickToPriceChart: -71%
  • solanaAssetDetails/total: -71%
  • importSrpHome/openAccountMenuAfterLogin: -77%
  • importSrpHome/homeAfterImportWithNewWallet: -69%
  • importSrpHome/total: -60%
  • sendTransactions/openSendPageFromHome: -24%
  • sendTransactions/selectTokenToSendFormLoaded: -36%
  • sendTransactions/reviewTransactionToConfirmationPage: +36%
  • sendTransactions/total: +33%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +11%

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

  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.5s
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/FCP: p75 2.6s
  • 🟡 swap/FCP: p75 2.6s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 708 Bytes (0.01%)
  • ui: 1.73 KiB (0.02%)
  • common: 14.24 KiB (0.11%)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

There are 2 total unresolved issues (including 1 from previous review).

Fix All in Cursor

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

Reviewed by Cursor Bugbot for commit 8a651da. Configure here.

Comment thread app/scripts/controllers/perps/infrastructure.ts
The smart-transactions init file only differed from main because of a widened unknown-cast workaround that is not part of the perps controller change. Reverting it keeps the PR focused on the perps surface and removes a review distraction from inherited code.

Constraint: Do not widen this PR beyond perps-owned changes
Rejected: Keep the cast and dismiss the review thread | leaves unrelated churn in the live PR diff
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep non-perps typing cleanups out of this PR unless they are required by the perps change itself
Tested: eslint on smart-transactions-controller-init.ts; verify-locales --quiet; circular-deps:check
Not-tested: yarn lint (blocked by unrelated .agent/fixture-state-test.json workspace file)
@metamaskbotv2

metamaskbotv2 Bot commented Apr 17, 2026

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

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24547416781 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • bridgeUserActions/bridge_load_asset_picker: -53%
  • bridgeUserActions/total: -14%

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

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

⚠️ Missing data: firefox/webpack/startupStandardHome

Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -22%
  • startupStandardHome/load: -10%
  • startupStandardHome/domContentLoaded: -11%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -13%
  • startupStandardHome/setupStore: +21%
  • startupStandardHome/numNetworkReqs: -37%
  • startupPowerUserHome/uiStartup: -25%
  • startupPowerUserHome/domInteractive: -10%
  • startupPowerUserHome/backgroundConnect: +98%
  • startupPowerUserHome/setupStore: +26%
  • startupPowerUserHome/numNetworkReqs: +21%
  • startupStandardHome/uiStartup: -17%
  • startupStandardHome/load: -13%
  • startupStandardHome/domContentLoaded: -12%
  • startupStandardHome/backgroundConnect: -32%
  • startupStandardHome/firstReactRender: -19%
  • startupStandardHome/loadScripts: -12%
  • startupStandardHome/numNetworkReqs: -44%
  • startupPowerUserHome/uiStartup: -26%
  • startupPowerUserHome/domInteractive: -16%
  • startupPowerUserHome/numNetworkReqs: +47%
  • startupStandardHome/uiStartup: -11%
  • startupStandardHome/domInteractive: -58%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/numNetworkReqs: -32%
  • startupPowerUserHome/uiStartup: -33%
  • startupPowerUserHome/backgroundConnect: -32%
  • startupPowerUserHome/uiStartup: -27%
  • startupPowerUserHome/backgroundConnect: -12%
  • startupPowerUserHome/setupStore: +19%

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

  • 🔴 startupPowerUserHome/INP: p75 800ms
  • 🔴 startupPowerUserHome/INP: p75 736ms
  • 🟡 startupPowerUserHome/LCP: p75 3.6s
  • 🟡 startupPowerUserHome/LCP: p75 3.7s
User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/browserify/userJourneyTransactions

Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -84%
  • onboardingImportWallet/metricsToWalletReadyScreen: -38%
  • onboardingImportWallet/doneButtonToHomeScreen: -78%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +27%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/skipBackupToMetricsScreen: -67%
  • onboardingNewWallet/doneButtonToAssetList: -25%
  • onboardingNewWallet/total: -26%
  • assetDetails/assetClickToPriceChart: -73%
  • assetDetails/total: -73%
  • solanaAssetDetails/assetClickToPriceChart: -76%
  • solanaAssetDetails/total: -76%
  • importSrpHome/openAccountMenuAfterLogin: -75%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -61%

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

  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/FCP: p75 2.6s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 708 Bytes (0.01%)
  • ui: 1.4 KiB (0.02%)
  • common: 14.24 KiB (0.11%)

@metamaskbotv2

metamaskbotv2 Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor
Builds ready [b56f431]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24557192876 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -20%
  • loadNewAccount/total: -20%
  • bridgeUserActions/bridge_load_page: -10%
  • bridgeUserActions/bridge_load_asset_picker: -51%
  • bridgeUserActions/total: -19%

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

  • 🟡 loadNewAccount/FCP: p75 2.6s
  • 🟡 confirmTx/FCP: p75 2.6s
  • 🟡 bridgeUserActions/FCP: p75 2.6s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -21%
  • startupStandardHome/domInteractive: +10%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -12%
  • startupStandardHome/setupStore: +14%
  • startupStandardHome/numNetworkReqs: -26%
  • startupPowerUserHome/uiStartup: -28%
  • startupPowerUserHome/backgroundConnect: +53%
  • startupPowerUserHome/setupStore: +15%
  • startupPowerUserHome/numNetworkReqs: +21%
  • startupStandardHome/uiStartup: -34%
  • startupStandardHome/load: -30%
  • startupStandardHome/domContentLoaded: -30%
  • startupStandardHome/domInteractive: -17%
  • startupStandardHome/backgroundConnect: -45%
  • startupStandardHome/firstReactRender: -41%
  • startupStandardHome/loadScripts: -30%
  • startupStandardHome/setupStore: -27%
  • startupStandardHome/numNetworkReqs: -44%
  • startupPowerUserHome/uiStartup: -23%
  • startupPowerUserHome/numNetworkReqs: +44%
  • startupStandardHome/domInteractive: -24%
  • startupStandardHome/backgroundConnect: +13%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/numNetworkReqs: -34%
  • startupPowerUserHome/uiStartup: -36%
  • startupPowerUserHome/backgroundConnect: -31%
  • startupPowerUserHome/firstReactRender: -10%
  • startupStandardHome/uiStartup: -11%
  • startupStandardHome/domInteractive: -39%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/setupStore: -57%
  • startupStandardHome/numNetworkReqs: -24%
  • startupPowerUserHome/uiStartup: -28%
  • startupPowerUserHome/domInteractive: -10%
  • startupPowerUserHome/backgroundConnect: -34%

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

  • 🔴 startupPowerUserHome/INP: p75 712ms
  • 🔴 startupPowerUserHome/INP: p75 712ms
  • 🟡 startupPowerUserHome/LCP: p75 3.4s
  • 🟡 startupPowerUserHome/INP: p75 240ms
  • 🟡 startupPowerUserHome/LCP: p75 3.6s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -84%
  • onboardingImportWallet/metricsToWalletReadyScreen: -24%
  • onboardingImportWallet/doneButtonToHomeScreen: -76%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +26%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/skipBackupToMetricsScreen: -69%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -25%
  • onboardingNewWallet/doneButtonToAssetList: -42%
  • onboardingNewWallet/total: -40%
  • assetDetails/assetClickToPriceChart: -44%
  • assetDetails/total: -44%
  • solanaAssetDetails/assetClickToPriceChart: -71%
  • solanaAssetDetails/total: -71%
  • importSrpHome/openAccountMenuAfterLogin: -79%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -61%
  • sendTransactions/openSendPageFromHome: -18%
  • sendTransactions/selectTokenToSendFormLoaded: -31%
  • sendTransactions/reviewTransactionToConfirmationPage: +33%
  • sendTransactions/total: +30%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +11%

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

  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.6s
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/FCP: p75 2.6s
  • 🟡 swap/FCP: p75 2.5s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 708 Bytes (0.01%)
  • ui: 1.39 KiB (0.02%)
  • common: 14.24 KiB (0.11%)

GeolocationController initializes lastFetchedAt as null and never
eager-fetches, causing the flat state merge to produce null where
snapshots expected a number.
@metamaskbotv2

metamaskbotv2 Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor
Builds ready [1d6c71a] [reused from b56f431]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24560707477 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -20%
  • loadNewAccount/total: -20%
  • bridgeUserActions/bridge_load_page: -10%
  • bridgeUserActions/bridge_load_asset_picker: -51%
  • bridgeUserActions/total: -19%

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

  • 🟡 loadNewAccount/FCP: p75 2.6s
  • 🟡 confirmTx/FCP: p75 2.6s
  • 🟡 bridgeUserActions/FCP: p75 2.6s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -21%
  • startupStandardHome/domInteractive: +10%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -12%
  • startupStandardHome/setupStore: +14%
  • startupStandardHome/numNetworkReqs: -26%
  • startupPowerUserHome/uiStartup: -28%
  • startupPowerUserHome/backgroundConnect: +53%
  • startupPowerUserHome/setupStore: +15%
  • startupPowerUserHome/numNetworkReqs: +21%
  • startupStandardHome/uiStartup: -34%
  • startupStandardHome/load: -30%
  • startupStandardHome/domContentLoaded: -30%
  • startupStandardHome/domInteractive: -17%
  • startupStandardHome/backgroundConnect: -45%
  • startupStandardHome/firstReactRender: -41%
  • startupStandardHome/loadScripts: -30%
  • startupStandardHome/setupStore: -27%
  • startupStandardHome/numNetworkReqs: -44%
  • startupPowerUserHome/uiStartup: -23%
  • startupPowerUserHome/numNetworkReqs: +44%
  • startupStandardHome/domInteractive: -24%
  • startupStandardHome/backgroundConnect: +13%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/numNetworkReqs: -34%
  • startupPowerUserHome/uiStartup: -36%
  • startupPowerUserHome/backgroundConnect: -31%
  • startupPowerUserHome/firstReactRender: -10%
  • startupStandardHome/uiStartup: -11%
  • startupStandardHome/domInteractive: -39%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/setupStore: -57%
  • startupStandardHome/numNetworkReqs: -24%
  • startupPowerUserHome/uiStartup: -28%
  • startupPowerUserHome/domInteractive: -10%
  • startupPowerUserHome/backgroundConnect: -34%

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

  • 🔴 startupPowerUserHome/INP: p75 712ms
  • 🔴 startupPowerUserHome/INP: p75 712ms
  • 🟡 startupPowerUserHome/LCP: p75 3.4s
  • 🟡 startupPowerUserHome/INP: p75 240ms
  • 🟡 startupPowerUserHome/LCP: p75 3.6s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -84%
  • onboardingImportWallet/metricsToWalletReadyScreen: -24%
  • onboardingImportWallet/doneButtonToHomeScreen: -76%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +26%
  • onboardingImportWallet/total: -44%
  • onboardingNewWallet/srpButtonToPwForm: -77%
  • onboardingNewWallet/skipBackupToMetricsScreen: -69%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -25%
  • onboardingNewWallet/doneButtonToAssetList: -42%
  • onboardingNewWallet/total: -40%
  • assetDetails/assetClickToPriceChart: -44%
  • assetDetails/total: -44%
  • solanaAssetDetails/assetClickToPriceChart: -71%
  • solanaAssetDetails/total: -71%
  • importSrpHome/openAccountMenuAfterLogin: -79%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -61%
  • sendTransactions/openSendPageFromHome: -18%
  • sendTransactions/selectTokenToSendFormLoaded: -31%
  • sendTransactions/reviewTransactionToConfirmationPage: +33%
  • sendTransactions/total: +30%
  • swap/openSwapPageFromHome: -97%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +11%

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

  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.6s
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/FCP: p75 2.6s
  • 🟡 swap/FCP: p75 2.5s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 708 Bytes (0.01%)
  • ui: 1.39 KiB (0.02%)
  • common: 14.24 KiB (0.11%)

@sonarqubecloud

Copy link
Copy Markdown

@metamaskbotv2

metamaskbotv2 Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor
Builds ready [428562d]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 8 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24563595665 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • bridgeUserActions/bridge_load_asset_picker: -38%
  • bridgeUserActions/total: -16%

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

  • 🟡 loadNewAccount/FCP: p75 2.8s
  • 🟡 confirmTx/FCP: p75 2.8s
  • 🟡 bridgeUserActions/INP: p75 208ms
  • 🟡 bridgeUserActions/FCP: p75 2.8s
  • 🟡 bridgeUserActions/LCP: p75 2.7s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -37%
  • startupStandardHome/load: -29%
  • startupStandardHome/domContentLoaded: -31%
  • startupStandardHome/domInteractive: -20%
  • startupStandardHome/firstPaint: -17%
  • startupStandardHome/backgroundConnect: -14%
  • startupStandardHome/firstReactRender: -36%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -33%
  • startupStandardHome/setupStore: -17%
  • startupStandardHome/numNetworkReqs: -37%
  • startupStandardHome/uiStartup: -23%
  • startupStandardHome/load: -18%
  • startupStandardHome/domContentLoaded: -18%
  • startupStandardHome/backgroundConnect: -37%
  • startupStandardHome/firstReactRender: -23%
  • startupStandardHome/loadScripts: -18%
  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: -44%
  • startupStandardHome/uiStartup: -14%
  • startupStandardHome/domInteractive: -57%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/numNetworkReqs: -29%
  • startupStandardHome/uiStartup: -15%
  • startupStandardHome/domInteractive: -38%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/setupStore: -54%
  • startupStandardHome/numNetworkReqs: -29%
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/metricsToWalletReadyScreen: -32%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +17%
  • onboardingImportWallet/total: -47%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/skipBackupToMetricsScreen: -65%
  • onboardingNewWallet/doneButtonToAssetList: -18%
  • onboardingNewWallet/total: -20%
  • assetDetails/assetClickToPriceChart: -70%
  • assetDetails/total: -70%
  • solanaAssetDetails/assetClickToPriceChart: -73%
  • solanaAssetDetails/total: -73%
  • importSrpHome/loginToHomeScreen: -11%
  • importSrpHome/openAccountMenuAfterLogin: -72%
  • importSrpHome/homeAfterImportWithNewWallet: -67%
  • importSrpHome/total: -60%
  • sendTransactions/openSendPageFromHome: -23%
  • sendTransactions/reviewTransactionToConfirmationPage: +37%
  • sendTransactions/total: +36%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +11%

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

  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.6s
  • 🟡 importSrpHome/FCP: p75 2.7s
  • 🟡 sendTransactions/FCP: p75 2.6s
  • 🟡 swap/FCP: p75 2.5s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 711 Bytes (0.01%)
  • ui: 1.41 KiB (0.02%)
  • common: 14.26 KiB (0.11%)

@abretonc7s abretonc7s left a comment

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.

ok

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

Hallucination isn't the only failure mode to guard against when using autonomous agents. Tangentiality (not addressing the core ask or thesis) and Circumstantiality (excessive, unnecessary digressions) can be destructive as well.

Looking at the PR's end state, this could have been a quick, routine approval with maybe only the StorageService adoption being a requested change. But a lot of reviewer and author time was taken up dealing with churn caused by the inclusion of:

  • a) Tangential changes that are unrelated to the PR's scope or thesis.
  • b) Circumstantial changes that are wasteful, not useful, and even actively destructive.
  • c) Erratic changes that disrupt or degrade existing patterns and processes for little to no added value.

We should equip agents with universal principles:

  • Scope lock skill
  • Specifications (tests, types, shared configs) as guardrails skill
  • Diff audit skill
  • .agents/knowledge files with repo-specific onventions, patterns, processes, architecture (the platform team will work on this).

PR changes LGTM

Comment on lines 1920 to +1923
"@metamask/perps-controller": {
"globals": {
"AbortController": true,
"Intl.NumberFormat": true,

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.

Benign policy change for internal package

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.

Yes those are domain knowledge expertise that I don't have on extension yet, but now I do. Will integrate those skills.

@MajorLift MajorLift Apr 17, 2026

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.

The 3 skills should be applied org-wide not just for extension. The principles are global not domain-specific, although we might need to add wider examples and pitfall scenarios. There are probably more "ai-collboration" skills that we need to encode for all autonomous agents. The domain knowledge files specific to extension is something platform team will continue to work on.

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

@metamaskbotv2

metamaskbotv2 Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor
Builds ready [428562d]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 8 warn · 🔴 0 fail)

Baseline (latest main): 71bd826 | Date: 10/14/58243 | Pipeline: 24563595665 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • bridgeUserActions/bridge_load_asset_picker: -38%
  • bridgeUserActions/total: -16%

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

  • 🟡 loadNewAccount/FCP: p75 2.8s
  • 🟡 confirmTx/FCP: p75 2.8s
  • 🟡 bridgeUserActions/INP: p75 208ms
  • 🟡 bridgeUserActions/FCP: p75 2.8s
  • 🟡 bridgeUserActions/LCP: p75 2.7s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -37%
  • startupStandardHome/load: -29%
  • startupStandardHome/domContentLoaded: -31%
  • startupStandardHome/domInteractive: -20%
  • startupStandardHome/firstPaint: -17%
  • startupStandardHome/backgroundConnect: -14%
  • startupStandardHome/firstReactRender: -36%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -33%
  • startupStandardHome/setupStore: -17%
  • startupStandardHome/numNetworkReqs: -37%
  • startupStandardHome/uiStartup: -23%
  • startupStandardHome/load: -18%
  • startupStandardHome/domContentLoaded: -18%
  • startupStandardHome/backgroundConnect: -37%
  • startupStandardHome/firstReactRender: -23%
  • startupStandardHome/loadScripts: -18%
  • startupStandardHome/setupStore: -13%
  • startupStandardHome/numNetworkReqs: -44%
  • startupStandardHome/uiStartup: -14%
  • startupStandardHome/domInteractive: -57%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/numNetworkReqs: -29%
  • startupStandardHome/uiStartup: -15%
  • startupStandardHome/domInteractive: -38%
  • startupStandardHome/initialActions: -43%
  • startupStandardHome/setupStore: -54%
  • startupStandardHome/numNetworkReqs: -29%
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/metricsToWalletReadyScreen: -32%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +17%
  • onboardingImportWallet/total: -47%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/skipBackupToMetricsScreen: -65%
  • onboardingNewWallet/doneButtonToAssetList: -18%
  • onboardingNewWallet/total: -20%
  • assetDetails/assetClickToPriceChart: -70%
  • assetDetails/total: -70%
  • solanaAssetDetails/assetClickToPriceChart: -73%
  • solanaAssetDetails/total: -73%
  • importSrpHome/loginToHomeScreen: -11%
  • importSrpHome/openAccountMenuAfterLogin: -72%
  • importSrpHome/homeAfterImportWithNewWallet: -67%
  • importSrpHome/total: -60%
  • sendTransactions/openSendPageFromHome: -23%
  • sendTransactions/reviewTransactionToConfirmationPage: +37%
  • sendTransactions/total: +36%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +11%

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

  • 🟡 assetDetails/FCP: p75 2.5s
  • 🟡 solanaAssetDetails/FCP: p75 2.6s
  • 🟡 importSrpHome/FCP: p75 2.7s
  • 🟡 sendTransactions/FCP: p75 2.6s
  • 🟡 swap/FCP: p75 2.5s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 711 Bytes (0.01%)
  • ui: 1.41 KiB (0.02%)
  • common: 14.26 KiB (0.11%)

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

Labels

agentic release-13.29.0 Issue or pull request that will be included in release 13.29.0 size-M team-perps Perps team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants