Skip to content

fix: silence Sass deprecation warnings - #44727

Open
davidmurdoch wants to merge 9 commits into
mainfrom
david/fix-sass-deprecation-warnings
Open

fix: silence Sass deprecation warnings#44727
davidmurdoch wants to merge 9 commits into
mainfrom
david/fix-sass-deprecation-warnings

Conversation

@davidmurdoch

@davidmurdoch davidmurdoch commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Description

The upgrade from sass-embedded 1.71.0 to 1.100.0 caused the development webpack build to emit hundreds of Sass deprecation warnings from application and dependency stylesheets.

This change:

  • updates sass-loader from 14.1.1 to 17.0.0 and explicitly selects the reusable Sass Embedded modern-compiler API
  • supplies the Sass Embedded implementation directly so production LavaMoat builds do not need the loader's dynamic package import
  • keeps Webpack's Sass importer disabled because Sass's native importer is faster for the current import graph and all non-relative imports resolve through the configured load paths
  • correctly places the Sass API and importer settings at the sass-loader options level
  • suppresses third-party warnings with quietDeps
  • temporarily suppresses only the legacy @import warning, linked to the follow-up migration issue
  • replaces MetaMask-owned deprecated global functions and legacy if() syntax
  • makes an adjacent compound selector explicit without changing its compiled selector

The development build and a stylesheet-triggered incremental rebuild complete without Sass deprecation warnings.

Changelog

CHANGELOG entry: null

Related issues

Related to #44725

Manual testing steps

  1. Check out this branch and install dependencies.
  2. Run yarn start.
  3. Wait for the initial development webpack compilation to finish.
  4. Confirm the build succeeds without Sass deprecation warnings in the terminal.
  5. Edit and save any SCSS file included by the UI bundle.
  6. Confirm the incremental rebuild succeeds without Sass deprecation warnings.

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.

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

@metamask-ci metamask-ci Bot added the team-extension-platform Extension Platform team label Jul 22, 2026
@metamask-ci

metamask-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

👨‍🔧 @MetaMask/core-extension-ux (2 files, +14 -12)
  • 📁 ui/
    • 📁 css/
      • 📁 design-system/
        • 📄 _typography.scss +11 -11
      • 📁 utilities/
        • 📄 fonts.scss +3 -1

🫰 @MetaMask/core-platform (1 files, +1 -1)
  • 📁 ui/
    • 📁 components/
      • 📁 app/
        • 📁 snaps/
          • 📁 snap-ui-renderer/
            • 📄 index.scss +1 -1

👨‍🔧 @MetaMask/extension-platform (2 files, +27 -23)
  • 📁 development/
    • 📁 webpack/
      • 📄 webpack.config.ts +13 -11
      • 📄 webpack.integration.tests.config.ts +14 -12

📜 @MetaMask/policy-reviewers (1 files, +2 -1)
  • 📁 lavamoat/
    • 📁 webpack/
      • 📁 build/
        • 📄 policy.json +2 -1

Tip

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


👨‍🔧 @itsyoboieltr (2 files, +27 -23)
  • 📁 development/
    • 📁 webpack/
      • 📄 webpack.config.ts +13 -11
      • 📄 webpack.integration.tests.config.ts +14 -12

@metamask-ci

metamask-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor
Builds ready [3c6b035]
⚡ Performance Benchmarks (Total: 🟢 16 pass · 🟡 6 warn · 🔴 2 fail)

Baseline (latest main): 148b084 | Date: 7/22/2026 | Pipeline: 29946277571 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🔴 [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]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/inp: +13%
  • confirmTx/longTaskMaxDuration: -12%
  • confirmTx/inp: +14%
  • bridgeUserActions/bridge_load_page: -34%
  • bridgeUserActions/longTaskCount: +11%
  • bridgeUserActions/tbt: -11%
  • loadNewAccount/inp: -23%
  • loadNewAccount/fcp: +14%
  • loadNewAccount/lcp: +1245%
  • confirmTx/confirm_tx: +10%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +10%
  • confirmTx/inp: -29%
  • confirmTx/fcp: -45%
  • confirmTx/lcp: +1284%
  • bridgeUserActions/bridge_load_page: +249%
  • bridgeUserActions/bridge_load_asset_picker: +117%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +43%
  • bridgeUserActions/inp: -25%
  • bridgeUserActions/lcp: +1242%

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

  • 🟡 loadNewAccount/FCP: p75 2.0s
  • 🟡 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/domInteractive: +47%
  • startupStandardHome/initialActions: -50%
  • startupStandardHome/fcp: +40%
  • startupPowerUserHome/uiStartup: +14%
  • startupPowerUserHome/backgroundConnect: +12%
  • startupPowerUserHome/firstReactRender: +14%
  • startupPowerUserHome/loadScripts: +10%
  • startupPowerUserHome/setupStore: +65%
  • startupPowerUserHome/inp: +18%
  • startupPowerUserHome/lcp: +14%

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

  • 🟡 startupPowerUserHome/INP: p75 232ms
  • 🟡 startupPowerUserHome/LCP: p75 3.4s
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]🔴 [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: -15%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -92%
  • onboardingImportWallet/longTaskCount: -100%
  • onboardingImportWallet/longTaskTotalDuration: -100%
  • onboardingImportWallet/longTaskMaxDuration: -100%
  • onboardingImportWallet/tbt: -100%
  • onboardingImportWallet/total: -79%
  • onboardingNewWallet/srpButtonToPwForm: +47%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +21%
  • onboardingNewWallet/doneButtonToAssetList: -80%
  • onboardingNewWallet/longTaskCount: -75%
  • onboardingNewWallet/longTaskTotalDuration: -100%
  • onboardingNewWallet/longTaskMaxDuration: -100%
  • onboardingNewWallet/tbt: -100%
  • onboardingNewWallet/total: -76%
  • solanaAssetDetails/assetClickToPriceChart: -63%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: -63%
  • solanaAssetDetails/inp: +22%
  • solanaAssetDetails/lcp: -66%
  • solanaAssetDetails/cls: -88%
  • importSrpHome/loginToHomeScreen: -16%
  • importSrpHome/homeAfterImportWithNewWallet: -39%
  • importSrpHome/longTaskCount: -35%
  • importSrpHome/longTaskTotalDuration: -41%
  • importSrpHome/tbt: -41%
  • importSrpHome/total: -37%
  • importSrpHome/cls: +39%
  • sendTransactions/openSendPageFromHome: -33%
  • sendTransactions/selectTokenToSendFormLoaded: +20%
  • sendTransactions/reviewTransactionToConfirmationPage: -97%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -89%
  • sendTransactions/cls: -28%
  • swap/openSwapPageFromHome: -22%
  • swap/fetchAndDisplaySwapQuotes: +90%
  • swap/longTaskCount: -100%
  • swap/longTaskTotalDuration: -100%
  • swap/longTaskMaxDuration: -100%
  • swap/tbt: -100%
  • swap/total: +91%
  • swap/lcp: -70%
  • swap/cls: -88%

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

  • 🟡 importSrpHome/INP: p75 272ms
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 2.0s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 105 Bytes (0%)
  • ui: 45 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 39 Bytes (0%)

@socket-security

socket-security Bot commented Jul 22, 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
Updatedsass-loader@​14.1.1 ⏵ 17.0.099 +110010090100

View full report

@github-actions github-actions Bot added size-XL and removed size-S labels Jul 22, 2026
@davidmurdoch

Copy link
Copy Markdown
Contributor Author

@metamaskbot update-policies

@metamask-ci

metamask-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

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/webpack/mv2/beta/policy.json changes match lavamoat/webpack/mv2/main/policy.json changes
✅ lavamoat/webpack/mv2/experimental/policy.json changes match lavamoat/webpack/mv2/main/policy.json changes
✅ lavamoat/webpack/mv2/flask/policy.json changes match lavamoat/webpack/mv2/main/policy.json changes
✅ lavamoat/webpack/mv3/beta/policy.json changes match lavamoat/webpack/mv3/main/policy.json changes
✅ lavamoat/webpack/mv3/experimental/policy.json changes match lavamoat/webpack/mv3/main/policy.json changes
✅ lavamoat/webpack/mv3/flask/policy.json changes match lavamoat/webpack/mv3/main/policy.json changes

@metamask-ci

metamask-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor
Builds ready [94bfcc0]
⚡ Performance Benchmarks (Total: 🟢 15 pass · 🟡 8 warn · 🔴 1 fail)

Baseline (latest main): 2aa9b93 | Date: 7/22/2026 | Pipeline: 29958440894 | 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]
🟡 bridge_search_token

📈 Results compared to the previous 5 runs on main

  • bridgeUserActions/bridge_load_page: -27%
  • bridgeUserActions/bridge_load_asset_picker: +13%
  • bridgeUserActions/longTaskCount: +25%
  • bridgeUserActions/longTaskTotalDuration: +21%
  • bridgeUserActions/inp: -12%
  • loadNewAccount/inp: +34%
  • loadNewAccount/fcp: -49%
  • loadNewAccount/lcp: +1165%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/inp: -24%
  • confirmTx/lcp: +1228%
  • bridgeUserActions/bridge_load_page: +92%
  • bridgeUserActions/bridge_load_asset_picker: +98%
  • bridgeUserActions/bridge_search_token: +226%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +187%
  • bridgeUserActions/inp: -26%
  • bridgeUserActions/lcp: +1159%

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

  • 🟡 confirmTx/FCP: p75 1.9s
  • 🟡 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: +13%
  • startupStandardHome/domInteractive: -29%
  • startupStandardHome/fcp: -30%
  • startupPowerUserHome/uiStartup: +16%
  • startupPowerUserHome/load: +14%
  • startupPowerUserHome/domContentLoaded: +14%
  • startupPowerUserHome/domInteractive: +17%
  • startupPowerUserHome/backgroundConnect: +19%
  • startupPowerUserHome/firstReactRender: +11%
  • startupPowerUserHome/loadScripts: +12%
  • startupPowerUserHome/setupStore: -85%
  • startupPowerUserHome/fcp: +16%
  • startupPowerUserHome/lcp: +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]
🔴 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/confirmSrpToPwForm: +23%
  • onboardingImportWallet/pwFormToMetricsScreen: +11%
  • onboardingImportWallet/doneButtonToHomeScreen: -82%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -18%
  • onboardingImportWallet/longTaskCount: -91%
  • onboardingImportWallet/longTaskTotalDuration: -96%
  • onboardingImportWallet/longTaskMaxDuration: -92%
  • onboardingImportWallet/tbt: -99%
  • onboardingImportWallet/total: -81%
  • onboardingNewWallet/longTaskCount: -74%
  • onboardingNewWallet/longTaskTotalDuration: -78%
  • onboardingNewWallet/longTaskMaxDuration: -36%
  • onboardingNewWallet/tbt: -82%
  • solanaAssetDetails/assetClickToPriceChart: -66%
  • solanaAssetDetails/total: -66%
  • solanaAssetDetails/fcp: +11%
  • solanaAssetDetails/cls: -83%
  • importSrpHome/loginToHomeScreen: -14%
  • importSrpHome/homeAfterImportWithNewWallet: -30%
  • importSrpHome/longTaskCount: -50%
  • importSrpHome/longTaskTotalDuration: -39%
  • importSrpHome/tbt: -38%
  • importSrpHome/total: -28%
  • importSrpHome/inp: -13%
  • importSrpHome/cls: +52%
  • sendTransactions/openSendPageFromHome: -20%
  • sendTransactions/selectTokenToSendFormLoaded: -45%
  • sendTransactions/reviewTransactionToConfirmationPage: -98%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -95%
  • sendTransactions/inp: -28%
  • sendTransactions/lcp: -16%
  • sendTransactions/cls: -24%
  • swap/openSwapPageFromHome: -39%
  • swap/fetchAndDisplaySwapQuotes: +104%
  • swap/longTaskCount: -100%
  • swap/longTaskTotalDuration: -100%
  • swap/longTaskMaxDuration: -100%
  • swap/tbt: -100%
  • swap/total: +101%
  • swap/lcp: -68%
  • swap/cls: -88%

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

  • 🟡 importSrpHome/INP: p75 248ms
  • 🟡 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: -24%
  • dappPageLoad/domContentLoaded: -20%
  • dappPageLoad/firstPaint: -15%
  • dappPageLoad/firstContentfulPaint: -15%
Bundle size diffs
  • background: -77 Bytes (0%)
  • ui: -109 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: -357 Bytes (0%)

@davidmurdoch
davidmurdoch marked this pull request as ready for review July 31, 2026 20:19
@davidmurdoch
davidmurdoch requested review from a team and itsyoboieltr as code owners July 31, 2026 20:19
@sonarqubecloud

Copy link
Copy Markdown

@metamask-ci

metamask-ci Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor
Builds ready [48cfc38]
⚡ Performance Benchmarks (Total: 🟢 13 pass · 🟡 10 warn · 🔴 1 fail)

Baseline (latest main): 171ed20 | Date: 7/28/2026 | Pipeline: 30662467912 | 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]
🟡 load_new_account
🟡 [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: +18%
  • loadNewAccount/total: +18%
  • confirmTx/longTaskTotalDuration: -22%
  • confirmTx/longTaskMaxDuration: +23%
  • confirmTx/tbt: -39%
  • bridgeUserActions/bridge_load_asset_picker: +25%
  • bridgeUserActions/longTaskCount: -44%
  • bridgeUserActions/longTaskTotalDuration: -61%
  • bridgeUserActions/longTaskMaxDuration: -41%
  • bridgeUserActions/tbt: -98%
  • loadNewAccount/load_new_account: +25%
  • loadNewAccount/total: +25%
  • loadNewAccount/fcp: -43%
  • loadNewAccount/lcp: +1267%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/fcp: +19%
  • confirmTx/lcp: +1363%
  • bridgeUserActions/bridge_load_page: +222%
  • bridgeUserActions/bridge_load_asset_picker: +68%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +23%
  • bridgeUserActions/fcp: +13%
  • bridgeUserActions/lcp: +1243%

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

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

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -32%
  • startupStandardHome/load: -30%
  • startupStandardHome/domContentLoaded: -31%
  • startupStandardHome/domInteractive: -30%
  • startupStandardHome/firstPaint: -20%
  • startupStandardHome/backgroundConnect: -31%
  • startupStandardHome/firstReactRender: -99%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -31%
  • startupStandardHome/setupStore: -32%
  • startupStandardHome/numNetworkReqs: -14%
  • startupStandardHome/longTaskCount: -33%
  • startupStandardHome/longTaskTotalDuration: -38%
  • startupStandardHome/longTaskMaxDuration: -32%
  • startupStandardHome/tbt: -39%
  • startupStandardHome/inp: -43%
  • startupStandardHome/fcp: -29%
  • startupStandardHome/lcp: +215%
  • startupStandardHome/domInteractive: -24%
  • startupStandardHome/firstReactRender: -99%
  • startupStandardHome/initialActions: -50%
  • startupStandardHome/numNetworkReqs: -13%
  • startupStandardHome/fcp: -21%
  • startupPowerUserHome/uiStartup: -36%
  • startupPowerUserHome/load: -22%
  • startupPowerUserHome/domContentLoaded: -22%
  • startupPowerUserHome/domInteractive: -14%
  • startupPowerUserHome/backgroundConnect: -34%
  • startupPowerUserHome/firstReactRender: -99%
  • startupPowerUserHome/initialActions: -44%
  • startupPowerUserHome/loadScripts: -22%
  • startupPowerUserHome/setupStore: -82%
  • startupPowerUserHome/inp: -32%
  • startupPowerUserHome/fcp: -11%
  • startupPowerUserHome/lcp: -26%
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/confirmSrpToPwForm: +14%
  • onboardingImportWallet/metricsToWalletReadyScreen: +22%
  • onboardingImportWallet/doneButtonToHomeScreen: -79%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -51%
  • onboardingImportWallet/longTaskCount: -71%
  • onboardingImportWallet/longTaskTotalDuration: -92%
  • onboardingImportWallet/longTaskMaxDuration: -92%
  • onboardingImportWallet/tbt: -99%
  • onboardingImportWallet/total: -81%
  • onboardingNewWallet/srpButtonToPwForm: -12%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -11%
  • onboardingNewWallet/longTaskCount: -69%
  • onboardingNewWallet/longTaskTotalDuration: -78%
  • onboardingNewWallet/longTaskMaxDuration: -48%
  • onboardingNewWallet/tbt: -95%
  • solanaAssetDetails/assetClickToPriceChart: +195%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: +195%
  • solanaAssetDetails/inp: -29%
  • solanaAssetDetails/cls: +15%
  • importSrpHome/loginToHomeScreen: -13%
  • importSrpHome/homeAfterImportWithNewWallet: -14%
  • importSrpHome/longTaskCount: -23%
  • importSrpHome/longTaskTotalDuration: -25%
  • importSrpHome/longTaskMaxDuration: -21%
  • importSrpHome/tbt: -31%
  • importSrpHome/total: -13%
  • importSrpHome/inp: -33%
  • importSrpHome/cls: +417%
  • sendTransactions/openSendPageFromHome: +103%
  • sendTransactions/selectTokenToSendFormLoaded: +15%
  • sendTransactions/reviewTransactionToConfirmationPage: -98%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -94%
  • sendTransactions/inp: -26%
  • sendTransactions/lcp: -57%
  • sendTransactions/cls: +171%
  • swap/openSwapPageFromHome: +246%
  • swap/fetchAndDisplaySwapQuotes: +121%
  • swap/longTaskCount: -100%
  • swap/longTaskTotalDuration: -100%
  • swap/longTaskMaxDuration: -100%
  • swap/tbt: -100%
  • swap/total: +123%
  • swap/lcp: -71%
  • swap/cls: -92%

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

  • 🟡 importSrpHome/INP: p75 208ms
  • 🟡 swap/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 105 Bytes (0%)
  • ui: 50 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 51 Bytes (0%)

@metamask-ci

metamask-ci Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor
Builds ready [48cfc38]
⚡ Performance Benchmarks (Total: 🟢 13 pass · 🟡 10 warn · 🔴 1 fail)

Baseline (latest main): 171ed20 | Date: 7/28/2026 | Pipeline: 30662467912 | 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]
🟡 load_new_account
🟡 [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: +18%
  • loadNewAccount/total: +18%
  • confirmTx/longTaskTotalDuration: -22%
  • confirmTx/longTaskMaxDuration: +23%
  • confirmTx/tbt: -39%
  • bridgeUserActions/bridge_load_asset_picker: +25%
  • bridgeUserActions/longTaskCount: -44%
  • bridgeUserActions/longTaskTotalDuration: -61%
  • bridgeUserActions/longTaskMaxDuration: -41%
  • bridgeUserActions/tbt: -98%
  • loadNewAccount/load_new_account: +25%
  • loadNewAccount/total: +25%
  • loadNewAccount/fcp: -43%
  • loadNewAccount/lcp: +1267%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/fcp: +19%
  • confirmTx/lcp: +1363%
  • bridgeUserActions/bridge_load_page: +222%
  • bridgeUserActions/bridge_load_asset_picker: +68%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +23%
  • bridgeUserActions/fcp: +13%
  • bridgeUserActions/lcp: +1243%

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

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

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -32%
  • startupStandardHome/load: -30%
  • startupStandardHome/domContentLoaded: -31%
  • startupStandardHome/domInteractive: -30%
  • startupStandardHome/firstPaint: -20%
  • startupStandardHome/backgroundConnect: -31%
  • startupStandardHome/firstReactRender: -99%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -31%
  • startupStandardHome/setupStore: -32%
  • startupStandardHome/numNetworkReqs: -14%
  • startupStandardHome/longTaskCount: -33%
  • startupStandardHome/longTaskTotalDuration: -38%
  • startupStandardHome/longTaskMaxDuration: -32%
  • startupStandardHome/tbt: -39%
  • startupStandardHome/inp: -43%
  • startupStandardHome/fcp: -29%
  • startupStandardHome/lcp: +215%
  • startupStandardHome/domInteractive: -24%
  • startupStandardHome/firstReactRender: -99%
  • startupStandardHome/initialActions: -50%
  • startupStandardHome/numNetworkReqs: -13%
  • startupStandardHome/fcp: -21%
  • startupPowerUserHome/uiStartup: -36%
  • startupPowerUserHome/load: -22%
  • startupPowerUserHome/domContentLoaded: -22%
  • startupPowerUserHome/domInteractive: -14%
  • startupPowerUserHome/backgroundConnect: -34%
  • startupPowerUserHome/firstReactRender: -99%
  • startupPowerUserHome/initialActions: -44%
  • startupPowerUserHome/loadScripts: -22%
  • startupPowerUserHome/setupStore: -82%
  • startupPowerUserHome/inp: -32%
  • startupPowerUserHome/fcp: -11%
  • startupPowerUserHome/lcp: -26%
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/confirmSrpToPwForm: +14%
  • onboardingImportWallet/metricsToWalletReadyScreen: +22%
  • onboardingImportWallet/doneButtonToHomeScreen: -79%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -51%
  • onboardingImportWallet/longTaskCount: -71%
  • onboardingImportWallet/longTaskTotalDuration: -92%
  • onboardingImportWallet/longTaskMaxDuration: -92%
  • onboardingImportWallet/tbt: -99%
  • onboardingImportWallet/total: -81%
  • onboardingNewWallet/srpButtonToPwForm: -12%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -11%
  • onboardingNewWallet/longTaskCount: -69%
  • onboardingNewWallet/longTaskTotalDuration: -78%
  • onboardingNewWallet/longTaskMaxDuration: -48%
  • onboardingNewWallet/tbt: -95%
  • solanaAssetDetails/assetClickToPriceChart: +195%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: +195%
  • solanaAssetDetails/inp: -29%
  • solanaAssetDetails/cls: +15%
  • importSrpHome/loginToHomeScreen: -13%
  • importSrpHome/homeAfterImportWithNewWallet: -14%
  • importSrpHome/longTaskCount: -23%
  • importSrpHome/longTaskTotalDuration: -25%
  • importSrpHome/longTaskMaxDuration: -21%
  • importSrpHome/tbt: -31%
  • importSrpHome/total: -13%
  • importSrpHome/inp: -33%
  • importSrpHome/cls: +417%
  • sendTransactions/openSendPageFromHome: +103%
  • sendTransactions/selectTokenToSendFormLoaded: +15%
  • sendTransactions/reviewTransactionToConfirmationPage: -98%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -94%
  • sendTransactions/inp: -26%
  • sendTransactions/lcp: -57%
  • sendTransactions/cls: +171%
  • swap/openSwapPageFromHome: +246%
  • swap/fetchAndDisplaySwapQuotes: +121%
  • swap/longTaskCount: -100%
  • swap/longTaskTotalDuration: -100%
  • swap/longTaskMaxDuration: -100%
  • swap/tbt: -100%
  • swap/total: +123%
  • swap/lcp: -71%
  • swap/cls: -92%

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

  • 🟡 importSrpHome/INP: p75 208ms
  • 🟡 swap/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 105 Bytes (0%)
  • ui: 50 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 51 Bytes (0%)

@metamask-ci

metamask-ci Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor
Builds ready [48cfc38]
⚡ Performance Benchmarks (Total: 🟢 13 pass · 🟡 10 warn · 🔴 1 fail)

Baseline (latest main): 171ed20 | Date: 7/28/2026 | Pipeline: 30662467912 | 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]
🟡 load_new_account
🟡 [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: +18%
  • loadNewAccount/total: +18%
  • confirmTx/longTaskTotalDuration: -22%
  • confirmTx/longTaskMaxDuration: +23%
  • confirmTx/tbt: -39%
  • bridgeUserActions/bridge_load_asset_picker: +25%
  • bridgeUserActions/longTaskCount: -44%
  • bridgeUserActions/longTaskTotalDuration: -61%
  • bridgeUserActions/longTaskMaxDuration: -41%
  • bridgeUserActions/tbt: -98%
  • loadNewAccount/load_new_account: +25%
  • loadNewAccount/total: +25%
  • loadNewAccount/fcp: -43%
  • loadNewAccount/lcp: +1267%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/fcp: +19%
  • confirmTx/lcp: +1363%
  • bridgeUserActions/bridge_load_page: +222%
  • bridgeUserActions/bridge_load_asset_picker: +68%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +23%
  • bridgeUserActions/fcp: +13%
  • bridgeUserActions/lcp: +1243%

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

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

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -32%
  • startupStandardHome/load: -30%
  • startupStandardHome/domContentLoaded: -31%
  • startupStandardHome/domInteractive: -30%
  • startupStandardHome/firstPaint: -20%
  • startupStandardHome/backgroundConnect: -31%
  • startupStandardHome/firstReactRender: -99%
  • startupStandardHome/initialActions: -33%
  • startupStandardHome/loadScripts: -31%
  • startupStandardHome/setupStore: -32%
  • startupStandardHome/numNetworkReqs: -14%
  • startupStandardHome/longTaskCount: -33%
  • startupStandardHome/longTaskTotalDuration: -38%
  • startupStandardHome/longTaskMaxDuration: -32%
  • startupStandardHome/tbt: -39%
  • startupStandardHome/inp: -43%
  • startupStandardHome/fcp: -29%
  • startupStandardHome/lcp: +215%
  • startupStandardHome/domInteractive: -24%
  • startupStandardHome/firstReactRender: -99%
  • startupStandardHome/initialActions: -50%
  • startupStandardHome/numNetworkReqs: -13%
  • startupStandardHome/fcp: -21%
  • startupPowerUserHome/uiStartup: -36%
  • startupPowerUserHome/load: -22%
  • startupPowerUserHome/domContentLoaded: -22%
  • startupPowerUserHome/domInteractive: -14%
  • startupPowerUserHome/backgroundConnect: -34%
  • startupPowerUserHome/firstReactRender: -99%
  • startupPowerUserHome/initialActions: -44%
  • startupPowerUserHome/loadScripts: -22%
  • startupPowerUserHome/setupStore: -82%
  • startupPowerUserHome/inp: -32%
  • startupPowerUserHome/fcp: -11%
  • startupPowerUserHome/lcp: -26%
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/confirmSrpToPwForm: +14%
  • onboardingImportWallet/metricsToWalletReadyScreen: +22%
  • onboardingImportWallet/doneButtonToHomeScreen: -79%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -51%
  • onboardingImportWallet/longTaskCount: -71%
  • onboardingImportWallet/longTaskTotalDuration: -92%
  • onboardingImportWallet/longTaskMaxDuration: -92%
  • onboardingImportWallet/tbt: -99%
  • onboardingImportWallet/total: -81%
  • onboardingNewWallet/srpButtonToPwForm: -12%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -11%
  • onboardingNewWallet/longTaskCount: -69%
  • onboardingNewWallet/longTaskTotalDuration: -78%
  • onboardingNewWallet/longTaskMaxDuration: -48%
  • onboardingNewWallet/tbt: -95%
  • solanaAssetDetails/assetClickToPriceChart: +195%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: +195%
  • solanaAssetDetails/inp: -29%
  • solanaAssetDetails/cls: +15%
  • importSrpHome/loginToHomeScreen: -13%
  • importSrpHome/homeAfterImportWithNewWallet: -14%
  • importSrpHome/longTaskCount: -23%
  • importSrpHome/longTaskTotalDuration: -25%
  • importSrpHome/longTaskMaxDuration: -21%
  • importSrpHome/tbt: -31%
  • importSrpHome/total: -13%
  • importSrpHome/inp: -33%
  • importSrpHome/cls: +417%
  • sendTransactions/openSendPageFromHome: +103%
  • sendTransactions/selectTokenToSendFormLoaded: +15%
  • sendTransactions/reviewTransactionToConfirmationPage: -98%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -94%
  • sendTransactions/inp: -26%
  • sendTransactions/lcp: -57%
  • sendTransactions/cls: +171%
  • swap/openSwapPageFromHome: +246%
  • swap/fetchAndDisplaySwapQuotes: +121%
  • swap/longTaskCount: -100%
  • swap/longTaskTotalDuration: -100%
  • swap/longTaskMaxDuration: -100%
  • swap/tbt: -100%
  • swap/total: +123%
  • swap/lcp: -71%
  • swap/cls: -92%

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

  • 🟡 importSrpHome/INP: p75 208ms
  • 🟡 swap/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 105 Bytes (0%)
  • ui: 50 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 51 Bytes (0%)

@MajorLift

MajorLift commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Trial run of the MetaMask LavaMoat policy skill
feedback welcome, on the finding or on whether this format is useful to a reviewer.
Not a review verdict; nothing here blocks the PR.

LavaMoat grants — sass-loader 14.1.1 → 17.0.0 (lavamoat/webpack/build/policy.json)

Three grants in the hand-written override are unreferenced after this bump, and the new node:url
grant is wider than its use. A build test does not settle whether the grants are removable — see below.

capability surface used what it does breadth
node:url fileURLToPath, pathToFileURL — 2 of the module's exports converts between Sass file: URLs and OS paths: dependency registration from an error's span.url, sassOptions.url for the compile, containingUrl in the importer's canonicalize, file: sources in source maps wider than its use — bare node:url grants URL, URLSearchParams, parse, format, domainToASCII for two string-conversion functions
node:path isAbsolute, extname, join, dirname, basename, normalize, resolve absolute/relative classification, extension branch that emits .css imports as plain CSS @import, include-path joining, source-map normalisation all string manipulation, no filesystem access
url, path, util not referenced at any spelling set by hand in policy-override.json in #38209 (2026-01-13), when v14 imported the unprefixed specifiers

Those three do not come from the generator: they are an explicit sass-loader entry in the
override, which forces them into the merged policy whatever the generated policy.json says.
That is why they survive a regeneration that pruned webpack>neo-async in the same run.

The four files package.json exports are the whole shipped surface, and each imports only the
node:-prefixed forms — dist/cjs/index.js,
dist/cjs/utils.js,
dist/esm/index.js,
dist/esm/utils.js.

Suggested change to lavamoat/webpack/build/policy-override.json — the existing entry, packages and globals untouched:

     "sass-loader": {
       "builtin": {
-        "url": true,
-        "path": true,
-        "util": true
+        "node:url.fileURLToPath": true,
+        "node:url.pathToFileURL": true,
+        "node:url": false
       },
       "packages": {
         "sass-embedded": true
       },

node:path needs no override line — the generated policy grants it. Dotted paths are already used
in this file: copy-webpack-plugin>serialize-javascript is granted
crypto.getRandomValues, not bare crypto.

Removed by this bump: webpack>neo-async — v17 dropped the dependency.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants