Skip to content

ci: Skip merge queue if pull request is up-to-date#38966

Merged
HowardBraham merged 6 commits into
mainfrom
mrtenz/skip-merge-queue
Jan 14, 2026
Merged

ci: Skip merge queue if pull request is up-to-date#38966
HowardBraham merged 6 commits into
mainfrom
mrtenz/skip-merge-queue

Conversation

@Mrtenz

@Mrtenz Mrtenz commented Dec 18, 2025

Copy link
Copy Markdown
Member

Description

This adds a new action which determines whether a pull request in the merge queue is up-to-date, meaning:

  • The pull request is based on the latest commit on main.
  • The pull request is the first in the merge queue.

In this case, all status checks have already passed on the branch, and running in the merge queue would be redundant, meaning we can skip the merge queue checks.

Open in GitHub Codespaces

Changelog

CHANGELOG entry:

Related issues

Fixes: MetaMask/MetaMask-planning#5447

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

After

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Adds conditional execution to the main workflow to bypass merge queue runs when the PR is already up-to-date.

  • New check-skip-merge-queue job (uses MetaMask/github-tools action) outputs skip-merge-queue
  • Gates identify-builds, prep-deps, lint-workflows, build-storybook, and build-ts-migration-dashboard with if: github.event_name != 'merge_group' || skip-merge-queue != 'true'
  • Updates all-jobs-pass to treat skipped merge queue as success and wires needs/env accordingly
  • Minor workflow wiring: adds needs: check-skip-merge-queue where required and uses actions/checkout@v6 for the new job

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

@Mrtenz Mrtenz added the no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed label Dec 18, 2025
@metamaskbot metamaskbot added the team-core-platform Core Platform team label Dec 18, 2025
@metamaskbot

Copy link
Copy Markdown
Collaborator
Builds ready [0de5d08]
UI Startup Metrics (1354 ± 135 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup13541071174313514311600
load1138896150312912031381
domContentLoaded1131893149612811961372
domInteractive2816108212593
firstPaint156671125115200244
backgroundConnect22220625110227243
firstReactRender1483051626
getState341868103958
initialActions104113
loadScripts91668612721289781166
setupStore1363651422
numNetworkReqs171175171167
BrowserifyPower User HomeuiStartup17811481219816518842114
load1072891132511311621267
domContentLoaded1063883131611311541258
domInteractive3017109212696
firstPaint1557636968206285
backgroundConnect255201693101237599
firstReactRender14102521518
getState18611532331203231
initialActions103112
loadScripts84768010671089341032
setupStore1464161432
numNetworkReqs65551241563112
WebpackStandard HomeuiStartup7906411121978481029
load64556696079695794
domContentLoaded64056295078685788
domInteractive251585172174
firstPaint975929645108182
backgroundConnect2651453035116
firstReactRender15103551629
getState291365123949
initialActions105112
loadScripts63756094677683783
setupStore1264571227
numNetworkReqs181188181172
WebpackPower User HomeuiStartup1259960188218613311659
load731584969101832905
domContentLoaded724578962100822897
domInteractive2917109222597
firstPaint1286583894149302
backgroundConnect81661915271531
firstReactRender16123331621
getState15813722114162181
initialActions102011
loadScripts72157595999812894
setupStore16103981336
numNetworkReqs66541471963122
FirefoxBrowserifyStandard HomeuiStartup14091096233120615021806
load1124910213015011831358
domContentLoaded1124909213015111831358
domInteractive7431105210486143
firstPaint------
backgroundConnect60212915579196
firstReactRender179464451321
getState165218291135
initialActions103122
loadScripts1089894211314211411284
setupStore14564131451
numNetworkReqs19978191374
BrowserifyPower User HomeuiStartup26211565354855530113349
load17531016276357122452553
domContentLoaded17521016276257122442552
domInteractive883397411287264
firstPaint------
backgroundConnect3722412133794591146
firstReactRender21126692227
getState1207098191129176
initialActions3132327
loadScripts1480990259249720372358
setupStore375101810722125
numNetworkReqs71501452376135
WebpackStandard HomeuiStartup15331243210617215911930
load12961091170111313501499
domContentLoaded12961091170111313501499
domInteractive782917239110136
firstPaint------
backgroundConnect53201934050153
firstReactRender14112531522
getState157205221446
initialActions103112
loadScripts12651062161510513181479
setupStore166102181371
numNetworkReqs20981201478
WebpackPower User HomeuiStartup28061669456964032333715
load20551128291757525542764
domContentLoaded20541128291757525532763
domInteractive74294187773303
firstPaint------
backgroundConnect3852312744294051234
firstReactRender20133242227
getState1106522730114192
initialActions2144426
loadScripts17431113272150323142564
setupStore605120818821213
numNetworkReqs68431182084108
📊 Page Load Benchmark Results

Current Commit: 0de5d08 | Date: 12/18/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 995ms (±41ms) 🟢 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 688ms (±37ms) 🟢 | historical mean value: 730ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±9ms) 🟢 | historical mean value: 80ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 995ms 41ms 967ms 1.29s 1.02s 1.29s
domContentLoaded 688ms 37ms 664ms 963ms 700ms 963ms
firstPaint 76ms 9ms 64ms 156ms 84ms 156ms
firstContentfulPaint 76ms 9ms 64ms 156ms 84ms 156ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 20 Bytes (0%)

@Mrtenz Mrtenz marked this pull request as ready for review December 18, 2025 22:31
skip-merge-queue: ${{ steps.check-skip-merge-queue.outputs.up-to-date }}
steps:
- name: Checkout repository
uses: actions/checkout@v6

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Bug: Non-existent GitHub Action version will fail workflow

The check-skip-merge-queue job uses actions/checkout@v6, but this version does not exist. The latest stable version is v4, which is consistently used everywhere else in this repository (50+ occurrences). When the workflow runs during a merge_group event, it will fail with an "Unable to resolve action" error because v6 cannot be found. This would completely break the merge queue functionality this PR is trying to implement.

Fix in Cursor Fix in Web

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This version definitely exists, but I can change it to v4 if preferred.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is fine lol.

@HowardBraham HowardBraham left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do you have an example of this working on a forked repo or something?

Comment thread .github/workflows/main.yml

build-ts-migration-dashboard:
name: Build ts migration dashboard
if: github.event_name != 'merge_group' || needs.check-skip-merge-queue.outputs.skip-merge-queue != 'true'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think it might be okay to always skip build-ts-migration-dashboard in the Merge Queue (this will also affect some downstream jobs)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

It's required by all-jobs-completed so skipping it would always cause that job to be skipped as well.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hmm, we probably don't need to it to be in all-jobs-completed, but I guess we can make that change in another PR.

@Mrtenz

Mrtenz commented Dec 19, 2025

Copy link
Copy Markdown
Member Author

Do you have an example of this working on a forked repo or something?

@HowardBraham I implemented this originally in MetaMask/core (and tested in a fork before that). There are some runs where it's working like this one. Haven't tested it on the extension repository specifically.

@metamaskbotv2

metamaskbotv2 Bot commented Dec 19, 2025

Copy link
Copy Markdown
Contributor
Builds ready [2c3b45f]
UI Startup Metrics (1252 ± 102 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12521026154310213321391
load103584513089911021165
domContentLoaded102884013009810971161
domInteractive241494181981
firstPaint158591122147179241
backgroundConnect20318323510208224
firstReactRender1393041425
getState3518100143867
initialActions104112
loadScripts833639109398900959
setupStore1172931217
numNetworkReqs181174181173
BrowserifyPower User HomeuiStartup17911442271219418912150
load1064875162612611731258
domContentLoaded1055870161112611641251
domInteractive3017162242697
firstPaint1546747267201240
backgroundConnect25020059285233520
firstReactRender14112021518
getState19314429630215247
initialActions102112
loadScripts83966913691229501029
setupStore1784391637
numNetworkReqs64511281762121
WebpackStandard HomeuiStartup770656100866803904
load62156780856641758
domContentLoaded61656380355637750
domInteractive2515102192178
firstPaint1095858474144225
backgroundConnect295115304497
firstReactRender14103341519
getState3314130194257
initialActions104111
loadScripts61356079554634742
setupStore1163961221
numNetworkReqs181183181167
WebpackPower User HomeuiStartup1252974184519013131670
load72459797193752911
domContentLoaded71859296293743904
domInteractive32161632926110
firstPaint1285940173162278
backgroundConnect84665416868615
firstReactRender16133731719
getState1606028720165184
initialActions102011
loadScripts71559095092740899
setupStore16958101439
numNetworkReqs64491412160123
FirefoxBrowserifyStandard HomeuiStartup15871181274926017641975
load1245993238218113021562
domContentLoaded1244992238218113021562
domInteractive87353035598229
firstPaint------
backgroundConnect742227957114204
firstReactRender15104351625
getState207274331598
initialActions103123
loadScripts1197978229216512441484
setupStore196256311585
numNetworkReqs20984191676
BrowserifyPower User HomeuiStartup25801518395458130203327
load17101004261055422362475
domContentLoaded17091004261055422362475
domInteractive11232104817794322
firstPaint------
backgroundConnect3802312754094771117
firstReactRender20127282126
getState117341121105116149
initialActions3028327
loadScripts1430983238845919932295
setupStore414104311042153
numNetworkReqs71511532387115
WebpackStandard HomeuiStartup15291259200614915961839
load12981092154110613671493
domContentLoaded12971092154110613671493
domInteractive76282314093139
firstPaint------
backgroundConnect61161724079144
firstReactRender14102731523
getState156128191350
initialActions103122
loadScripts1258107814618913131412
setupStore163119191568
numNetworkReqs19981181473
WebpackPower User HomeuiStartup27271666367260032013539
load19941116287057324722794
domContentLoaded19941115286957324712794
domInteractive67283536074219
firstPaint------
backgroundConnect3182111733473721096
firstReactRender2113165172229
getState134691009101163241
initialActions2011226
loadScripts17431101267750222352600
setupStore485113716126162
numNetworkReqs63371362663121
📊 Page Load Benchmark Results

Current Commit: 2c3b45f | Date: 12/19/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 975ms (±41ms) 🟢 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 677ms (±37ms) 🟢 | historical mean value: 727ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 74ms (±11ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 975ms 41ms 948ms 1.26s 1.01s 1.26s
domContentLoaded 677ms 37ms 655ms 931ms 710ms 931ms
firstPaint 74ms 11ms 60ms 168ms 88ms 168ms
firstContentfulPaint 74ms 11ms 60ms 168ms 88ms 168ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 6.44 KiB (0.13%)
  • ui: 8.1 KiB (0.1%)
  • common: 9.21 KiB (0.1%)

@HowardBraham

Copy link
Copy Markdown
Contributor

@Mrtenz The problem with your implementation of the action check-skip-merge-queue is that on the Extension repo, a checkout with fetch-depth: 0 takes about 1m20s. So this PR actually slows down >95% of the Merge Queue merges by about 1m30, and speeds up <5% by about 30 minutes. Might want to do this with Octokit API or gh pr command line.

I ran a simulation of this workflow in this repo and I think it's working... but... someone with admin powers will have to change the Required checks to only All jobs pass. It's currently all this, which will prevent this PR from working:

image

@Mrtenz

Mrtenz commented Dec 19, 2025

Copy link
Copy Markdown
Member Author

@Mrtenz The problem with your implementation of the action check-skip-merge-queue is that on the Extension repo, a checkout with fetch-depth: 0 takes about 1m20s. So this PR actually slows down >95% of the Merge Queue merges by about 1m30, and speeds up <5% by about 30 minutes. Might want to do this with Octokit API or gh pr command line.

@HowardBraham Good point, didn't think about this. We can probably at least reduce it to checkout the main branch and pull request branch, but I can look into if there's other alternatives using the GitHub API.

I ran a simulation of this workflow in this repo and I think it's working... but... someone with admin powers will have to change the Required checks to only All jobs pass. It's currently all this, which will prevent this PR from working:

These should be skipped, which, as far as I know, satisfies this requirement.

Will get back to this after the break!

@HowardBraham

Copy link
Copy Markdown
Contributor

@Mrtenz any progress on this?

@Mrtenz

Mrtenz commented Jan 12, 2026

Copy link
Copy Markdown
Member Author

@Mrtenz any progress on this?

@HowardBraham There's a PR open on github-tools right now to remove the fetch step:

Will release github-tools once it's merged, no changes should be required in this PR.

@Mrtenz Mrtenz requested a review from HowardBraham January 12, 2026 14:43
@github-actions

Copy link
Copy Markdown
Contributor

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

@metamaskbotv2

metamaskbotv2 Bot commented Jan 12, 2026

Copy link
Copy Markdown
Contributor
Builds ready [918a457]
UI Startup Metrics (1251 ± 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--1251995163210913141425
load--104483913409810991186
domContentLoaded--103783413359710921177
domInteractive--231499172075
firstPaint--2085711512261891028
backgroundConnect--20618427314212230
firstReactRender--1593751629
getState--331681113955
initialActions--107112
loadScripts--839646112296895981
setupStore--1172431218
numNetworkReqs--171176161166
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--19401675255819820302417
load--1042902141912110781316
domContentLoaded--1028895140312210591302
domInteractive--34171902831111
firstPaint--193731324176229407
backgroundConnect--265210703103251567
firstReactRender--22165662432
getState--18213976464197238
initialActions--103112
loadScripts--81168911891158341078
setupStore--18104361835
numNetworkReqs--58381302262116
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--797636100680848933
load--64456381764687768
domContentLoaded--63955881064682761
domInteractive--241588172078
firstPaint--1045829252134214
backgroundConnect--295149323991
firstReactRender--15113241727
getState--3215191253958
initialActions--104112
loadScripts--63655680863680754
setupStore--1163451221
numNetworkReqs--171173161168
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13601000208725714531959
load--6975911231100715893
domContentLoaded--6875861224100705888
domInteractive--35171773131123
firstPaint--14160748106154332
backgroundConnect--72860914821528
firstReactRender--22164442428
getState--15413325222159204
initialActions--102111
loadScripts--684583121399702879
setupStore--1574871635
numNetworkReqs--58351422558133
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--14361147249819815291696
load--1145954222715812071354
domContentLoaded--1144954222715912061354
domInteractive--76329939991151
firstPaint--------
backgroundConnect--66223285787185
firstReactRender--13103631318
getState--135129131232
initialActions--103122
loadScripts--1104934210713811691235
setupStore--144113141241
numNetworkReqs--20884201477
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--25461976584766025494176
load--1236991297635611722436
domContentLoaded--1236990297635611722431
domInteractive--118351020117114304
firstPaint--------
backgroundConnect--148271465234116867
firstReactRender--251596122756
getState--26831919233343829
initialActions--207123
loadScripts--1183975271831511461927
setupStore--1336685176111594
numNetworkReqs--59262134847190
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16611367223420718032096
load--13641115182013414511618
domContentLoaded--13631115182013414461618
domInteractive--843038159111220
firstPaint--------
backgroundConnect--62212504883167
firstReactRender--17126471825
getState--2181662717112
initialActions--103122
loadScripts--13261100169912013971563
setupStore--225270331979
numNetworkReqs--19987201377
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--28922136577085331584680
load--16141176361661115963201
domContentLoaded--16131175361461115963201
domInteractive--120271197174101390
firstPaint--------
backgroundConnect--2152411933281481152
firstReactRender--2416133132532
getState--27765838221382761
initialActions--216123
loadScripts--14771156324945015082537
setupStore--1166770165100529
numNetworkReqs--58282003983130
19--------
📊 Page Load Benchmark Results

Current Commit: 918a457 | Date: 1/12/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±38ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 726ms (±35ms) 🟢 | historical mean value: 729ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±12ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 38ms 1.02s 1.33s 1.06s 1.33s
domContentLoaded 726ms 35ms 697ms 990ms 741ms 990ms
firstPaint 78ms 12ms 60ms 180ms 84ms 180ms
firstContentfulPaint 78ms 12ms 60ms 180ms 84ms 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: 20 Bytes (0%)

@HowardBraham HowardBraham added the DO-NOT-MERGE Pull requests that should not be merged label Jan 12, 2026

@HowardBraham HowardBraham left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This looks good after the change to github-tools

I put the DO-NOT-MERGE label on this because I want to actually try it out. After it gets two approvals, I will wait for a slow period, update it, and then see if it indeed skips the Merge Queue.

@mcmire mcmire left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Makes sense to me.

@HowardBraham HowardBraham removed the DO-NOT-MERGE Pull requests that should not be merged label Jan 12, 2026
@HowardBraham HowardBraham added this pull request to the merge queue Jan 12, 2026
@HowardBraham HowardBraham removed this pull request from the merge queue due to a manual request Jan 12, 2026
@HowardBraham HowardBraham added the DO-NOT-MERGE Pull requests that should not be merged label Jan 13, 2026
@metamaskbotv2

metamaskbotv2 Bot commented Jan 14, 2026

Copy link
Copy Markdown
Contributor
Builds ready [efd8f65]
UI Startup Metrics (1263 ± 97 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--1263102815699713351408
load--106186512819111231200
domContentLoaded--105486012739011151191
domInteractive--2615110192285
firstPaint--172641139175187306
backgroundConnect--21319633015215232
firstReactRender--1593941623
getState--3516111143960
initialActions--103112
loadScripts--849662104790911994
setupStore--1172841219
numNetworkReqs--171172161164
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--18781494247317219712277
load--1020885132011710531297
domContentLoaded--1007881131711810411289
domInteractive--35171722932105
firstPaint--1747045184226347
backgroundConnect--278202707137244632
firstReactRender--21144852333
getState--17113231027180227
initialActions--106112
loadScripts--79967511211158141063
setupStore--1674761722
numNetworkReqs--58361332460119
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--8136531121938571032
load--65357592371693798
domContentLoaded--64757191570688795
domInteractive--251594192083
firstPaint--1066261072115178
backgroundConnect--3151373438125
firstReactRender--16114451627
getState--3114117164158
initialActions--106113
loadScripts--64456991269686785
setupStore--1264881235
numNetworkReqs--171175171169
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13491015209727314371919
load--688600112990707902
domContentLoaded--678593112491693896
domInteractive--35181612833108
firstPaint--1356534369171273
backgroundConnect--102863619240619
firstReactRender--23172932528
getState--15113118512159172
initialActions--102011
loadScripts--675590111489690888
setupStore--1694371838
numNetworkReqs--973723147135220
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--14291082209018515541742
load--1137932173812612151327
domContentLoaded--1136932173812612141327
domInteractive--79322454698177
firstPaint--------
backgroundConnect--57212394567159
firstReactRender--14103041425
getState--156126161431
initialActions--103122
loadScripts--1101919171311311761260
setupStore--14570111343
numNetworkReqs--19984191476
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--24361917477448225083737
load--12581005281333912002304
domContentLoaded--12581005281333911992304
domInteractive--127361055129111439
firstPaint--------
backgroundConnect--99281041113110206
firstReactRender--241588102544
getState--26357776202391683
initialActions--204123
loadScripts--1219986262530511712040
setupStore--13012742171123664
numNetworkReqs--59282155146207
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16571360230219918132033
load--13661140184712914501598
domContentLoaded--13661139184712914501598
domInteractive--872829350122206
firstPaint--------
backgroundConnect--68202565387188
firstReactRender--15112941722
getState--228246351765
initialActions--102122
loadScripts--13251125171211013941540
setupStore--2551863521119
numNetworkReqs--20983201478
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--29352001684893933274790
load--16601179555072015683205
domContentLoaded--16601179554972015683205
domInteractive--161283863403118476
firstPaint--------
backgroundConnect--1972313733061511136
firstReactRender--22164962432
getState--301781490260434838
initialActions--206123
loadScripts--15511157552663215082988
setupStore--986753150100401
numNetworkReqs--58231533582140
19--------
📊 Page Load Benchmark Results

Current Commit: efd8f65 | Date: 1/14/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±44ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 730ms (±41ms) 🟢 | historical mean value: 722ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±14ms) 🟢 | historical mean value: 78ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 44ms 1.02s 1.40s 1.08s 1.40s
domContentLoaded 730ms 41ms 702ms 1.05s 757ms 1.05s
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: 58 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 20 Bytes (0%)

@HowardBraham HowardBraham removed the DO-NOT-MERGE Pull requests that should not be merged label Jan 14, 2026
@HowardBraham HowardBraham added this pull request to the merge queue Jan 14, 2026
@HowardBraham HowardBraham removed this pull request from the merge queue due to a manual request Jan 14, 2026
@HowardBraham

Copy link
Copy Markdown
Contributor

@Gudahtt this didn't work, it gets stuck in the Merge Queue like this:

image

I think we're going to have to eliminate a bunch of jobs from "Required," unless you have some other solution

@HowardBraham HowardBraham added the DO-NOT-MERGE Pull requests that should not be merged label Jan 14, 2026
@Gudahtt

Gudahtt commented Jan 14, 2026

Copy link
Copy Markdown
Member

We did that because at the time, only required status checks would show up on the merge queue page. GitHub improved the UI since then though, they all show up now. We can remove these extraneous required statuses. At least most of them. I'll take a look.

@Gudahtt

Gudahtt commented Jan 14, 2026

Copy link
Copy Markdown
Member

The check-template-and-add-labels status check is independent, so I wasn't able to get rid if that required status check.

The others were redundant alongside all-jobs-pass, so they have been removed as required checks.

@metamaskbotv2

metamaskbotv2 Bot commented Jan 14, 2026

Copy link
Copy Markdown
Contributor
Builds ready [979c651]
UI Startup Metrics (1295 ± 127 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--12951012159612713811523
load--1084860136911711471315
domContentLoaded--1078856135911611431306
domInteractive--2615109192283
firstPaint--157631332165188280
backgroundConnect--21319325611219237
firstReactRender--1593041626
getState--3717102124059
initialActions--102111
loadScripts--87265911651159371092
setupStore--1275451317
numNetworkReqs--171175161167
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--19061446250923820462378
load--1014891161813510461346
domContentLoaded--1001883161013510341334
domInteractive--33161132234100
firstPaint--205681349154237335
backgroundConnect--265196749133236643
firstReactRender--23166572432
getState--19515426529216249
initialActions--105112
loadScripts--79667613701308131120
setupStore--17106591639
numNetworkReqs--60382302958137
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--782624113494830955
load--64154898383709787
domContentLoaded--63554397882705781
domInteractive--2314127181972
firstPaint--1105474981139193
backgroundConnect--2851363534119
firstReactRender--16103451729
getState--2913151183453
initialActions--104112
loadScripts--63254196682698779
setupStore--1154461123
numNetworkReqs--181179171171
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13581013219224514461915
load--69859897984720890
domContentLoaded--68859397385708885
domInteractive--36181603133125
firstPaint--1376346568174267
backgroundConnect--90763817138573
firstReactRender--23174242531
getState--15713831121162184
initialActions--103112
loadScripts--68559196483705877
setupStore--17104781842
numNetworkReqs--813823845103163
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13731102197919415031739
load--1097943174813611921350
domContentLoaded--1096942174813611911350
domInteractive--61321423585135
firstPaint--------
backgroundConnect--62193025882193
firstReactRender--189502491322
getState--136113161124
initialActions--103012
loadScripts--1058920163311111161222
setupStore--144123151142
numNetworkReqs--20984201376
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--24931853490960425094153
load--1241961273033012692163
domContentLoaded--1240961272933012692162
domInteractive--1083658482111316
firstPaint--------
backgroundConnect--133251061173125531
firstReactRender--231584102534
getState--28261838227474715
initialActions--216123
loadScripts--1176947250128311531811
setupStore--1176689159105582
numNetworkReqs--59312104948197
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16661387319723617882018
load--13761145289419014471556
domContentLoaded--13761145289318914471555
domInteractive--862918539121143
firstPaint--------
backgroundConnect--68191994794172
firstReactRender--16113341725
getState--169174171433
initialActions--103122
loadScripts--13331125285918313831525
setupStore--2452504118135
numNetworkReqs--19980191375
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--28942145507880929704932
load--16111130356256617233016
domContentLoaded--16101129356256617223015
domInteractive--11931592127110535
firstPaint--------
backgroundConnect--1852515683001391168
firstReactRender--2515112112732
getState--32870964253490848
initialActions--217123
loadScripts--15001114333943316272603
setupStore--101773313693423
numNetworkReqs--60292054453194
19--------
📊 Page Load Benchmark Results

Current Commit: 979c651 | Date: 1/14/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 977ms (±40ms) 🟢 | historical mean value: 1.01s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 679ms (±37ms) 🟢 | historical mean value: 702ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 74ms (±9ms) 🟢 | historical mean value: 75ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 977ms 40ms 944ms 1.25s 996ms 1.25s
domContentLoaded 679ms 37ms 654ms 936ms 698ms 936ms
firstPaint 74ms 9ms 64ms 156ms 80ms 156ms
firstContentfulPaint 74ms 9ms 64ms 156ms 80ms 156ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 20 Bytes (0%)

@HowardBraham HowardBraham added this pull request to the merge queue Jan 14, 2026
Merged via the queue into main with commit 4d148a7 Jan 14, 2026
180 of 181 checks passed
@HowardBraham HowardBraham deleted the mrtenz/skip-merge-queue branch January 14, 2026 22:15
@github-actions github-actions Bot locked and limited conversation to collaborators Jan 14, 2026
@metamaskbot metamaskbot added the release-13.15.0 Issue or pull request that will be included in release 13.15.0 label Jan 14, 2026
@HowardBraham

Copy link
Copy Markdown
Contributor

@Mrtenz @Gudahtt it worked! It took only 25 seconds to get through the Merge Queue, here's the run: https://github.com/MetaMask/metamask-extension/actions/runs/21011806082

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

Labels

DO-NOT-MERGE Pull requests that should not be merged no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed release-13.15.0 Issue or pull request that will be included in release 13.15.0 size-S team-core-platform Core Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants