metamask-extension icon indicating copy to clipboard operation
metamask-extension copied to clipboard

feat: add jest-clean-console-reporter

Open gauthierpetetin opened this issue 1 month ago • 7 comments

Description

Reason for change: Test output was cluttered with thousands of repeated console warnings (e.g., 2,300+ identical "Background connection is not set" warnings), making it difficult to spot real issues and slowing down test debugging.

Improvement/solution: Added jest-clean-console-reporter to group and summarize console warnings/errors during test runs. This reduces test output noise by ~99.97% (from ~50,000+ lines to ~15 lines) while preserving all warning information in organized categories.

Changes:

  • Installed jest-clean-console-reporter package with Chalk v4 resolution for Node v24 compatibility
  • Created comprehensive rule files:
    • test/jest/console-reporter-rules-unit.js (38 rules covering ~83% of warnings)
    • test/jest/console-reporter-rules-integration.js (27 rules covering ~100% of warnings)
  • Updated Jest configurations (jest.config.js and jest.integration.config.js) to use the reporter
  • Created test/jest/summary-reporter.js wrapper for SummaryReporter (required for Node v24 strict package exports)
  • Added documentation: test/jest/CONSOLE-REPORTER.md

Top warnings now grouped:

  • Background connection not initialized (2,300 occurrences)
  • Reselect identity function warnings (1,163 occurrences)
  • Invalid theme warnings (700+ occurrences)
  • Reselect input stability warnings (533 occurrences)
  • React act warnings (338+ occurrences)

Open in GitHub Codespaces

Slack thread where this has been discussed

Changelog

CHANGELOG entry: null

Related issues

Fixes: https://github.com/MetaMask/MetaMask-planning/issues/5286

Manual testing steps

  1. Run unit tests: yarn test:unit
  2. Verify the test output shows a clean summary section at the end with grouped console messages
  3. Run integration tests: yarn test:integration
  4. Verify similar clean summary output appears for integration tests
  5. Compare with previous behavior by temporarily commenting out the reporter in jest.config.js to see the difference

Screenshots/Recordings

Before

Test output contained thousands of repeated warnings, making it impossible to identify real issues:

Warning: Background connection is not set...
Warning: Background connection is not set...
... (2,300+ identical lines)
Warning: An update to Component inside a test was not wrapped in act...
Warning: An update to Component inside a test was not wrapped in act...
... (hundreds more identical lines)

After

Test output now shows a clean, organized summary:

● Suppressed console messages:

ERROR 126   React: Act warnings (component updates not wrapped)
WARN 170   MetaMask: Background connection not initialized
WARN 85    Reselect: Identity function warnings
WARN 66    Reselect: Input stability warnings
WARN 56    MetaMask: Invalid theme warnings

Example for unit tests: Screenshot 2025-11-24 at 20 36 51

Example for integration tests: Screenshot 2025-11-24 at 20 37 56

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] Integrates jest-clean-console-reporter into unit and integration Jest configs with custom rules, adding the package and Chalk resolution to reduce noisy console output.

  • Testing/Infrastructure:
    • Jest reporters: Replace default reporter with jest-clean-console-reporter and add summary in jest.config.js and jest.integration.config.js, wired to rule sets via rules: consoleReporterRules.
    • Rules: Add test/jest/console-reporter-rules-unit.js and test/jest/console-reporter-rules-integration.js defining grouped suppression for common warnings/errors.
  • Dependencies:
    • Add jest-clean-console-reporter to devDependencies and resolution jest-clean-console-reporter/chalk@^4.1.2 in package.json (lockfile updated).

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

gauthierpetetin avatar Nov 24 '25 19:11 gauthierpetetin

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.

github-actions[bot] avatar Nov 24 '25 19:11 github-actions[bot]

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

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedjest-clean-console-reporter@​0.3.08710010076100

View full report

socket-security[bot] avatar Nov 24 '25 19:11 socket-security[bot]

Builds ready [0110727]
UI Startup Metrics (1222 ± 102 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12221024150810212901423
load102084912518710671185
domContentLoaded101384412408610601181
domInteractive2514112202181
firstPaint51885126539610021170
backgroundConnect21219224610217230
firstReactRender311981113352
getState371598174585
initialActions105113
loadScripts807653103686848970
setupStore1264061220
numNetworkReqs1257720573
BrowserifyPower User HomeuiStartup20891667270626422412639
load1024901151813110181375
domContentLoaded1009894151413110051367
domInteractive35181652833118
firstPaint54310614193909591307
backgroundConnect260201712111230551
firstReactRender59401111564102
getState19014473389185221
initialActions108113
loadScripts80268713111317941174
setupStore20125072338
numNetworkReqs1657137770206335
WebpackStandard HomeuiStartup819697106079856976
load63456584371650805
domContentLoaded62956183570647799
domInteractive2615138232292
firstPaint24275843195195776
backgroundConnect11579111227
firstReactRender28197083239
getState271373123748
initialActions104111
loadScripts62655882969645790
setupStore1164961319
numNetworkReqs1257821575
WebpackPower User HomeuiStartup16691295230424018992077
load677576100093682935
domContentLoaded66757199694675930
domInteractive37181753334131
firstPaint31386973217380705
backgroundConnect65769414419512
firstReactRender614392106880
getState18313965584176217
initialActions104112
loadScripts66456998892672921
setupStore221073132352
numNetworkReqs1687141376212343
FirefoxBrowserifyStandard HomeuiStartup12951076169615514171607
load1063932137910511341296
domContentLoaded1062932137910511331296
domInteractive63312083585119
firstPaint------
backgroundConnect47221633165104
firstReactRender22184352334
getState176211321176
initialActions103012
loadScripts103591613639310951242
setupStore146162191058
numNetworkReqs1256817663
BrowserifyPower User HomeuiStartup24721892425843025413569
load1105922155714110961453
domContentLoaded1105922155714110951453
domInteractive11235467102104456
firstPaint------
backgroundConnect972741670108303
firstReactRender5837133176485
getState231661273200227734
initialActions3042627
loadScripts1071907149413010691411
setupStore1699884202224670
numNetworkReqs102602906185250
WebpackStandard HomeuiStartup15621278217318316331976
load12711091155410313171459
domContentLoaded12711090155410313171458
domInteractive62261603388121
firstPaint------
backgroundConnect51211913251118
firstReactRender27198472838
getState206223331478
initialActions103122
loadScripts1243107515279612911408
setupStore196171271473
numNetworkReqs1256716762
WebpackPower User HomeuiStartup29562086607273431704596
load14361170300736413962313
domContentLoaded14351170300636413952312
domInteractive1092956711794425
firstPaint------
backgroundConnect169341115225149965
firstReactRender64372622867121
getState302731419249409806
initialActions204123
loadScripts13801132285232913502022
setupStore15451176229155651
numNetworkReqs103612576180250
📊 Page Load Benchmark Results

Current Commit: 0110727 | Date: 11/28/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±54ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 708ms (±50ms) 🟢 | historical mean value: 721ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 80ms (±12ms) 🟢 | historical mean value: 78ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 54ms 958ms 1.28s 1.08s 1.28s
domContentLoaded 708ms 50ms 662ms 953ms 753ms 953ms
firstPaint 80ms 12ms 68ms 176ms 92ms 176ms
firstContentfulPaint 80ms 12ms 68ms 176ms 92ms 176ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 11.45 KiB (0.25%)
  • ui: 295.15 KiB (3.96%)
  • common: 59 KiB (0.67%)

metamaskbot avatar Nov 28 '25 08:11 metamaskbot

Builds ready [f278f8f]
UI Startup Metrics (1221 ± 128 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12211006168512813121416
load1022819141610911161173
domContentLoaded1015816141010811071168
domInteractive251598212089
firstPaint64794127440510441158
backgroundConnect20018025213206224
firstReactRender301860103549
getState3614118184175
initialActions105113
loadScripts8236331177104904979
setupStore1272751425
numNetworkReqs1156918564
BrowserifyPower User HomeuiStartup19911567256721921362399
load1007880147512110311316
domContentLoaded996869146312210241308
domInteractive31171232328100
firstPaint4759314993649261049
backgroundConnect271200856139240668
firstReactRender51399085562
getState18714165955199254
initialActions103112
loadScripts78767112221178131095
setupStore1674361635
numNetworkReqs79641602275145
WebpackStandard HomeuiStartup809695105179840981
load62556088167642777
domContentLoaded62155687565637772
domInteractive2615118212187
firstPaint24088846180201656
backgroundConnect953051126
firstReactRender2819238223135
getState26144893642
initialActions103112
loadScripts61855486564634763
setupStore1053041219
numNetworkReqs1056516558
WebpackPower User HomeuiStartup16771284246327018982202
load6976011116110693966
domContentLoaded6885951107109684958
domInteractive37172603630120
firstPaint296911114232263931
backgroundConnect126867621394572
firstReactRender6045100116782
getState17913925420190215
initialActions106112
loadScripts6865931105108683950
setupStore19769131747
numNetworkReqs79622512974151
FirefoxBrowserifyStandard HomeuiStartup12941072167013813841583
load108292614969411431235
domContentLoaded108192614969411421235
domInteractive57311632883109
firstPaint------
backgroundConnect47211493145115
firstReactRender22183742233
getState146199241036
initialActions102112
loadScripts105291214728611081198
setupStore12686121034
numNetworkReqs1256416762
BrowserifyPower User HomeuiStartup29952045532289438744572
load1382936282451013772492
domContentLoaded1381936282451013772491
domInteractive11332985124118281
firstPaint------
backgroundConnect3082220594153941219
firstReactRender61361512474124
getState263811070225272794
initialActions2143423
loadScripts1209922262534112242214
setupStore14151146226110689
numNetworkReqs77511382177127
WebpackStandard HomeuiStartup15261305205816416181900
load1248107315359513101439
domContentLoaded1247107315349513101439
domInteractive59262113380118
firstPaint------
backgroundConnect54202123370104
firstReactRender2920145162940
getState176204281365
initialActions103122
loadScripts1217105814718812841382
setupStore155111161249
numNetworkReqs1256717763
WebpackPower User HomeuiStartup32782107554188742764901
load16971175286758623512800
domContentLoaded16971175286658623512800
domInteractive1653211302501481005
firstPaint------
backgroundConnect2522012903343271194
firstReactRender69382833370144
getState353822020356551910
initialActions2131327
loadScripts15651154284348615782695
setupStore109477516893571
numNetworkReqs76571282173121
📊 Page Load Benchmark Results

Current Commit: f278f8f | Date: 12/4/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±64ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 744ms (±62ms) 🟢 | historical mean value: 724ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±11ms) 🟢 | historical mean value: 78ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 64ms 1.02s 1.36s 1.27s 1.36s
domContentLoaded 744ms 62ms 709ms 1.03s 945ms 1.03s
firstPaint 79ms 11ms 60ms 180ms 88ms 180ms
firstContentfulPaint 79ms 11ms 60ms 180ms 88ms 180ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 132 Bytes (0%)

metamaskbot avatar Dec 04 '25 10:12 metamaskbot

Builds ready [8461a1b]
UI Startup Metrics (1272 ± 93 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1272104615349313281444
load104387412787910881213
domContentLoaded103786912727910821205
domInteractive22165072239
firstPaint49777126439610061100
backgroundConnect22019627914229245
firstReactRender463388114968
getState3617120174073
initialActions105112
loadScripts823661105876865974
setupStore1262741323
numNetworkReqs86306630
BrowserifyPower User HomeuiStartup19521684272618720312321
load1097915135310111711281
domContentLoaded1087908134410011601256
domInteractive27185782946
firstPaint646105136044610811262
backgroundConnect265207732104249553
firstReactRender51418075368
getState20715076265228274
initialActions102112
loadScripts8656961126999441036
setupStore17103971733
numNetworkReqs71592092566105
WebpackStandard HomeuiStartup83171398652854930
load64857180955688749
domContentLoaded64356780255684744
domInteractive21154272238
firstPaint20581723140201651
backgroundConnect12584101329
firstReactRender55332393554137
getState241388112946
initialActions102111
loadScripts64056579955682742
setupStore1063031015
numNetworkReqs86306624
WebpackPower User HomeuiStartup14501160200517015671766
load72458598399805893
domContentLoaded71758097298799886
domInteractive25167592645
firstPaint284102899229245851
backgroundConnect44764010924147
firstReactRender48408055057
getState18914067061191264
initialActions103111
loadScripts71457896998796884
setupStore1466591336
numNetworkReqs6657107106695
FirefoxBrowserifyStandard HomeuiStartup12881096176113113691577
load104892613798310961243
domContentLoaded104792613798310961243
domInteractive60322333483133
firstPaint------
backgroundConnect3822133223995
firstReactRender38286283956
getState136214241025
initialActions103122
loadScripts102391113517710541179
setupStore11575101024
numNetworkReqs86265724
BrowserifyPower User HomeuiStartup26311595403758831143401
load1608959256856221682358
domContentLoaded1608959256856321682358
domInteractive162321398307861050
firstPaint------
backgroundConnect1672312242381821040
firstReactRender5538103125785
getState1437932545170229
initialActions208123
loadScripts1529943255053520952311
setupStore3852956033216
numNetworkReqs70381331668120
WebpackStandard HomeuiStartup15471315188411116041797
load1266109115387913091455
domContentLoaded1266109015388013091454
domInteractive60272343780137
firstPaint------
backgroundConnect46211162350106
firstReactRender443499124566
getState147167171422
initialActions103122
loadScripts1241107614647612811429
setupStore1256061222
numNetworkReqs86275724
WebpackPower User HomeuiStartup27561717481261932433616
load17661106305153923312663
domContentLoaded17651106305053923312663
domInteractive2192815313681001034
firstPaint------
backgroundConnect123251059173147287
firstReactRender5734127166097
getState142701048100160230
initialActions217126
loadScripts17191081302652122602559
setupStore473117916224149
numNetworkReqs7058124137396
📊 Page Load Benchmark Results

Current Commit: 8461a1b | Date: 12/9/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±63ms) 🟡 | historical mean value: 1.06s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 744ms (±60ms) 🟢 | historical mean value: 738ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±10ms) 🟢 | historical mean value: 79ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 63ms 1.02s 1.33s 1.28s 1.33s
domContentLoaded 744ms 60ms 707ms 998ms 947ms 998ms
firstPaint 78ms 10ms 60ms 160ms 88ms 160ms
firstContentfulPaint 78ms 10ms 60ms 160ms 88ms 160ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: 71.36 KiB (1.37%)
  • ui: 1.63 KiB (0.02%)
  • common: -71.75 KiB (-0.8%)

metamaskbot avatar Dec 09 '25 10:12 metamaskbot

Here's a detailed README we ended up not including in the PR (removed in this commit: https://github.com/MetaMask/metamask-extension/pull/38208/commits/8b61b4ea8768ae670a37522b3286853de2e4fab2). I post it here as a comment, just in case we're looking for more detail about this PR some day:


Console Reporter for Jest Tests

We use jest-clean-console-reporter to group and summarize console warnings/errors during test runs, making it easier to spot real issues.

What It Does

Instead of seeing thousands of repeated warnings like:

Warning: Background connection is not set...
Warning: Background connection is not set...
Warning: Background connection is not set...
... (2,300 more times)

You'll see a clean summary:

● Suppressed console messages:

WARN 170   MetaMask: Background connection not initialized
WARN 85    Reselect: Identity function warnings
WARN 66    Reselect: Input stability warnings

Result: 99.97% reduction in test output noise.

Usage

The reporter runs automatically with unit and integration test commands:

yarn test:unit
yarn test:integration

No additional configuration needed!

How It Works

Rules are defined in separate files:

  • Unit tests: test/jest/console-reporter-rules-unit.js
  • Integration tests: test/jest/console-reporter-rules-integration.js

Each rule matches console messages and groups them by category. Rules are matched in order, so more specific patterns should come first.

Adding or Modifying Rules

Rule Structure

{
  match: /regex pattern/u,        // RegExp, string, or function
  group: 'Group Label',           // String to group by, or null to ignore
  keep: true,                     // (Optional) Keep in output AND summary
}

Examples

Group similar warnings:

{
  match: /Warning: componentWillMount has been renamed/u,
  group: 'React: componentWill* lifecycle deprecations',
}

Suppress a warning completely:

{
  match: /Some noisy warning we can't fix/u,
  group: null, // null = suppress completely
}

Match by log level:

{
  match: (_message, level) => level === 'log',
  group: null, // Ignore all console.log
}

Steps to Add a Rule

  1. Identify the warning pattern (run tests and note the exact message)
  2. Open the appropriate rules file:
    • Unit tests: test/jest/console-reporter-rules-unit.js
    • Integration tests: test/jest/console-reporter-rules-integration.js
  3. Add your rule to the appropriate category section
  4. Run tests to verify it works: yarn test:unit or yarn test:integration

Important: Always use the u flag with regex patterns for proper Unicode handling (required by ESLint).

Common Warning Categories

The rules cover these main categories:

  • MetaMask-specific: Background connection, theme validation, migrations
  • Reselect: Redux selector performance warnings (identity functions, input stability)
  • React: Act warnings, lifecycle deprecations, DOM nesting, PropTypes
  • Third-party: Library compatibility warnings
  • Test errors: Uncaught errors, fetch failures

Troubleshooting

Reporter not working?

  • Ensure jest-clean-console-reporter is installed: yarn install
  • Check that rules files exist and are properly formatted
  • Verify Jest config includes the reporter (already configured)

Warnings not being grouped?

  • Check your regex patterns (use the u flag!)
  • Test patterns in isolation
  • Try using a predicate function for complex matching
  • Rules are matched in order - put more specific patterns first

Want to see raw output for debugging?

  • Add keep: true to specific rules
  • Or temporarily comment out the reporter in jest.config.js

Initial Coverage

  • Unit tests: ~83% of warnings grouped (5,234 of 6,299 messages)
  • Integration tests: ~100% of warnings grouped (435 of 435 messages)

Top warnings being grouped:

  1. Background connection not initialized (2,300 occurrences)
  2. Reselect identity function warnings (1,163 occurrences)
  3. Invalid theme warnings (700+ occurrences)
  4. Reselect input stability warnings (533 occurrences)
  5. React act warnings (338+ occurrences)

Limitations

This reporter does NOT:

  • Create persistent snapshots
  • Fail CI on new warnings
  • Prevent regression

It only improves the display of console output during test runs. For regression prevention, a custom snapshot-based reporter would be needed.

References

gauthierpetetin avatar Dec 10 '25 15:12 gauthierpetetin

Builds ready [8b61b4e]
UI Startup Metrics (1284 ± 114 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12841014159611413691469
load105687013769711181239
domContentLoaded105085713699611111222
domInteractive261596192286
firstPaint47586121538810021170
backgroundConnect21519125811220237
firstReactRender4731103145678
getState40171422147104
initialActions107112
loadScripts8416621147939011007
setupStore1252951323
numNetworkReqs1367820672
BrowserifyPower User HomeuiStartup19521546242817120472296
load1095888143512011761320
domContentLoaded1085882141611911621314
domInteractive32171212330103
firstPaint55394143042110521261
backgroundConnect25019785793240559
firstReactRender51398685370
getState226139739127220696
initialActions102112
loadScripts86868912011179471096
setupStore1675371537
numNetworkReqs72581492169135
WebpackStandard HomeuiStartup824683111680876974
load66457793575713808
domContentLoaded65957292674708802
domInteractive2614119202285
firstPaint23484810176220707
backgroundConnect1166271029
firstReactRender54312093453133
getState291582123850
initialActions103112
loadScripts65656991673705799
setupStore1163051220
numNetworkReqs1367919774
WebpackPower User HomeuiStartup14071074207220615661759
load7235881077101812916
domContentLoaded7155831071101802910
domInteractive32151672727100
firstPaint359119880247664843
backgroundConnect70765314533533
firstReactRender50408165165
getState19414531938214281
initialActions103112
loadScripts7125811056100800907
setupStore1464481436
numNetworkReqs72572142667138
FirefoxBrowserifyStandard HomeuiStartup14491138249021515411816
load113795713759912081327
domContentLoaded113695613749912071327
domInteractive73312143795134
firstPaint------
backgroundConnect66232925578194
firstReactRender42328294461
getState23710831071224
initialActions103122
loadScripts110093913038611631248
setupStore156122171252
numNetworkReqs1569421873
BrowserifyPower User HomeuiStartup26181591372651830393349
load1635937255649320292386
domContentLoaded1635931255549320292386
domInteractive13530105523186909
firstPaint------
backgroundConnect224251114248236948
firstReactRender5536112135987
getState1318024241159218
initialActions208124
loadScripts1521923234445819532240
setupStore3943986542229
numNetworkReqs75561352370128
WebpackStandard HomeuiStartup16041343228418317251966
load13141106161611513731557
domContentLoaded13141106161511513721556
domInteractive843123646121166
firstPaint------
backgroundConnect55232173962152
firstReactRender44338884857
getState197153251658
initialActions103122
loadScripts12861091158710713451503
setupStore217243321685
numNetworkReqs1568621878
WebpackPower User HomeuiStartup27351637366653731823500
load18711131271651323802575
domContentLoaded18701124271651323802574
domInteractive242291000340243973
firstPaint------
backgroundConnect150261152192187393
firstReactRender5938131176497
getState1297823444161226
initialActions3146628
loadScripts18071115257148622882487
setupStore3153754839100
numNetworkReqs73501282169121
📊 Page Load Benchmark Results

Current Commit: 8b61b4e | Date: 12/10/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±54ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 730ms (±50ms) 🟢 | historical mean value: 718ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±11ms) 🟢 | historical mean value: 78ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 54ms 1.01s 1.37s 1.08s 1.37s
domContentLoaded 730ms 50ms 702ms 1.02s 764ms 1.02s
firstPaint 78ms 11ms 60ms 168ms 92ms 168ms
firstContentfulPaint 78ms 11ms 60ms 168ms 92ms 168ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 72.89 KiB (1.4%)
  • ui: -19.24 KiB (-0.25%)
  • common: -63.86 KiB (-0.71%)

metamaskbot avatar Dec 10 '25 15:12 metamaskbot

LGTM !

DDDDDanica avatar Dec 11 '25 14:12 DDDDDanica