Skip to content

feat(rewards): add points estimate history for CS diagnostics#39641

Merged
VGR-GIT merged 13 commits intomainfrom
feat/rwds-926-points-estimate-history
Feb 3, 2026
Merged

feat(rewards): add points estimate history for CS diagnostics#39641
VGR-GIT merged 13 commits intomainfrom
feat/rwds-926-points-estimate-history

Conversation

@VGR-GIT
Copy link
Contributor

@VGR-GIT VGR-GIT commented Jan 29, 2026

Description

Store the last 50 successful points estimates in state logs to help Customer Support verify user-reported discrepancies between estimated and awarded points.

Changelog

CHANGELOG entry: Added points estimate history tracking to state logs for Customer Support diagnostics


Note

Medium Risk
Persists and logs additional rewards-related request/response data (including account and activity details), which increases stored state/log surface area and could affect privacy/perf if misused. Functional risk is contained by bounding history to 50 entries and isolating history-write failures from estimatePoints() results.

Overview
Adds rewardsPointsEstimateHistory to RewardsController state and defaults, persisting it and including it in state logs for Customer Support diagnostics.

estimatePoints() now records each successful estimate (flattened request context for swap/perps/shield plus response and timestamp) via addPointsEstimateToHistory, keeps most-recent-first, and caps history at 50 entries while swallowing/logging history-update errors.

Wires the new state field through background state typing and test fixtures/state snapshots, and explicitly excludes it from Sentry background state attachment.

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

Store the last 20 successful points estimates in state logs to help
Customer Support verify user-reported discrepancies between estimated
and awarded points.

Changes:
- Add PointsEstimateHistoryEntry type for history entries
- Add rewardsPointsEstimateHistory to RewardsControllerState
- Track successful estimatePoints calls with timestamp, activity type,
  account, points estimate, and bonus bips
- Maintain bounded history (max 20 entries, most recent first)
- Include in state logs for CS access (includeInStateLogs: true)

Resolves: RWDS-926

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link
Contributor

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

@metamaskbot metamaskbot added team-rewards Rewards team INVALID-PR-TEMPLATE PR's body doesn't match template labels Jan 29, 2026
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 29, 2026

Builds ready [ce2f90e]
UI Startup Metrics (1351 ± 102 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13511138171410214101507
load--1140936149310412131308
domContentLoaded--1134927148310412031302
domInteractive--2816109202482
firstPaint--1496734075204306
backgroundConnect--24522828412249276
firstReactRender--1996572133
initialActions--1010113
loadScripts--90371212461049741068
setupStore--1464471730
numNetworkReqs--221585171572
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--264216189314143225005676
load--1142968183616412011502
domContentLoaded--1120960172215311821463
domInteractive--38191422739111
firstPaint--230731743270239467
backgroundConnect--70627839198684513054
firstReactRender--24155882538
initialActions--104112
loadScripts--88171714101449351209
setupStore--1655171927
numNetworkReqs--1295035962152249
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--8516821110949191019
load--69960593574761822
domContentLoaded--69360192974755813
domInteractive--251685182278
firstPaint--1066028750144213
backgroundConnect--39181322440105
firstReactRender--15103251726
initialActions--104112
loadScripts--69059892773753811
setupStore--1153151222
numNetworkReqs--221587181575
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1324844264228915191736
load--72662011231157261019
domContentLoaded--71561511021147101013
domInteractive--39171612838114
firstPaint--17767992148204455
backgroundConnect--15913156761153268
firstReactRender--23163942531
initialActions--102111
loadScripts--71261310951137081004
setupStore--1252441420
numNetworkReqs--1505131562174267
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--14581133205717515501799
load--1172951161512312531395
domContentLoaded--1171951161512312531395
domInteractive--863734453110189
firstPaint--------
backgroundConnect--65222734685160
firstReactRender--13104771322
initialActions--103122
loadScripts--1136935158910911901329
setupStore--176241301249
numNetworkReqs--231284181977
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--287419719518119228564399
load--13351056644158113332200
domContentLoaded--13341056644158113322200
domInteractive--1423554198170384
firstPaint--------
backgroundConnect--559113706911195301227
firstReactRender--20143242227
initialActions--2127323
loadScripts--12261035226721112431802
setupStore--18014968227255702
numNetworkReqs--85412374495193
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16971440247519917892085
load--14461175194213215361683
domContentLoaded--14461175194113215351682
domInteractive--843120944126150
firstPaint--------
backgroundConnect--73241885099182
firstReactRender--16116681523
initialActions--103022
loadScripts--14061158186711414871579
setupStore--2143184411119
numNetworkReqs--231286171873
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--30922158985097831825100
load--17161307801681717092953
domContentLoaded--17151306801681817092953
domInteractive--143391357159131432
firstPaint--------
backgroundConnect--42112418563355451079
firstReactRender--23166782731
initialActions--207123
loadScripts--16591253796379816642747
setupStore--1238705168111558
numNetworkReqs--86382884795199
19--------
📊 Page Load Benchmark Results

Current Commit: ce2f90e | Date: 1/29/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.02s (±46ms) 🟡 | historical mean value: 1.03s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 712ms (±61ms) 🟢 | historical mean value: 719ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 87ms (±125ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.02s 46ms 999ms 1.40s 1.05s 1.40s
domContentLoaded 712ms 61ms 691ms 1.27s 722ms 1.27s
firstPaint 87ms 125ms 56ms 1.33s 84ms 1.33s
firstContentfulPaint 87ms 125ms 56ms 1.33s 84ms 1.33s
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.62 KiB (0.03%)
  • ui: 1.62 KiB (0.02%)
  • common: 725 Bytes (0.01%)

…response

Changed PointsEstimateHistoryEntry to store the full request and response
objects instead of extracting individual fields. This preserves more context
(including activityContext) for Customer Support diagnostics.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
More history entries provide better diagnostic data for Customer Support
when investigating user-reported discrepancies.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 30, 2026

Builds ready [861b2b1]
UI Startup Metrics (1332 ± 109 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13321087162310914051504
load--1133913141010511981326
domContentLoaded--1127909140310511931321
domInteractive--271592172375
firstPaint--165651153164195316
backgroundConnect--23521627512241263
firstReactRender--19114472134
initialActions--108112
loadScripts--90669311741059711104
setupStore--1463461628
numNetworkReqs--211579161571
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--19271448224517020532200
load--1098994163713710881513
domContentLoaded--1084987161713710701490
domInteractive--37191442734112
firstPaint--185741645164223318
backgroundConnect--33228647432342400
firstReactRender--24164772640
initialActions--105112
loadScripts--83873713591288241226
setupStore--1684661727
numNetworkReqs--1224724950143238
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--85466411461109251059
load--7155891057103784967
domContentLoaded--7085831049101771959
domInteractive--261695182387
firstPaint--1066233153124211
backgroundConnect--41181783045120
firstReactRender--16103351828
initialActions--104113
loadScripts--7055811047100767956
setupStore--1262951325
numNetworkReqs--221586181575
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1340966214724315101803
load--71962613641376991117
domContentLoaded--71062013541376901108
domInteractive--35191472536102
firstPaint--156661120138177429
backgroundConnect--16513535849162301
firstReactRender--23183942531
initialActions--102011
loadScripts--70761813451356871100
setupStore--1253451422
numNetworkReqs--1304726858154252
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--17291423243021118452200
load--13641161213715914311667
domContentLoaded--13631161213615914311666
domInteractive--973738662140172
firstPaint--------
backgroundConnect--933626658139220
firstReactRender--16122321721
initialActions--214123
loadScripts--13111140198913813691542
setupStore--2882804417111
numNetworkReqs--221284171873
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--25601858437939227203131
load--12591078248320612491654
domContentLoaded--12591077248320612481653
domInteractive--12638716123119430
firstPaint--------
backgroundConnect--237102917169228732
firstReactRender--20153142427
initialActions--203123
loadScripts--12121057234517812081539
setupStore--1639691189272624
numNetworkReqs--68362044293177
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16811412231116117891969
load--14361175179312215051667
domContentLoaded--14351175179312215041667
domInteractive--943023144132171
firstPaint--------
backgroundConnect--792726455119213
firstReactRender--15112831522
initialActions--103022
loadScripts--13891152171510014651564
setupStore--144219231241
numNetworkReqs--231289181879
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--30322201441856034534159
load--16551190266338018622515
domContentLoaded--16541190266338018622515
domInteractive--12132725136109552
firstPaint--------
backgroundConnect--35112215803173461198
firstReactRender--23156372530
initialActions--207123
loadScripts--15841157264633617932441
setupStore--1469776206127710
numNetworkReqs--69351874394178
19--------
📊 Page Load Benchmark Results

Current Commit: 861b2b1 | Date: 1/30/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±42ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 735ms (±40ms) 🟢 | historical mean value: 718ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±13ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 42ms 1.02s 1.37s 1.09s 1.37s
domContentLoaded 735ms 40ms 703ms 1.03s 759ms 1.03s
firstPaint 79ms 13ms 64ms 204ms 84ms 204ms
firstContentfulPaint 79ms 13ms 64ms 204ms 84ms 204ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 7.28 KiB (0.14%)
  • ui: 7.84 KiB (0.09%)
  • common: 8.68 KiB (0.09%)

Replace nested EstimateAssetDto objects with individual primitive fields
for swap source, destination, and fee assets. Each asset is now stored as
separate ID, amount, and USD price fields for easier diagnostics and
serialization.

Changes:
- requestSwapSrcAsset → requestSwapSrcAssetId/Amount/UsdPrice
- requestSwapDestAsset → requestSwapDestAssetId/Amount/UsdPrice
- requestSwapFeeAsset → requestSwapFeeAssetId/Amount/UsdPrice

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add the new rewardsPointsEstimateHistory field to:
- Sentry state configuration (excluded from debug snapshots)
- E2E onboarding fixture
- Error state snapshot fixtures

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 30, 2026

✨ Files requiring CODEOWNER review ✨

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

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

🧪 @MetaMask/qa (2 files, +3 -1)
  • 📁 test/
    • 📁 e2e/
      • 📁 fixtures/
        • 📄 onboarding-fixture.json +2 -1
      • 📁 tests/
        • 📁 settings/
          • 📄 state-logs.json +1 -0

@VGR-GIT VGR-GIT marked this pull request as ready for review January 30, 2026 10:51
@VGR-GIT VGR-GIT requested review from a team as code owners January 30, 2026 10:51
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 30, 2026

Builds ready [06efbad]
UI Startup Metrics (1323 ± 131 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13231038158413114101532
load--1126886137212312091330
domContentLoaded--1118880136412412031325
domInteractive--251688172073
firstPaint--182611212175195327
backgroundConnect--22820127113235258
firstReactRender--17103551929
initialActions--105112
loadScripts--90668011641249971118
setupStore--1373551722
numNetworkReqs--221585191579
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--19591545278916720382259
load--1110991197217510891606
domContentLoaded--1094985196016810771543
domInteractive--38182173135102
firstPaint--227711661246235472
backgroundConnect--33529550839343424
firstReactRender--23164352535
initialActions--106112
loadScripts--84574316161528271258
setupStore--1773661934
numNetworkReqs--1205025956148241
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--8366751104858871006
load--69060797773742819
domContentLoaded--68560296772739812
domInteractive--2615111202286
firstPaint--1136142764163230
backgroundConnect--43191522846107
firstReactRender--15103241626
initialActions--106111
loadScripts--68260096071737805
setupStore--1153751224
numNetworkReqs--221587181575
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1279891205423214051758
load--72862513051287201053
domContentLoaded--71862012971277071041
domInteractive--36181792734108
firstPaint--173681102164207358
backgroundConnect--17113237160166334
firstReactRender--23174842430
initialActions--102111
loadScripts--71561812881267051032
setupStore--1241941517
numNetworkReqs--1285226360156255
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--14191110213618215371804
load--1147962168014212251421
domContentLoaded--1146961168014212241420
domInteractive--71332334398144
firstPaint--------
backgroundConnect--67241944493172
firstReactRender--1395161323
initialActions--104112
loadScripts--1109944165412411841306
setupStore--155125191140
numNetworkReqs--231283181875
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--26911950782171727243884
load--12931045236229612491991
domContentLoaded--12921045236229612491991
domInteractive--12836755133114504
firstPaint--------
backgroundConnect--3571244237468294974
firstReactRender--21136962231
initialActions--203123
loadScripts--12281020234425712071679
setupStore--1418743196117679
numNetworkReqs--71371944497182
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--17451458232517818442127
load--14921255186412915951732
domContentLoaded--14921255186312915951732
domInteractive--943124751133194
firstPaint--------
backgroundConnect--802823448115174
firstReactRender--16123231623
initialActions--2014122
loadScripts--14451238174610915321628
setupStore--144127171243
numNetworkReqs--231287191977
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--29502180420950830644046
load--16361307260333018042414
domContentLoaded--16361306260333118042414
domInteractive--13031716153110662
firstPaint--------
backgroundConnect--3471081500285342948
firstReactRender--23163852535
initialActions--217123
loadScripts--15701281249128617102259
setupStore--16310909216279655
numNetworkReqs--69362244384175
19--------
📊 Page Load Benchmark Results

Current Commit: 06efbad | Date: 1/30/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±45ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 726ms (±38ms) 🟢 | historical mean value: 718ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±11ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 45ms 1.01s 1.35s 1.09s 1.35s
domContentLoaded 726ms 38ms 703ms 1.00s 758ms 1.00s
firstPaint 77ms 11ms 56ms 172ms 84ms 172ms
firstContentfulPaint 77ms 11ms 56ms 172ms 84ms 172ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.42 KiB (0.03%)
  • ui: 0 Bytes (0%)
  • common: 52 Bytes (0%)

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

@github-actions github-actions bot added size-L and removed size-M labels Jan 30, 2026
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 30, 2026

Builds ready [7b77793]
UI Startup Metrics (1313 ± 126 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13131065176912613791537
load--1120895157512011731346
domContentLoaded--1113891153111811681341
domInteractive--261582162372
firstPaint--155661545155190314
backgroundConnect--23121229013234257
firstReactRender--16104241822
initialActions--103112
loadScripts--89868412991189551121
setupStore--1243551521
numNetworkReqs--221585171569
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--21561597499355122252873
load--1131977177415911641530
domContentLoaded--1115969176515811401510
domInteractive--40191933137121
firstPaint--192781600163243333
backgroundConnect--4452912974431379654
firstReactRender--25175282743
initialActions--107113
loadScripts--86773214891448921235
setupStore--1784771837
numNetworkReqs--1225224952153238
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--8336841093908901008
load--69459995877763820
domContentLoaded--68959495376758813
domInteractive--251692172278
firstPaint--1116336160154225
backgroundConnect--3918129244599
firstReactRender--15103251727
initialActions--104112
loadScripts--68659295176750804
setupStore--1354571229
numNetworkReqs--221586191576
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1299907186923915151768
load--73063211271157251061
domContentLoaded--71962410941157141056
domInteractive--41182253838122
firstPaint--1466850183178304
backgroundConnect--1715038660166342
firstReactRender--23173432431
initialActions--102011
loadScripts--71762210921137121048
setupStore--1355261519
numNetworkReqs--1384928161166261
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13921107195618015061865
load--1117949161912911931351
domContentLoaded--1117949161912911881351
domInteractive--71322444797150
firstPaint--------
backgroundConnect--57242243867139
firstReactRender--14995101236
initialActions--102012
loadScripts--1088934158811711541289
setupStore--125116151033
numNetworkReqs--231284191880
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--26321897399435927793133
load--12701044235526512521988
domContentLoaded--12691044235526512521988
domInteractive--12540623105116346
firstPaint--------
backgroundConnect--3081271096226322913
firstReactRender--21144852328
initialActions--207123
loadScripts--12111026232821712191656
setupStore--1839902215275710
numNetworkReqs--78382324688206
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16901356229918018211983
load--14411199188413315261688
domContentLoaded--14411199188413315261688
domInteractive--903022544131148
firstPaint--------
backgroundConnect--832526354134191
firstReactRender--15105661522
initialActions--102122
loadScripts--13931175185211514691587
setupStore--1831663013123
numNetworkReqs--221283171877
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--30051983533357532594119
load--16191274307137817812526
domContentLoaded--16191274307037817812526
domInteractive--13031785136122482
firstPaint--------
backgroundConnect--36212615463223391116
firstReactRender--22157372533
initialActions--203123
loadScripts--15631190271935317042506
setupStore--1878778228324729
numNetworkReqs--75392614483180
19--------
📊 Page Load Benchmark Results

Current Commit: 7b77793 | Date: 1/30/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±44ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 723ms (±40ms) 🟢 | historical mean value: 717ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±15ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 44ms 1.01s 1.39s 1.08s 1.39s
domContentLoaded 723ms 40ms 700ms 1.04s 753ms 1.04s
firstPaint 77ms 15ms 60ms 216ms 88ms 216ms
firstContentfulPaint 77ms 15ms 60ms 216ms 88ms 216ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 7.83 KiB (0.15%)
  • ui: 7.84 KiB (0.09%)
  • common: 8.71 KiB (0.09%)

@VGR-GIT VGR-GIT requested a review from a team as a code owner January 30, 2026 14:04
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 30, 2026

Builds ready [ef76f07]
UI Startup Metrics (1330 ± 105 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13301081169610513961489
load--1130928140610312021294
domContentLoaded--1123915139710411981287
domInteractive--281799192480
firstPaint--145681201124193228
backgroundConnect--24322430314248271
firstReactRender--1794451925
initialActions--106112
loadScripts--89569211711039641073
setupStore--1362951624
numNetworkReqs--221588171573
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--18571507268518019922134
load--1019885191316110191387
domContentLoaded--100287718591569951373
domInteractive--3418211293297
firstPaint--214641870244225311
backgroundConnect--31527254741332392
firstReactRender--23155882541
initialActions--104112
loadScripts--78166915501457691150
setupStore--1575481638
numNetworkReqs--1214825156151247
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--84265911571159241047
load--7025841007106768924
domContentLoaded--696578994104762914
domInteractive--251691172273
firstPaint--1066062167139193
backgroundConnect--3816132254598
firstReactRender--1593461730
initialActions--104113
loadScripts--693577992104760912
setupStore--1263151226
numNetworkReqs--221584181576
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1320923209924714491847
load--72761713521307121077
domContentLoaded--71760913461317021070
domInteractive--37181853234125
firstPaint--1427058691157371
backgroundConnect--16213141348167310
firstReactRender--24184742530
initialActions--102111
loadScripts--71460713361297001061
setupStore--1254451417
numNetworkReqs--1275227658154257
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13371085198717614421698
load--1093909161014211621435
domContentLoaded--1092909161014311611435
domInteractive--64312024085172
firstPaint--------
backgroundConnect--56241713860155
firstReactRender--1294051217
initialActions--103112
loadScripts--1066894158613411261401
setupStore--105467929
numNetworkReqs--231294191878
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--26521811619559027433839
load--12471017226622712301775
domContentLoaded--12461017226622712301775
domInteractive--12735785121117408
firstPaint--------
backgroundConnect--2911211414246296903
firstReactRender--20145652227
initialActions--203123
loadScripts--1192999214619511911689
setupStore--178113592393142654
numNetworkReqs--70372274583186
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16751334226121718102090
load--14331178185515215211735
domContentLoaded--14321178185415215211735
domInteractive--892823047130162
firstPaint--------
backgroundConnect--772428453122181
firstReactRender--14102931424
initialActions--103122
loadScripts--13871163179813214721633
setupStore--184219321267
numNetworkReqs--241291201881
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--29902205791871031694180
load--16531239588155517582564
domContentLoaded--16531239588055517582564
domInteractive--1113254199104402
firstPaint--------
backgroundConnect--35912714592943361001
firstReactRender--23155562530
initialActions--208123
loadScripts--15991218584953916862508
setupStore--1498795196206600
numNetworkReqs--69371954178178
19--------
📊 Page Load Benchmark Results

Current Commit: ef76f07 | Date: 1/30/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±45ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 730ms (±40ms) 🟢 | historical mean value: 717ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±14ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 45ms 1.01s 1.37s 1.08s 1.37s
domContentLoaded 730ms 40ms 705ms 1.01s 745ms 1.01s
firstPaint 79ms 14ms 64ms 204ms 88ms 204ms
firstContentfulPaint 79ms 14ms 64ms 204ms 88ms 204ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 7.83 KiB (0.15%)
  • ui: 7.84 KiB (0.09%)
  • common: 8.71 KiB (0.09%)

Copy link
Member

@seaona seaona left a comment

Choose a reason for hiding this comment

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

QA files LGTM

@VGR-GIT VGR-GIT added this pull request to the merge queue Feb 2, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Feb 2, 2026
@VGR-GIT VGR-GIT added this pull request to the merge queue Feb 3, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Feb 3, 2026
@HowardBraham HowardBraham added this pull request to the merge queue Feb 3, 2026
github-merge-queue bot pushed a commit that referenced this pull request Feb 3, 2026
## **Description**

Store the last 50 successful points estimates in state logs to help
Customer Support verify user-reported discrepancies between estimated
and awarded points.

## **Changelog**

CHANGELOG entry: Added points estimate history tracking to state logs
for Customer Support diagnostics

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Persists and logs additional rewards-related request/response data
(including account and activity details), which increases stored
state/log surface area and could affect privacy/perf if misused.
Functional risk is contained by bounding history to 50 entries and
isolating history-write failures from `estimatePoints()` results.
> 
> **Overview**
> Adds `rewardsPointsEstimateHistory` to `RewardsController` state and
defaults, persisting it and including it in state logs for Customer
Support diagnostics.
> 
> `estimatePoints()` now records each successful estimate (flattened
request context for swap/perps/shield plus response and timestamp) via
`addPointsEstimateToHistory`, keeps most-recent-first, and caps history
at 50 entries while swallowing/logging history-update errors.
> 
> Wires the new state field through background state typing and test
fixtures/state snapshots, and explicitly excludes it from Sentry
background state attachment.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
ef76f07. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Feb 3, 2026
@VGR-GIT VGR-GIT added this pull request to the merge queue Feb 3, 2026
Merged via the queue into main with commit 6a4c540 Feb 3, 2026
183 checks passed
@VGR-GIT VGR-GIT deleted the feat/rwds-926-points-estimate-history branch February 3, 2026 16:13
@github-actions github-actions bot locked and limited conversation to collaborators Feb 3, 2026
@metamaskbot metamaskbot added the release-13.18.0 Issue or pull request that will be included in release 13.18.0 label Feb 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

INVALID-PR-TEMPLATE PR's body doesn't match template release-13.18.0 Issue or pull request that will be included in release 13.18.0 size-L team-rewards Rewards team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants