[backport core/1.50] fix: open popular templates for new users - #15197
Conversation
## Summary New users now open the Popular template collection instead of the outdated Getting Started collection. The paired catalog change also archives Node Basics so neither outdated learning collection remains in the picker. ## Changes - **What**: Default first-run template navigation to Popular and initialize its matching sort immediately. - **Catalog**: Getting Started is already archived by [workflow_templates PR #1088](Comfy-Org/workflow_templates#1088); the paired catalog PR archives Node Basics while preserving the source workflows and shared assets. - **Tests**: Update the existing composable test and template-picker Playwright coverage. ## Review Focus - The default changes only for users without a previously selected template category. - The immediate nav/sort coordination prevents Popular content from initially using the default sort. Linear: https://linear.app/comfyorg/issue/GTM-422/archive-getting-started-and-node-basics-templates-redirect-to-popular Paired catalog PR: Comfy-Org/workflow_templates#1097 --------- Co-authored-by: Maanil Verma <vermaMaanil97@gmail.com>
🎭 Playwright: ✅ 1800 passed, 0 failed · 2 flaky📊 Browser Reports
🎨 Storybook: ✅ Built — View Storybook📦 Bundle Size
⚡ Performance Report
Show regressions
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-08-13T16:16:02.502Z",
"gitSha": "b1a3c002d7860305faa4da05a09508f67464939a",
"branch": "backport-14896-to-core-1.50",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2071.3250000000016,
"styleRecalcs": 8,
"styleRecalcDurationMs": 7.244999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 540.145,
"heapDeltaBytes": 5838224,
"heapUsedBytes": 70266920,
"domNodes": 16,
"jsHeapTotalBytes": 24379392,
"scriptDurationMs": 22.701999999999998,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-idle",
"durationMs": 2053.297000000043,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.044999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 508.869,
"heapDeltaBytes": -18886156,
"heapUsedBytes": 45485996,
"domNodes": 3,
"jsHeapTotalBytes": 22257664,
"scriptDurationMs": 21.876,
"eventListeners": -20,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1874.545000000012,
"styleRecalcs": 77,
"styleRecalcDurationMs": 45.21699999999999,
"layouts": 12,
"layoutDurationMs": 4.226,
"taskDurationMs": 924.4359999999999,
"heapDeltaBytes": -18376628,
"heapUsedBytes": 46076436,
"domNodes": 4,
"jsHeapTotalBytes": 23568384,
"scriptDurationMs": 114.66300000000001,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1792.7500000000691,
"styleRecalcs": 78,
"styleRecalcDurationMs": 37.809999999999995,
"layouts": 12,
"layoutDurationMs": 3.9389999999999996,
"taskDurationMs": 830.2629999999999,
"heapDeltaBytes": 394956,
"heapUsedBytes": 64837112,
"domNodes": 57,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 114.50300000000001,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1724.8809999999821,
"styleRecalcs": 31,
"styleRecalcDurationMs": 15.509000000000002,
"layouts": 6,
"layoutDurationMs": 0.702,
"taskDurationMs": 373.15,
"heapDeltaBytes": 8806108,
"heapUsedBytes": 73208456,
"domNodes": 76,
"jsHeapTotalBytes": 24379392,
"scriptDurationMs": 19.937000000000005,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1771.101999999928,
"styleRecalcs": 31,
"styleRecalcDurationMs": 16.904,
"layouts": 6,
"layoutDurationMs": 0.7899999999999999,
"taskDurationMs": 399.071,
"heapDeltaBytes": 8770360,
"heapUsedBytes": 72854252,
"domNodes": 78,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 23.003999999999998,
"eventListeners": 21,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 560.6720000000678,
"styleRecalcs": 10,
"styleRecalcDurationMs": 6.0009999999999994,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 353.07500000000005,
"heapDeltaBytes": -11240492,
"heapUsedBytes": 53096148,
"domNodes": 16,
"jsHeapTotalBytes": 24903680,
"scriptDurationMs": 52.229000000000006,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 586.1039999999775,
"styleRecalcs": 11,
"styleRecalcDurationMs": 7.079000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 367.345,
"heapDeltaBytes": -11180936,
"heapUsedBytes": 53216676,
"domNodes": 18,
"jsHeapTotalBytes": 25427968,
"scriptDurationMs": 54.19099999999999,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-idle",
"durationMs": 2060.2340000000368,
"styleRecalcs": 10,
"styleRecalcDurationMs": 12.821000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 715.205,
"heapDeltaBytes": 7536836,
"heapUsedBytes": 67338484,
"domNodes": -281,
"jsHeapTotalBytes": 4296704,
"scriptDurationMs": 104.58200000000001,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2034.9499999999807,
"styleRecalcs": 8,
"styleRecalcDurationMs": 6.408999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 668.2040000000001,
"heapDeltaBytes": -530632,
"heapUsedBytes": 59690684,
"domNodes": -283,
"jsHeapTotalBytes": 2461696,
"scriptDurationMs": 93.894,
"eventListeners": -179,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-pan",
"durationMs": 2165.699000000018,
"styleRecalcs": 68,
"styleRecalcDurationMs": 14.505,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1248.03,
"heapDeltaBytes": 1057060,
"heapUsedBytes": 62659528,
"domNodes": -284,
"jsHeapTotalBytes": 3964928,
"scriptDurationMs": 400.937,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-pan",
"durationMs": 2124.5499999999993,
"styleRecalcs": 67,
"styleRecalcDurationMs": 14.476000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1219.6039999999998,
"heapDeltaBytes": 3839184,
"heapUsedBytes": 65656228,
"domNodes": -284,
"jsHeapTotalBytes": 3964928,
"scriptDurationMs": 384.39099999999996,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3185.811000000058,
"styleRecalcs": 65,
"styleRecalcDurationMs": 16.151,
"layouts": 60,
"layoutDurationMs": 8.636999999999999,
"taskDurationMs": 1438.866,
"heapDeltaBytes": -2752780,
"heapUsedBytes": 59585032,
"domNodes": -289,
"jsHeapTotalBytes": 7180288,
"scriptDurationMs": 466.83299999999997,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-zoom",
"durationMs": 3215.4819999999518,
"styleRecalcs": 65,
"styleRecalcDurationMs": 16.188000000000006,
"layouts": 60,
"layoutDurationMs": 8.744,
"taskDurationMs": 1432.25,
"heapDeltaBytes": -2581800,
"heapUsedBytes": 59726916,
"domNodes": -288,
"jsHeapTotalBytes": 6918144,
"scriptDurationMs": 453.04,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2026.6199999999799,
"styleRecalcs": 9,
"styleRecalcDurationMs": 6.482999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 644.868,
"heapDeltaBytes": 6603092,
"heapUsedBytes": 67205956,
"domNodes": -284,
"jsHeapTotalBytes": 3248128,
"scriptDurationMs": 95.02700000000002,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2037.9870000000437,
"styleRecalcs": 8,
"styleRecalcDurationMs": 6.279,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 666.1760000000002,
"heapDeltaBytes": 6650636,
"heapUsedBytes": 67286984,
"domNodes": -284,
"jsHeapTotalBytes": 3248128,
"scriptDurationMs": 96.02299999999998,
"eventListeners": -179,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 578.9869999999837,
"styleRecalcs": 46,
"styleRecalcDurationMs": 9.426,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 381.032,
"heapDeltaBytes": -10692548,
"heapUsedBytes": 53787020,
"domNodes": 18,
"jsHeapTotalBytes": 25690112,
"scriptDurationMs": 111.84800000000001,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 616.1309999999958,
"styleRecalcs": 47,
"styleRecalcDurationMs": 10.678,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 410.266,
"heapDeltaBytes": -10824688,
"heapUsedBytes": 53755424,
"domNodes": 20,
"jsHeapTotalBytes": 26214400,
"scriptDurationMs": 120.08700000000002,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-idle",
"durationMs": 2018.0350000000544,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.755,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 514.072,
"heapDeltaBytes": -18653792,
"heapUsedBytes": 45811684,
"domNodes": -1,
"jsHeapTotalBytes": 22257664,
"scriptDurationMs": 18.936,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 1995.0730000000476,
"styleRecalcs": 11,
"styleRecalcDurationMs": 9.353000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 388.136,
"heapDeltaBytes": 5694068,
"heapUsedBytes": 70145988,
"domNodes": 22,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 19.942999999999998,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1791.1440000000312,
"styleRecalcs": 77,
"styleRecalcDurationMs": 40.358000000000004,
"layouts": 16,
"layoutDurationMs": 5.181,
"taskDurationMs": 857.0770000000001,
"heapDeltaBytes": -18394840,
"heapUsedBytes": 46056816,
"domNodes": -3,
"jsHeapTotalBytes": 22781952,
"scriptDurationMs": 92.128,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1742.2050000000127,
"styleRecalcs": 77,
"styleRecalcDurationMs": 40.686,
"layouts": 16,
"layoutDurationMs": 4.997,
"taskDurationMs": 793.467,
"heapDeltaBytes": -3512860,
"heapUsedBytes": 60640284,
"domNodes": 65,
"jsHeapTotalBytes": 25427968,
"scriptDurationMs": 88.32,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-transition-enter",
"durationMs": 1383.6219999999457,
"styleRecalcs": 17,
"styleRecalcDurationMs": 27.505000000000003,
"layouts": 13,
"layoutDurationMs": 10.031000000000002,
"taskDurationMs": 869.277,
"heapDeltaBytes": 8883404,
"heapUsedBytes": 100845828,
"domNodes": 13673,
"jsHeapTotalBytes": 10747904,
"scriptDurationMs": 33.852000000000004,
"eventListeners": 2375,
"totalBlockingTimeMs": 118,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "viewport-pan-sweep",
"durationMs": 8164.970000000039,
"styleRecalcs": 250,
"styleRecalcDurationMs": 44.343,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3905.7009999999996,
"heapDeltaBytes": 1227928,
"heapUsedBytes": 61226192,
"domNodes": -280,
"jsHeapTotalBytes": 7442432,
"scriptDurationMs": 1344.061,
"eventListeners": -163,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8165.968000000021,
"styleRecalcs": 250,
"styleRecalcDurationMs": 44.464,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4265.268,
"heapDeltaBytes": 8646012,
"heapUsedBytes": 68063404,
"domNodes": -281,
"jsHeapTotalBytes": 5799936,
"scriptDurationMs": 1232.715,
"eventListeners": -163,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 14602.550999999949,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 14566.92,
"heapDeltaBytes": -58966544,
"heapUsedBytes": 160353520,
"domNodes": -8312,
"jsHeapTotalBytes": -11739136,
"scriptDurationMs": 524.482,
"eventListeners": -16389,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-idle",
"durationMs": 14598.879000000012,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 14582.689,
"heapDeltaBytes": -61577400,
"heapUsedBytes": 166354268,
"domNodes": -8312,
"jsHeapTotalBytes": -10952704,
"scriptDurationMs": 512.7649999999999,
"eventListeners": -16387,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-pan",
"durationMs": 17486.459999999966,
"styleRecalcs": 118,
"styleRecalcDurationMs": 17.505999999999993,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17427.409,
"heapDeltaBytes": -46403168,
"heapUsedBytes": 179604568,
"domNodes": -8312,
"jsHeapTotalBytes": -9711616,
"scriptDurationMs": 821.0430000000001,
"eventListeners": -16385,
"totalBlockingTimeMs": 41,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 17434.906000000068,
"styleRecalcs": 122,
"styleRecalcDurationMs": 18.489000000000004,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17400.386000000002,
"heapDeltaBytes": -38672124,
"heapUsedBytes": 166960760,
"domNodes": -8312,
"jsHeapTotalBytes": -9379840,
"scriptDurationMs": 806.991,
"eventListeners": -16383,
"totalBlockingTimeMs": 100,
"frameDurationMs": 17.780000000000047,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "workflow-execution",
"durationMs": 104.81199999992441,
"styleRecalcs": 6,
"styleRecalcDurationMs": 13.428999999999998,
"layouts": 3,
"layoutDurationMs": 0.801,
"taskDurationMs": 84.60600000000001,
"heapDeltaBytes": 3165984,
"heapUsedBytes": 66602984,
"domNodes": 109,
"jsHeapTotalBytes": 3145728,
"scriptDurationMs": 8.540000000000003,
"eventListeners": 49,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "workflow-execution",
"durationMs": 481.527999999912,
"styleRecalcs": 13,
"styleRecalcDurationMs": 16.974,
"layouts": 2,
"layoutDurationMs": 0.38699999999999996,
"taskDurationMs": 110.338,
"heapDeltaBytes": 5043844,
"heapUsedBytes": 68665792,
"domNodes": 123,
"jsHeapTotalBytes": 5242880,
"scriptDurationMs": 8.953999999999999,
"eventListeners": 97,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66666666666665,
"p95FrameDurationMs": 16.700000000000728
}
]
} |
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## core/1.50 #15197 +/- ##
=============================================
- Coverage 81.32% 81.32% -0.01%
=============================================
Files 1872 1872
Lines 106209 106209
Branches 32809 32724 -85
=============================================
- Hits 86378 86377 -1
+ Misses 19485 19476 -9
- Partials 346 356 +10
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 8 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Backport of #14896 to
core/1.50Automatically created by backport workflow.