Skip to content

bump: Upgrade @sentry/browser from 8.33.1 to 10.38.0 - #42867

Merged
MajorLift merged 70 commits into
mainfrom
copilot/upgrade-sentry-sdk-v8-to-v10
Jul 17, 2026
Merged

bump: Upgrade @sentry/browser from 8.33.1 to 10.38.0#42867
MajorLift merged 70 commits into
mainfrom
copilot/upgrade-sentry-sdk-v8-to-v10

Conversation

Copilot AI commented May 21, 2026

Copy link
Copy Markdown
Contributor

Changelog

CHANGELOG entry: Upgrades Sentry SDK from v8 to v10, improving telemetry and enabling full incorporation of backend instrumentation (API, RPC, DB, Cache, CDN domains) into Sentry distributed tracing.

Description

  • lazyLoadIntegration patch — re-applied for v10. The v8 patch is removed and replaced by .yarn/patches/@sentry-browser-npm-10.38.0-d1e984c1c7.patch, which stubs lazyLoadIntegration (CDN-based remote-code loading, not permitted in extension stores) across v10's four build variants (cjs/dev, cjs/prod, esm/dev, esm/prod).
  • setupSentry.js — adapted to v10 (logger now imported from @sentry/core rather than @sentry/utils, propagateTraceparent, transport wiring); tests updated (setupSentry.test.js, sentry-make-transport.test.ts).
  • @sentry/utils removal — v10 folded @sentry/utils into @sentry/core. Ported addFetchInstrumentationHandler import to @sentry/core and adapted propagation context's renamed spanIdpropagationSpanId (sentry-trace-propagation.ts + test).
  • traceparent parent-linkage fix — replacing the manual header injection with propagateTraceparent also fixes distributed-trace parent linkage, where backend spans do not nest under their client request span and instead are attached as siblings.
    • Broken before: the manual header sent trace-flags 01 on deferred decisions with a span id no real span carries (69% of backend entry spans orphaned), or the enclosing custom root's id instead of the request span's (31% attached as siblings of their own http.client span).
    • Fixed by v10: deferred and unsampled decisions propagate 00, and a recorded request span propagates its own id. Pinned against the unmocked SDK in sentry-traceparent-semantics.test.ts (eafb4e5).
    • Guarded: setupSentry.test.js enforces that shouldCreateSpanForRequest never filters a BACKEND_TRACE_PROPAGATION_TARGETS URL, since a filtered span propagated as a traceparent parent re-orphans the backend subtree (7ca3ead; constraint note at setupSentry.js#L326-L334).
    • Scope: this PR delivers the client half of stitching. End-to-end nesting also requires the backend collectors to record on -01 parents (today ~5% of client-kept traces get backend halves; tracked SRE-side), and rooting background fetches in their own traces is MetaMask-planning#7354.

Validation

The upgrade must preserve equivalent coverage — the same errors, transactions, tags, scrubbing, and sampling, with no unexplained volume change — not just a green suite. Verified at three layers (plan in #43819, tooling in #43820):

1 — Snapshot equivalence (always-on). test/e2e/tests/metrics/{errors,traces}.spec.ts capture the real envelopes sent to a mocked DSN and deepStrictEqual the attached state against committed fixtures (state-snapshots/errors-*), pinning which state fields are sent / masked / removed and which transactions fire (UI Startup, /home.html). Green on v10; the only required fixture change was a benign timing race (pendingShieldCohort / srpSessionData), not a behavioral regression.

2 — Envelope capture-and-diff. The fixed flow — unlock → developer-options error → home pageload — runs against a v8 (CI run) and a v10 (CI run) build. A high-priority mock intercepts every Sentry POST (both DSNs), so each side's full per-flow set is captured (~40 envelopes: sessions, ~30 transactions, several error events) regardless of the per-build mock setup, then normalized (volatile ids/timestamps stripped) and compared by type, signature, and tag coverage — on the same browser engine, to exclude engine-specific noise (e.g. Firefox omits CLS). Result — equivalent:

  • No telemetry type or tag is dropped by v10. Every transaction/event type v10 emits — UI Startup, /home.html, the multichain account-creation suite (Provider Create Accounts, Create {Solana,Bitcoin} Account Batch, Wallet Alignment, Multichain Account Syncing, …), AggregatedBalanceSelector, the developer-options TestError event, and session — is present in v8 with identical tag coverage, including otelTraceId (distributed-trace correlation) and the wallet.* / web-vitals tags on the UI traces.
  • Residual diffs are background-telemetry noise, not regressions. Per-type counts vary run-to-run within a single SDK; the only type asymmetry (a BackendWebSocketService Connection trace present in one of three captured runs) and a service tag on incidental background RPC errors are timing artifacts, not v10 behavior.
  • No per-flow volume change — comparable envelope counts on both SDKs (~37–44 per flow) and zero performance-DSN envelopes. v10's larger tracing volume documented in test/e2e/mock-e2e.js (~800 performance-DSN envelopes in a heavy multichain run) is scenario-specific — the quota axis tracked in [Epic] Sentry Quota Breach — Extension Telemetry (May 2026 – ongoing) #43410, not exercised by this flow.

3 — Production staged-rollout validation (post-ship). Compare the metamask Sentry project's last-v8 vs first-v10 release: error volume & grouping, transaction/span volume & perf-unit consumption (quota — #43410), tag/trace completeness, and sampling ≈ 0.75%.

v10-specific deltas asserted explicitly: (a) privacy-critical state masking unchanged (no unmasked field leaks); (b) span serialization — the snap startTrace RPC returns the SerializedTraceContext shape (_traceId/_spanId), so the result round-trips into a later startTrace call's parentContext and nests; (c) propagateTraceparent emits exactly one traceparent (consensysTracePropagationIntegration appends only Consensys baggage, no header injection of its own); (d) beforeSend/rewriteReport scrubbing intact; (e) traceparent contents — deferred and negatively sampled decisions propagate trace-flags 00, and a recorded request span propagates its own span id, not the enclosing root's (sentry-traceparent-semantics.test.ts, real SDK, no mocks — complements #44053's gating/scoping assertions).

Related issues

Manual testing steps

  1. Build the extension for both pipelines (yarn build:test and yarn build:test:webpack) and load it — it should boot to the home screen with no .controller-loaded timeout and no inaccessible under scuttling mode / addEventListener is not a function errors in the console.
  2. Trigger an error (e.g. via developer options) and confirm it still reports to Sentry with the expected, scrubbed payload.
  3. Confirm browser.sentry-cdn.com is absent from the built dist/ output (the lazyLoadIntegration stub must hold — store compliance).

Screenshots/Recordings

N/A — no user-facing 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
Large SDK bump touches error reporting, sampling, distributed tracing, and extension scuttling/LavaMoat policy; behavioral fixes to traceparent propagation affect backend correlation, though equivalence is heavily tested.

Overview
Upgrades @sentry/browser to 10.38.0 (and aligns @sentry/core / @sentry/node), drops @sentry/utils, and replaces the v8 Yarn patch with a v10 patch that stubs lazyLoadIntegration so the extension cannot load integrations from browser.sentry-cdn.com.

Distributed tracing now relies on the SDK’s propagateTraceparent: true instead of manual W3C traceparent injection in consensysTracePropagationIntegration, which only appends Consensys baggage. setupSentry.js documents that backend trace-propagation URLs must not be filtered by shouldCreateSpanForRequest, so client request spans stay linked to backend traces. Snap startTrace returns a JSON-safe { _traceId, _spanId } instead of spreading a Sentry span.

Init / bundling: removes the globalThis.nw shared-environment workaround; adds skipBrowserExtensionCheck in unit tests; extends LavaMoat globals (WebAssembly, Request, requestIdleCallback) and build env vars to satisfy v10 serverless checks; refreshes LavaMoat Sentry policies for @sentry/core.

Tests & E2E: imports move to @sentry/core; new sentry-traceparent-semantics.test.ts and sentry-session-lifecycle.test.ts; transport/session tests updated for v10 async sessions; metrics snapshots relax timing-sensitive fields; E2E mocks add Bitcoin genesis verification, mock performance Sentry envelopes, and longer waits where v10 background work competes with UI.

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

Agent-Logs-Url: https://github.com/MetaMask/metamask-extension/sessions/66deb05c-d6c0-4fae-953c-8842d8e47c25

Co-authored-by: MajorLift <34228073+MajorLift@users.noreply.github.com>
@socket-security

socket-security Bot commented May 21, 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@​sentry/​types@​8.33.1 ⏵ 10.38.010010077 -296100
Updated@​sentry/​browser@​8.33.1 ⏵ 10.38.079 +210091 +196100
Updated@​sentry/​core@​8.33.1 ⏵ 10.38.084 -1610083 +196100
Updated@​sentry/​node@​10.30.0 ⏵ 10.38.097 +110095 +196100

View full report

@socket-security

socket-security Bot commented May 21, 2026

Copy link
Copy Markdown

Warning

MetaMask internal reviewing guidelines:

  • Do not ignore-all
  • Each alert has instructions on how to review if you don't know what it means. If lost, ask your Security Liaison or the supply-chain group
  • Copy-paste ignore lines for specific packages or a group of one kind with a note on what research you did to deem it safe.
    @SocketSecurity ignore npm/PACKAGE@VERSION
Action Severity Alert  (click "▶" to expand/collapse)
Warn Low
Potential code anomaly (AI signal): npm @sentry-internal/replay-canvas is 61.0% likely to have a medium risk anomaly

Notes: The fragment appears to be an instrumentation/telemetry component (likely part of a canvas/WebGL replay library) designed to intercept rendering calls, serialize complex graphics data, and forward mutations to a worker or callback for replay. While the data collection capabilities are extensive and involve potentially sensitive canvas/WebGL state, there is no clear evidence of active data exfiltration, backdoors, or credential theft within this module alone. The primary risk stems from data handling and transmission paths (mutationCb/worker), as well as aggressive runtime patching that could mask failures. Recommend strict data minimization, clear privacy policy, and secure, authenticated sinks for any mutation data in downstream paths.

Confidence: 0.61

Severity: 0.55

From: ?npm/@sentry/browser@10.38.0npm/@sentry-internal/replay-canvas@10.38.0

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@sentry-internal/replay-canvas@10.38.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Potential code anomaly (AI signal): npm import-in-the-middle is 62.0% likely to have a medium risk anomaly

Notes: This code is an import-hook framework: it registers a global hook into Node’s/module loader pipeline, executes a caller-provided hookFn with module resolution context, and can overwrite namespace.default based on hookFn’s return value. While there is no direct evidence of data exfiltration or system compromise in the shown fragment, the capability to tamper with module exports during import is high-impact and could be abused for supply-chain sabotage. Additional risk signals include a broad builtin-detection override and weak MessageChannel acknowledgement handling (no message validation).

Confidence: 0.62

Severity: 0.56

From: ?npm/@sentry/node@10.38.0npm/import-in-the-middle@2.0.6

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/import-in-the-middle@2.0.6. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Ignoring alerts on:

  • @opentelemetry/core@2.5.0
  • @sentry/core@10.38.0
  • @sentry/browser@10.38.0
  • @sentry-internal/feedback@10.38.0
  • @sentry/node-core@10.38.0

View full report

Copilot AI and others added 3 commits May 21, 2026 17:04
Copilot AI changed the title [WIP] Upgrade Sentry SDK from v8.33.1 to v10.x build: upgrade browser Sentry SDK to v10.38.0 May 21, 2026
Copilot AI requested a review from MajorLift May 21, 2026 17:11
@MajorLift

Copy link
Copy Markdown
Contributor

@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 21, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

🫰 @MetaMask/core-platform (1 files, +9 -4)
  • 📁 app/
    • 📁 scripts/
      • 📄 metamask-controller.js +9 -4

👨‍🔧 @MetaMask/extension-platform (2 files, +14 -4)
  • 📁 app/
    • 📁 scripts/
      • 📄 metamask-controller.js +9 -4
  • 📁 development/
    • 📁 webpack/
      • 📁 utils/
        • 📁 plugins/
          • 📁 LavamoatPlugin/
            • 📄 index.ts +5 -0

📜 @MetaMask/policy-reviewers (8 files, +216 -296)
  • 📁 lavamoat/
    • 📁 webpack/
      • 📁 mv2/
        • 📁 beta/
          • 📄 policy.json +27 -37
        • 📁 experimental/
          • 📄 policy.json +27 -37
        • 📁 flask/
          • 📄 policy.json +27 -37
        • 📁 main/
          • 📄 policy.json +27 -37
      • 📁 mv3/
        • 📁 beta/
          • 📄 policy.json +27 -37
        • 📁 experimental/
          • 📄 policy.json +27 -37
        • 📁 flask/
          • 📄 policy.json +27 -37
        • 📁 main/
          • 📄 policy.json +27 -37

Tip

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


🧪 @MetaMask/qa (3 files, +62 -14)
  • 📁 test/
    • 📁 e2e/
      • 📁 page-objects/
        • 📁 pages/
          • 📁 dialog/
            • 📄 add-edit-network.ts +5 -2
          • 📁 home/
            • 📄 homepage.ts +13 -2
        • 📄 mock-e2e.js +44 -10

👨‍🔧 @itsyoboieltr (1 files, +5 -0)
  • 📁 development/
    • 📁 webpack/
      • 📁 utils/
        • 📁 plugins/
          • 📁 LavamoatPlugin/
            • 📄 index.ts +5 -0

@metamaskbotv2

metamaskbotv2 Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor
Builds ready [5c7e650]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 17 pass · 🟡 0 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 26243014759 | 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]
User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyAssets, chrome/webpack/userJourneyTransactions

Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
assetDetails
[Sentry log · main/release]
🟢 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]
swap
[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: +19%
Bundle size diffs [🚀 Bundle size reduced!]
  • background: 250 Bytes (0%)
  • ui: -26 KiB (-0.27%)
  • common: -56.07 KiB (-0.45%)

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

@metamaskbotv2

metamaskbotv2 Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor
Builds ready [393b097]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 17 pass · 🟡 0 warn · 🔴 0 fail)

Baseline (latest main): 51036da | Date: 5/2/2026 | Pipeline: 26245055393 | 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]
User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyAssets, chrome/webpack/userJourneyTransactions

Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
assetDetails
[Sentry log · main/release]
🟢 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]
swap
[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: +25%
Bundle size diffs
  • background: 58 Bytes (0%)
  • ui: 5 Bytes (0%)
  • common: -69 Bytes (0%)

Gudahtt
Gudahtt previously approved these changes Jul 16, 2026

@Gudahtt Gudahtt 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!

`browserSessionIntegration.setupOnce` runs once per process, so the
init-time session belongs to the first `Sentry.init` in a jest worker;
a dedicated file makes that observable. The test proves the
integration stays wired in this init config and that the init session
survives the transport's async opt-in gate.

Test inits now pass `skipBrowserExtensionCheck` instead of the
test-scoped `globalThis.nw` shims: jsdom mocks `chrome.runtime.id`,
so without an escape the SDK's embedded-extension detection disables
`init` entirely in unit tests.
@metamask-ci

metamask-ci Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor
Builds ready [94feaed]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 16 pass · 🟡 6 warn · 🔴 2 fail)

Baseline (latest main): e294e5f | Date: 7/16/2026 | Pipeline: 29505360350 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🔴 srpButtonToSrpForm(p95) [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]

Regressions (🔴 2 failures)

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]
🟡 bridge_search_token

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: +78%
  • loadNewAccount/total: +78%
  • loadNewAccount/fcp: +11%
  • confirmTx/tbt: +15%
  • confirmTx/inp: +25%
  • confirmTx/fcp: +15%
  • bridgeUserActions/bridge_load_page: -21%
  • bridgeUserActions/longTaskCount: +43%
  • bridgeUserActions/longTaskTotalDuration: +34%
  • bridgeUserActions/tbt: +14%
  • bridgeUserActions/inp: +33%
  • bridgeUserActions/fcp: +13%
  • loadNewAccount/load_new_account: +145%
  • loadNewAccount/total: +145%
  • loadNewAccount/inp: +27%
  • loadNewAccount/fcp: +16%
  • loadNewAccount/lcp: +1130%
  • confirmTx/confirm_tx: +21%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +21%
  • confirmTx/fcp: +20%
  • confirmTx/lcp: +1199%
  • bridgeUserActions/bridge_load_page: +125%
  • bridgeUserActions/bridge_load_asset_picker: +149%
  • bridgeUserActions/bridge_search_token: +206%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +186%
  • bridgeUserActions/fcp: -44%
  • bridgeUserActions/lcp: +1289%

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

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

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/load: +10%
  • startupStandardHome/initialActions: +15%
  • startupStandardHome/setupStore: -12%
  • startupStandardHome/numNetworkReqs: +12%
  • startupStandardHome/longTaskCount: +15%
  • startupStandardHome/longTaskTotalDuration: +10%
  • startupStandardHome/lcp: -33%
  • startupStandardHome/domInteractive: +37%
  • startupStandardHome/initialActions: +11%
  • startupStandardHome/setupStore: +12%
  • startupStandardHome/fcp: +34%
  • startupPowerUserHome/uiStartup: -29%
  • startupPowerUserHome/load: -21%
  • startupPowerUserHome/domContentLoaded: -21%
  • startupPowerUserHome/domInteractive: -27%
  • startupPowerUserHome/backgroundConnect: -30%
  • startupPowerUserHome/firstReactRender: -25%
  • startupPowerUserHome/initialActions: +11%
  • startupPowerUserHome/loadScripts: -20%
  • startupPowerUserHome/setupStore: -92%
  • startupPowerUserHome/fcp: -26%
  • startupPowerUserHome/lcp: -27%
User Journey Benchmarks · Samples: 5 · mock API 🔴 2
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🔴 [CI log]
🔴 total
🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]
🔴 total
🔴 [CI log]
🔴 total
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/doneButtonToHomeScreen: -85%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +281%
  • onboardingImportWallet/longTaskCount: -88%
  • onboardingImportWallet/longTaskTotalDuration: -96%
  • onboardingImportWallet/longTaskMaxDuration: -92%
  • onboardingImportWallet/tbt: -99%
  • onboardingImportWallet/total: -53%
  • onboardingNewWallet/srpButtonToPwForm: -19%
  • onboardingNewWallet/doneButtonToAssetList: +172%
  • onboardingNewWallet/longTaskCount: -74%
  • onboardingNewWallet/longTaskTotalDuration: -100%
  • onboardingNewWallet/longTaskMaxDuration: -100%
  • onboardingNewWallet/tbt: -100%
  • onboardingNewWallet/total: +155%
  • solanaAssetDetails/assetClickToPriceChart: -68%
  • solanaAssetDetails/total: -68%
  • solanaAssetDetails/inp: +15%
  • solanaAssetDetails/cls: -86%
  • importSrpHome/loginToHomeScreen: -21%
  • importSrpHome/openAccountMenuAfterLogin: -11%
  • importSrpHome/homeAfterImportWithNewWallet: -19%
  • importSrpHome/longTaskCount: -46%
  • importSrpHome/longTaskTotalDuration: -43%
  • importSrpHome/tbt: -44%
  • importSrpHome/total: -19%
  • importSrpHome/lcp: +21%
  • importSrpHome/cls: -17%
  • sendTransactions/openSendPageFromHome: -45%
  • sendTransactions/selectTokenToSendFormLoaded: -40%
  • sendTransactions/reviewTransactionToConfirmationPage: -98%
  • sendTransactions/longTaskCount: +25%
  • sendTransactions/longTaskTotalDuration: +10%
  • sendTransactions/longTaskMaxDuration: +10%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -95%
  • sendTransactions/inp: -25%
  • sendTransactions/cls: -86%
  • swap/openSwapPageFromHome: -49%
  • swap/fetchAndDisplaySwapQuotes: +116%
  • swap/longTaskTotalDuration: -27%
  • swap/longTaskMaxDuration: -27%
  • swap/tbt: -100%
  • swap/total: +113%
  • swap/inp: +38%
  • swap/cls: -86%

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

  • 🟡 importSrpHome/INP: p75 312ms
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 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]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 88.06 KiB (0.6%)
  • ui: 112.18 KiB (0.64%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 1.84 KiB (0.1%)
  • zip: 96.39 KiB (0.35%)

CI adjudicated the removal: the Bitcoin discovery retry storm returned
through the onboarding benchmark (`openAccountMenuToAccountListLoaded`
mean +325.8%) rather than the discovery specs. The regtest proxy from
main cannot cover this path, since discovery runs in every spec without
a Bitcoin node. Reverts the removal commit.
@metamask-ci

metamask-ci Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor
Builds ready [b4fa1a8]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 13 pass · 🟡 9 warn · 🔴 1 fail)

Baseline (latest main): 8b84374 | Date: 7/16/2026 | Pipeline: 29511350189 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]

Regressions (🔴 1 failure)

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: +77%
  • loadNewAccount/total: +77%
  • loadNewAccount/inp: +25%
  • loadNewAccount/lcp: -12%
  • confirmTx/inp: +25%
  • confirmTx/fcp: +11%
  • bridgeUserActions/bridge_load_page: -23%
  • bridgeUserActions/bridge_load_asset_picker: +33%
  • bridgeUserActions/bridge_search_token: +10%
  • bridgeUserActions/longTaskCount: +25%
  • bridgeUserActions/longTaskTotalDuration: +37%
  • bridgeUserActions/tbt: +53%
  • bridgeUserActions/inp: +35%
  • bridgeUserActions/fcp: +11%
  • bridgeUserActions/lcp: +11%
  • loadNewAccount/load_new_account: +16%
  • loadNewAccount/total: +16%
  • loadNewAccount/fcp: -75%
  • loadNewAccount/lcp: +846%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/inp: -23%
  • confirmTx/fcp: -72%
  • confirmTx/lcp: +959%
  • bridgeUserActions/bridge_load_page: +43%
  • bridgeUserActions/bridge_load_asset_picker: +36%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/inp: -33%
  • bridgeUserActions/fcp: -11%
  • bridgeUserActions/lcp: +928%

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

  • 🟡 confirmTx/FCP: p75 1.8s
  • 🟡 bridgeUserActions/FCP: p75 1.8s
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/setupStore: -19%
  • startupStandardHome/firstReactRender: -10%
  • startupStandardHome/initialActions: +11%
  • startupPowerUserHome/uiStartup: -36%
  • startupPowerUserHome/load: -28%
  • startupPowerUserHome/domContentLoaded: -28%
  • startupPowerUserHome/domInteractive: -29%
  • startupPowerUserHome/backgroundConnect: -46%
  • startupPowerUserHome/firstReactRender: -23%
  • startupPowerUserHome/initialActions: -44%
  • startupPowerUserHome/loadScripts: -28%
  • startupPowerUserHome/setupStore: -94%
  • startupPowerUserHome/inp: -25%
  • startupPowerUserHome/fcp: -27%
  • startupPowerUserHome/lcp: -34%
User Journey Benchmarks · Samples: 5 · mock API 🔴 1
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟡 [CI log]
🟡 total
🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]
🔴 total
🔴 [CI log]
🔴 total
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: +13%
  • onboardingImportWallet/confirmSrpToPwForm: +11%
  • onboardingImportWallet/pwFormToMetricsScreen: +17%
  • onboardingImportWallet/metricsToWalletReadyScreen: +12%
  • onboardingImportWallet/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +153%
  • onboardingImportWallet/longTaskCount: -86%
  • onboardingImportWallet/longTaskTotalDuration: -94%
  • onboardingImportWallet/longTaskMaxDuration: -88%
  • onboardingImportWallet/tbt: -97%
  • onboardingImportWallet/total: -62%
  • onboardingNewWallet/srpButtonToPwForm: -29%
  • onboardingNewWallet/doneButtonToAssetList: +165%
  • onboardingNewWallet/longTaskCount: -75%
  • onboardingNewWallet/longTaskTotalDuration: -87%
  • onboardingNewWallet/longTaskMaxDuration: -67%
  • onboardingNewWallet/tbt: -98%
  • onboardingNewWallet/total: +147%
  • solanaAssetDetails/assetClickToPriceChart: -40%
  • solanaAssetDetails/total: -40%
  • solanaAssetDetails/inp: +13%
  • solanaAssetDetails/cls: -86%
  • importSrpHome/loginToHomeScreen: -29%
  • importSrpHome/homeAfterImportWithNewWallet: -41%
  • importSrpHome/longTaskCount: -56%
  • importSrpHome/longTaskTotalDuration: -59%
  • importSrpHome/longTaskMaxDuration: -16%
  • importSrpHome/tbt: -62%
  • importSrpHome/total: -36%
  • importSrpHome/inp: -10%
  • importSrpHome/cls: -50%
  • sendTransactions/openSendPageFromHome: -12%
  • sendTransactions/selectTokenToSendFormLoaded: +70%
  • sendTransactions/reviewTransactionToConfirmationPage: -97%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -94%
  • sendTransactions/inp: -21%
  • sendTransactions/cls: -86%
  • swap/fetchAndDisplaySwapQuotes: +98%
  • swap/longTaskTotalDuration: -15%
  • swap/longTaskMaxDuration: -15%
  • swap/tbt: -56%
  • swap/total: +100%
  • swap/inp: +62%
  • swap/fcp: +12%
  • swap/lcp: -62%
  • swap/cls: -86%

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

  • 🟡 importSrpHome/INP: p75 312ms
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 swap/FCP: p75 1.9s
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/pageLoadBenchmark

✅ No regressions detected

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 88.06 KiB (0.6%)
  • ui: 112.19 KiB (0.64%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 1.84 KiB (0.1%)
  • zip: 96.39 KiB (0.35%)

The mock is the durable Bitcoin discovery fix carried by this branch, not
an interim workaround: the Solana-mock completion work is scoped to the
Solana RPC methods only and does not provide the Esplora response, so no
upstream change makes this mock redundant.
@MajorLift

MajorLift commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

@SocketSecurity ignore npm/@opentelemetry/core@2.5.0

We already have a yarn resolution entry for "@opentelemetry/core": "^2.8.0" (#43572).

…very mocks

References the adjacent mocks' origin (#43817, on main), the removal
adjudication on this PR, and the Solana scope of #43961/#43958 — the
completion work does not cover this endpoint, so the handler is permanent.
Drops adjudication history and mechanism narration from the Esplora mock,
perf-DSN interceptor, non-EVM icon TODO, `snap_startTrace`, and the two
Sentry test-file headers; each now states only why the code must stay as
written.
@metamask-ci

metamask-ci Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor
Builds ready [4a5115a]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 16 pass · 🟡 8 warn · 🔴 0 fail)

Baseline (latest main): 2ba6714 | Date: 7/16/2026 | Pipeline: 29518203102 | 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: +27%
  • loadNewAccount/total: +27%
  • loadNewAccount/inp: +47%
  • confirmTx/longTaskTotalDuration: +12%
  • confirmTx/tbt: +23%
  • confirmTx/inp: +15%
  • bridgeUserActions/bridge_load_page: -29%
  • bridgeUserActions/longTaskCount: -29%
  • bridgeUserActions/longTaskTotalDuration: -26%
  • bridgeUserActions/tbt: -24%
  • bridgeUserActions/inp: +18%
  • loadNewAccount/load_new_account: +35%
  • loadNewAccount/total: +35%
  • loadNewAccount/inp: +47%
  • loadNewAccount/fcp: -43%
  • loadNewAccount/lcp: +917%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/inp: +169%
  • confirmTx/fcp: -68%
  • confirmTx/lcp: +922%
  • bridgeUserActions/bridge_load_page: +131%
  • bridgeUserActions/bridge_load_asset_picker: +25%
  • bridgeUserActions/bridge_search_token: -10%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +14%
  • bridgeUserActions/inp: +18%
  • bridgeUserActions/fcp: -70%
  • bridgeUserActions/lcp: +992%

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

  • 🟡 confirmTx/INP: p75 224ms
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/firstReactRender: -11%
  • startupStandardHome/setupStore: -23%
  • startupStandardHome/uiStartup: -15%
  • startupStandardHome/load: -15%
  • startupStandardHome/domContentLoaded: -15%
  • startupStandardHome/domInteractive: -29%
  • startupStandardHome/firstReactRender: -17%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/loadScripts: -15%
  • startupStandardHome/setupStore: -18%
  • startupStandardHome/fcp: -26%
  • startupStandardHome/lcp: -14%
  • startupPowerUserHome/backgroundConnect: -17%
  • startupPowerUserHome/setupStore: +16%

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

  • 🟡 startupPowerUserHome/LCP: p75 3.4s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟡 [CI log]
🟡 total
🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]
🔴 total
🟡 [CI log]
🟡 total
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: -10%
  • onboardingImportWallet/confirmSrpToPwForm: -12%
  • onboardingImportWallet/pwFormToMetricsScreen: -11%
  • onboardingImportWallet/metricsToWalletReadyScreen: -19%
  • onboardingImportWallet/doneButtonToHomeScreen: -69%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +88%
  • onboardingImportWallet/longTaskCount: -88%
  • onboardingImportWallet/longTaskTotalDuration: -96%
  • onboardingImportWallet/longTaskMaxDuration: -92%
  • onboardingImportWallet/tbt: -100%
  • onboardingImportWallet/total: -65%
  • onboardingNewWallet/doneButtonToAssetList: +182%
  • onboardingNewWallet/longTaskCount: -75%
  • onboardingNewWallet/longTaskTotalDuration: -86%
  • onboardingNewWallet/longTaskMaxDuration: -60%
  • onboardingNewWallet/tbt: -100%
  • onboardingNewWallet/total: +161%
  • solanaAssetDetails/assetClickToPriceChart: -19%
  • solanaAssetDetails/total: -19%
  • solanaAssetDetails/lcp: +20%
  • solanaAssetDetails/cls: -86%
  • importSrpHome/loginToHomeScreen: -23%
  • importSrpHome/homeAfterImportWithNewWallet: -35%
  • importSrpHome/longTaskCount: -57%
  • importSrpHome/longTaskTotalDuration: -51%
  • importSrpHome/tbt: -49%
  • importSrpHome/total: -33%
  • importSrpHome/inp: -16%
  • importSrpHome/cls: -50%
  • sendTransactions/openSendPageFromHome: -27%
  • sendTransactions/selectTokenToSendFormLoaded: -37%
  • sendTransactions/reviewTransactionToConfirmationPage: -98%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -96%
  • sendTransactions/inp: -18%
  • sendTransactions/lcp: -13%
  • sendTransactions/cls: -53%
  • swap/openSwapPageFromHome: -18%
  • swap/fetchAndDisplaySwapQuotes: +86%
  • swap/longTaskCount: -100%
  • swap/longTaskTotalDuration: -100%
  • swap/longTaskMaxDuration: -100%
  • swap/tbt: -100%
  • swap/total: +85%
  • swap/inp: +38%
  • swap/lcp: -71%
  • swap/cls: -86%

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

  • 🟡 importSrpHome/INP: p75 280ms
  • 🟡 importSrpHome/FCP: p75 2.0s
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 swap/FCP: p75 1.8s
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: -22%
  • dappPageLoad/domContentLoaded: -20%
  • dappPageLoad/firstPaint: -15%
  • dappPageLoad/firstContentfulPaint: -15%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 79.16 KiB (0.54%)
  • ui: 125.22 KiB (0.71%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 1.35 KiB (0.07%)
  • zip: 98.6 KiB (0.36%)

@MajorLift

Copy link
Copy Markdown
Contributor

@SocketSecurity ignore npm/@sentry-internal/feedback@10.38.0 npm/@sentry/browser@10.38.0 npm/@sentry/core@10.38.0 npm/@sentry/node-core@10.38.0

Sentry SDK is proprietary. Obfuscation is expected.

Resolves the browserify-removal conflicts by accepting main's deletion of
`development/build/index.js` and `development/build/scripts.js`; the
branch's browserify-side Sentry wiring is obsolete with that pipeline
gone, and the webpack path carries its own equivalent.
@metamask-ci

metamask-ci Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor
Builds ready [bf889e6]
⚡ Performance Benchmarks (Total: 🟢 14 pass · 🟡 9 warn · 🔴 1 fail)

Baseline (latest main): 593690c | Date: 7/16/2026 | Pipeline: 29531894129 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]

Regressions (🔴 1 failure)

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: +80%
  • loadNewAccount/total: +80%
  • loadNewAccount/cls: -100%
  • confirmTx/longTaskTotalDuration: +12%
  • confirmTx/longTaskMaxDuration: +18%
  • confirmTx/tbt: +23%
  • confirmTx/inp: +74%
  • confirmTx/fcp: +11%
  • bridgeUserActions/bridge_load_asset_picker: +47%
  • bridgeUserActions/longTaskCount: +25%
  • bridgeUserActions/longTaskTotalDuration: +43%
  • bridgeUserActions/longTaskMaxDuration: +14%
  • bridgeUserActions/tbt: +83%
  • bridgeUserActions/total: +13%
  • bridgeUserActions/inp: +70%
  • bridgeUserActions/fcp: +11%
  • bridgeUserActions/lcp: -12%
  • loadNewAccount/load_new_account: +116%
  • loadNewAccount/total: +116%
  • loadNewAccount/inp: +11%
  • loadNewAccount/fcp: -45%
  • loadNewAccount/lcp: +1028%
  • confirmTx/confirm_tx: +12%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +12%
  • confirmTx/fcp: -44%
  • confirmTx/lcp: +1180%
  • bridgeUserActions/bridge_load_page: +136%
  • bridgeUserActions/bridge_load_asset_picker: +53%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +28%
  • bridgeUserActions/fcp: +17%
  • bridgeUserActions/lcp: +1013%

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

  • 🟡 confirmTx/FCP: p75 1.8s
  • 🟡 bridgeUserActions/FCP: p75 1.8s
  • 🟡 bridgeUserActions/FCP: p75 1.9s
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/firstPaint: +10%
  • startupStandardHome/lcp: -27%
  • startupStandardHome/domInteractive: +34%
  • startupStandardHome/firstReactRender: -14%
  • startupStandardHome/initialActions: -50%
  • startupStandardHome/setupStore: -11%
  • startupStandardHome/fcp: +30%
  • startupPowerUserHome/uiStartup: -29%
  • startupPowerUserHome/load: -30%
  • startupPowerUserHome/domContentLoaded: -30%
  • startupPowerUserHome/domInteractive: -32%
  • startupPowerUserHome/backgroundConnect: -36%
  • startupPowerUserHome/firstReactRender: -27%
  • startupPowerUserHome/loadScripts: -30%
  • startupPowerUserHome/setupStore: -19%
  • startupPowerUserHome/inp: -21%
  • startupPowerUserHome/fcp: -29%
  • startupPowerUserHome/lcp: -28%

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

  • 🟡 startupPowerUserHome/LCP: p75 2.6s
User Journey Benchmarks · Samples: 5 · mock API 🔴 1
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟡 [CI log]
🟡 total
🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]
🔴 total
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/metricsToWalletReadyScreen: -11%
  • onboardingImportWallet/doneButtonToHomeScreen: -78%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +368%
  • onboardingImportWallet/longTaskCount: -90%
  • onboardingImportWallet/longTaskTotalDuration: -97%
  • onboardingImportWallet/longTaskMaxDuration: -92%
  • onboardingImportWallet/tbt: -100%
  • onboardingImportWallet/total: -74%
  • onboardingNewWallet/createPwToRecoveryScreen: +11%
  • onboardingNewWallet/doneButtonToAssetList: -42%
  • onboardingNewWallet/longTaskCount: -38%
  • onboardingNewWallet/longTaskTotalDuration: -73%
  • onboardingNewWallet/longTaskMaxDuration: -72%
  • onboardingNewWallet/tbt: -100%
  • onboardingNewWallet/total: -37%
  • solanaAssetDetails/assetClickToPriceChart: -75%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: -75%
  • solanaAssetDetails/inp: +27%
  • solanaAssetDetails/cls: -86%
  • importSrpHome/loginToHomeScreen: -39%
  • importSrpHome/openAccountMenuAfterLogin: -49%
  • importSrpHome/homeAfterImportWithNewWallet: -51%
  • importSrpHome/longTaskCount: -68%
  • importSrpHome/longTaskTotalDuration: -66%
  • importSrpHome/longTaskMaxDuration: -30%
  • importSrpHome/tbt: -64%
  • importSrpHome/total: -49%
  • importSrpHome/inp: -36%
  • importSrpHome/fcp: -11%
  • importSrpHome/lcp: -11%
  • importSrpHome/cls: -43%
  • sendTransactions/selectTokenToSendFormLoaded: -28%
  • sendTransactions/longTaskCount: +300%
  • sendTransactions/longTaskTotalDuration: +280%
  • sendTransactions/longTaskMaxDuration: +280%
  • sendTransactions/tbt: +167%
  • sendTransactions/inp: -35%
  • sendTransactions/cls: -53%
  • swap/openSwapPageFromHome: +105%
  • swap/fetchAndDisplaySwapQuotes: +109%
  • swap/longTaskCount: +43%
  • swap/longTaskTotalDuration: +22%
  • swap/longTaskMaxDuration: -17%
  • swap/tbt: -82%
  • swap/total: +108%
  • swap/inp: +64%
  • swap/cls: -86%

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

  • 🟡 importSrpHome/INP: p75 216ms
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 sendTransactions/FCP: p75 2.0s
  • 🔴 swap/INP: p75 736ms
  • 🟡 swap/FCP: p75 2.0s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 87.31 KiB (0.6%)
  • ui: 112.06 KiB (0.64%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 1.36 KiB (0.07%)
  • zip: 95.3 KiB (0.34%)

The v10 Sentry SDK's per-request breadcrumb and flush work competes with the
background `addNetwork` call, so on 2-core CI the confirmation dialog outlives
the default 3s `clickElementAndWaitToDisappear`. `saveEditedNetwork` takes an
optional timeout; this spec passes 15s. Bisect: the stall reproduces with the
SDK initialized but tracing stripped and disappears with `enabled: false`, so
it is init cost, not the tracing runtime or the LavaMoat exception changes.
@metamask-ci

metamask-ci Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor
Builds ready [bc1577d]
⚡ Performance Benchmarks (Total: 🟢 17 pass · 🟡 6 warn · 🔴 1 fail)

Baseline (latest main): 576a79f | Date: 7/16/2026 | Pipeline: 29537521736 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🔴 openAccountMenuToAccountListLoaded(p95) [CI log]🟢 [CI log]

Regressions (🔴 1 failure)

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: -20%
  • loadNewAccount/total: -20%
  • loadNewAccount/inp: +19%
  • confirmTx/longTaskMaxDuration: +12%
  • confirmTx/inp: +30%
  • bridgeUserActions/longTaskCount: -38%
  • bridgeUserActions/longTaskTotalDuration: -25%
  • bridgeUserActions/tbt: +24%
  • bridgeUserActions/inp: +46%
  • bridgeUserActions/lcp: -11%
  • loadNewAccount/inp: -32%
  • loadNewAccount/fcp: -14%
  • loadNewAccount/lcp: +865%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/inp: -13%
  • confirmTx/fcp: -68%
  • confirmTx/lcp: +923%
  • bridgeUserActions/bridge_load_page: +167%
  • bridgeUserActions/bridge_load_asset_picker: +127%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +39%
  • bridgeUserActions/fcp: -72%
  • bridgeUserActions/lcp: +1073%
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/initialActions: +15%
  • startupStandardHome/setupStore: -12%
  • startupStandardHome/numNetworkReqs: +16%
  • startupStandardHome/longTaskCount: +15%
  • startupStandardHome/longTaskTotalDuration: +10%
  • startupStandardHome/tbt: +10%
  • startupStandardHome/lcp: -34%
  • startupStandardHome/domInteractive: -23%
  • startupStandardHome/fcp: -21%
  • startupPowerUserHome/load: -11%
  • startupPowerUserHome/domContentLoaded: -11%
  • startupPowerUserHome/domInteractive: -16%
  • startupPowerUserHome/loadScripts: -11%
  • startupPowerUserHome/setupStore: +31%
  • startupPowerUserHome/fcp: -15%

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

  • 🟡 startupPowerUserHome/LCP: p75 3.2s
User Journey Benchmarks · Samples: 5 · mock API 🔴 1
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🔴 [CI log]
🔴 total
🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
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/doneButtonToHomeScreen: -75%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +397%
  • onboardingImportWallet/longTaskCount: -91%
  • onboardingImportWallet/longTaskTotalDuration: -97%
  • onboardingImportWallet/longTaskMaxDuration: -93%
  • onboardingImportWallet/tbt: -100%
  • onboardingImportWallet/total: -72%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +19%
  • onboardingNewWallet/doneButtonToAssetList: -36%
  • onboardingNewWallet/longTaskCount: -69%
  • onboardingNewWallet/longTaskTotalDuration: -76%
  • onboardingNewWallet/longTaskMaxDuration: -48%
  • onboardingNewWallet/tbt: -83%
  • onboardingNewWallet/total: -32%
  • solanaAssetDetails/assetClickToPriceChart: -68%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: -68%
  • solanaAssetDetails/inp: +37%
  • solanaAssetDetails/cls: -86%
  • importSrpHome/loginToHomeScreen: -46%
  • importSrpHome/openAccountMenuAfterLogin: -77%
  • importSrpHome/homeAfterImportWithNewWallet: -47%
  • importSrpHome/longTaskCount: -69%
  • importSrpHome/longTaskTotalDuration: -71%
  • importSrpHome/longTaskMaxDuration: -41%
  • importSrpHome/tbt: -75%
  • importSrpHome/total: -46%
  • importSrpHome/inp: -43%
  • importSrpHome/lcp: +46%
  • importSrpHome/cls: -43%
  • sendTransactions/openSendPageFromHome: -17%
  • sendTransactions/selectTokenToSendFormLoaded: +27%
  • sendTransactions/reviewTransactionToConfirmationPage: -97%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -94%
  • sendTransactions/inp: -33%
  • sendTransactions/cls: -53%
  • swap/openSwapPageFromHome: -31%
  • swap/fetchAndDisplaySwapQuotes: +154%
  • swap/longTaskCount: -17%
  • swap/longTaskTotalDuration: -37%
  • swap/longTaskMaxDuration: -30%
  • swap/tbt: -100%
  • swap/total: +151%
  • swap/inp: +31%
  • swap/cls: -86%

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

  • 🟡 importSrpHome/INP: p75 216ms
  • 🟡 importSrpHome/FCP: p75 1.8s
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/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: -20%
  • dappPageLoad/domContentLoaded: -19%
  • dappPageLoad/firstPaint: -14%
  • dappPageLoad/firstContentfulPaint: -14%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 87.31 KiB (0.6%)
  • ui: 112.41 KiB (0.64%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 1.36 KiB (0.07%)
  • zip: 95.42 KiB (0.34%)

@metamask-ci

metamask-ci Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor
Builds ready [bc1577d]
⚡ Performance Benchmarks (Total: 🟢 17 pass · 🟡 6 warn · 🔴 1 fail)

Baseline (latest main): 9b908f5 | Date: 7/17/2026 | Pipeline: 29537521736 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🔴 openAccountMenuToAccountListLoaded(p95) [CI log]🟢 [CI log]

Regressions (🔴 1 failure)

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: -19%
  • loadNewAccount/total: -19%
  • loadNewAccount/inp: +11%
  • confirmTx/longTaskMaxDuration: +12%
  • confirmTx/inp: +30%
  • bridgeUserActions/bridge_load_page: -15%
  • bridgeUserActions/longTaskCount: -38%
  • bridgeUserActions/longTaskTotalDuration: -25%
  • bridgeUserActions/tbt: +27%
  • bridgeUserActions/inp: +49%
  • loadNewAccount/inp: -37%
  • loadNewAccount/fcp: -18%
  • loadNewAccount/lcp: +840%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/inp: -13%
  • confirmTx/fcp: -68%
  • confirmTx/lcp: +929%
  • bridgeUserActions/bridge_load_page: +136%
  • bridgeUserActions/bridge_load_asset_picker: +139%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +36%
  • bridgeUserActions/fcp: -71%
  • bridgeUserActions/lcp: +1261%
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/setupStore: -14%
  • startupStandardHome/domInteractive: -16%
  • startupStandardHome/fcp: -15%
  • startupPowerUserHome/setupStore: +24%

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

  • 🟡 startupPowerUserHome/LCP: p75 3.2s
User Journey Benchmarks · Samples: 5 · mock API 🔴 1
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🔴 [CI log]
🔴 total
🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
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/doneButtonToHomeScreen: -74%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +274%
  • onboardingImportWallet/longTaskCount: -91%
  • onboardingImportWallet/longTaskTotalDuration: -97%
  • onboardingImportWallet/longTaskMaxDuration: -93%
  • onboardingImportWallet/tbt: -100%
  • onboardingImportWallet/total: -72%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +30%
  • onboardingNewWallet/doneButtonToAssetList: -37%
  • onboardingNewWallet/longTaskCount: -71%
  • onboardingNewWallet/longTaskTotalDuration: -77%
  • onboardingNewWallet/longTaskMaxDuration: -55%
  • onboardingNewWallet/tbt: -84%
  • onboardingNewWallet/total: -33%
  • solanaAssetDetails/assetClickToPriceChart: -61%
  • solanaAssetDetails/total: -61%
  • solanaAssetDetails/inp: +35%
  • solanaAssetDetails/cls: -86%
  • importSrpHome/loginToHomeScreen: -48%
  • importSrpHome/openAccountMenuAfterLogin: -77%
  • importSrpHome/homeAfterImportWithNewWallet: -39%
  • importSrpHome/longTaskCount: -66%
  • importSrpHome/longTaskTotalDuration: -70%
  • importSrpHome/longTaskMaxDuration: -43%
  • importSrpHome/tbt: -75%
  • importSrpHome/total: -39%
  • importSrpHome/inp: -47%
  • importSrpHome/lcp: +48%
  • importSrpHome/cls: -38%
  • sendTransactions/openSendPageFromHome: -14%
  • sendTransactions/selectTokenToSendFormLoaded: +46%
  • sendTransactions/reviewTransactionToConfirmationPage: -97%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -95%
  • sendTransactions/inp: -30%
  • sendTransactions/cls: -53%
  • swap/openSwapPageFromHome: -27%
  • swap/fetchAndDisplaySwapQuotes: +148%
  • swap/longTaskTotalDuration: -34%
  • swap/longTaskMaxDuration: -34%
  • swap/tbt: -100%
  • swap/total: +145%
  • swap/inp: +29%
  • swap/cls: -86%

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

  • 🟡 importSrpHome/INP: p75 216ms
  • 🟡 importSrpHome/FCP: p75 1.8s
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/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: -20%
  • dappPageLoad/domContentLoaded: -20%
  • dappPageLoad/firstPaint: -14%
  • dappPageLoad/firstContentfulPaint: -14%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 87.31 KiB (0.6%)
  • ui: 112.41 KiB (0.64%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 1.36 KiB (0.07%)
  • zip: 95.42 KiB (0.34%)

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
20.0% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@metamask-ci

metamask-ci Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor
Builds ready [5219443]
⚡ Performance Benchmarks (Total: 🟢 16 pass · 🟡 7 warn · 🔴 1 fail)

Baseline (latest main): 9b908f5 | Date: 7/17/2026 | Pipeline: 29570369716 | Baseline logs

Metricschrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🔴 load_new_account(p95) [CI log]

Regressions (🔴 1 failure)

Interaction Benchmarks · Samples: 5 🔴 1
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]
🔴 load_new_account
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: -13%
  • loadNewAccount/total: -13%
  • loadNewAccount/inp: +11%
  • confirmTx/inp: +52%
  • bridgeUserActions/bridge_load_page: -33%
  • bridgeUserActions/bridge_load_asset_picker: +21%
  • bridgeUserActions/longTaskCount: -38%
  • bridgeUserActions/longTaskTotalDuration: -21%
  • bridgeUserActions/tbt: +27%
  • bridgeUserActions/inp: +49%
  • loadNewAccount/load_new_account: +714%
  • loadNewAccount/total: +714%
  • loadNewAccount/inp: -13%
  • loadNewAccount/fcp: -52%
  • loadNewAccount/lcp: +1088%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/lcp: +1119%
  • bridgeUserActions/bridge_load_page: +138%
  • bridgeUserActions/bridge_load_asset_picker: +105%
  • bridgeUserActions/bridge_search_token: +12%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +200%
  • bridgeUserActions/lcp: +1139%
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/domInteractive: -11%
  • startupPowerUserHome/setupStore: +33%
  • startupPowerUserHome/fcp: -10%

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

  • 🟡 startupPowerUserHome/INP: p75 216ms
  • 🟡 startupPowerUserHome/LCP: p75 3.5s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟡 [CI log]
🟡 total
🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]
🔴 total
🟡 [CI log]
🟡 total
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/doneButtonToHomeScreen: -91%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +233%
  • onboardingImportWallet/longTaskCount: -91%
  • onboardingImportWallet/longTaskTotalDuration: -97%
  • onboardingImportWallet/longTaskMaxDuration: -93%
  • onboardingImportWallet/tbt: -100%
  • onboardingImportWallet/total: -73%
  • onboardingNewWallet/srpButtonToPwForm: +12%
  • onboardingNewWallet/doneButtonToAssetList: +162%
  • onboardingNewWallet/longTaskCount: -71%
  • onboardingNewWallet/longTaskTotalDuration: -85%
  • onboardingNewWallet/longTaskMaxDuration: -72%
  • onboardingNewWallet/tbt: -99%
  • onboardingNewWallet/total: +145%
  • solanaAssetDetails/assetClickToPriceChart: -69%
  • solanaAssetDetails/total: -69%
  • solanaAssetDetails/inp: +15%
  • solanaAssetDetails/cls: -86%
  • importSrpHome/loginToHomeScreen: -30%
  • importSrpHome/openAccountMenuAfterLogin: -52%
  • importSrpHome/homeAfterImportWithNewWallet: -17%
  • importSrpHome/longTaskCount: -46%
  • importSrpHome/longTaskTotalDuration: -48%
  • importSrpHome/longTaskMaxDuration: -19%
  • importSrpHome/tbt: -56%
  • importSrpHome/total: -19%
  • importSrpHome/inp: -25%
  • importSrpHome/cls: -38%
  • sendTransactions/openSendPageFromHome: -16%
  • sendTransactions/selectTokenToSendFormLoaded: +21%
  • sendTransactions/reviewTransactionToConfirmationPage: -97%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -93%
  • sendTransactions/inp: -37%
  • sendTransactions/cls: -86%
  • swap/openSwapPageFromHome: -16%
  • swap/fetchAndDisplaySwapQuotes: +113%
  • swap/longTaskCount: -100%
  • swap/longTaskTotalDuration: -100%
  • swap/longTaskMaxDuration: -100%
  • swap/tbt: -100%
  • swap/total: +111%
  • swap/inp: +44%
  • swap/cls: -86%

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

  • 🟡 importSrpHome/INP: p75 304ms
  • 🟡 sendTransactions/FCP: p75 1.8s
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/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: 87.31 KiB (0.6%)
  • ui: 112.06 KiB (0.64%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 1.36 KiB (0.07%)
  • zip: 95.28 KiB (0.34%)

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

e2e files LGTM

@gauthierpetetin

Copy link
Copy Markdown
Contributor

No release label on PR. Adding release label release-13.42.0 on PR, as PR was added to branch 13.42.0 when release was cut.

@MajorLift

MajorLift commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

🧪 Validation Run

Verdict: ℹ️ capability expanded — Claim: the @sentry/browser major bump grants no new capability
head 796685ce7b7 · 2026-08-01 · lanes: D3 supply-chain capability diff

D3 supply-chain capability diff — capability expanded (exit 0)

Claim under test: the @sentry/browser major bump grants no new capability

$ python3 policy-audit.py /tmp/bp.json /tmp/hp.json
PER-GRANT JUSTIFICATION WORKLIST
==========================================================================
Detection is LavaMoat's; each row below needs a REASON, not a category.
Justify with a permalink to the dependency's source at the installed version
(accept), or reject where no call site uses the capability.

  [ ] @sentry/browser                          glo:Headers                 reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser                          glo:WebAssembly             reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser                          glo:clearTimeout            reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser                          glo:fetch                   reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser                          glo:importScripts           reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser                          pac:@sentry/core            reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/brows   glo:FormData                reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/brows   glo:PerformanceEventTiming  reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/brows   glo:Request                 reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/brows   glo:URL                     reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/brows   glo:URLSearchParams         reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/brows   pac:@sentry/core            reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/feedb   glo:getComputedStyle        reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/feedb   glo:matchMedia              reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/feedb   pac:@sentry/core            reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/repla   glo:Request                 reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/repla   glo:Zone.__symbol__         reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/repla   pac:@sentry/core            reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/repla   glo:console.debug           reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/repla   glo:performance.now         reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/browser>@sentry-internal/repla   pac:@sentry/core            reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:CustomEvent             reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:DOMError                reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:DOMException            reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:EdgeRuntime             reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:Element                 reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:ErrorEvent              reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:Event                   reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:HTMLElement             reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:Headers                 reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:Request                 reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:Response                reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:TextDecoder             reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:TextEncoder             reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:URL                     reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:URLSearchParams         reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:__SENTRY_BROWSER_BUNDLE__  reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:__SENTRY_DEBUG__        reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:__SENTRY_TRACING__      reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:clearTimeout            reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:console.error           reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:console.warn            reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:document                reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:module                  reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:process                 reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             glo:setTimeout              reason: <upstream file#Ln @ tag>   verdict: accept|REJECT
  [ ] @sentry/core                             pac:process                 reason: <upstream file#Ln @ tag>   verdict: accept|REJECT

  47 grant(s) to justify.
  A grant with no locatable call site is the finding — reject it.

Produced by capture.sh, not transcribed. head 796685ce7b753f36d8dd7a21a4f911337f508547 · 0 tracked changes · node v24.18.0 · Python 3.12.3 · yarn.lock 7a1a6343bc697708. Raw log: /tmp/claude-1001/-home-majorlift/3d0fbc76-cc4d-4826-bca7-f94495d64c7d/scratchpad/artifacts/sentry-capability-diff.log.

Automated run of policy-audit.py, a review skill under development (MetaMask/skills#83), on a merged PR. The block above was written by the runner, not typed — re-run it with policy-audit.py to reproduce. No action required.

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

Labels

release-13.42.0 Issue or pull request that will be included in release 13.42.0 risk:medium size-XL team-extension-platform Extension Platform team

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

8 participants