[backport core/1.47] feat: add ComfyUI frontend version to Datadog RUM - #14236
Conversation
## Summary Expose `comfyui_frontend_version` on Datadog RUM events so dashboard traffic can be filtered by the frontend release. ## Changes - **What**: Set `comfyui_frontend_version` directly from `__COMFYUI_FRONTEND_VERSION__` before RUM initialization. - **Tests**: Cover the new context for classified traffic and frontend-context probe failure paths. ## Review Focus Confirm that the attribute name and build-time frontend version match the dashboard contract. Created by Codex --------- Co-authored-by: huang47 <157390+huang47@users.noreply.github.com>
📄 Knowledge reviewDosu skipped reviewing this PR because your organization has used its |
🎨 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-07-29T01:38:03.687Z",
"gitSha": "46338ebdb11c142f96cbaa5fe7a3680c65070346",
"branch": "backport-14235-to-core-1.47",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2022.0699999999852,
"styleRecalcs": 9,
"styleRecalcDurationMs": 9.549,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 507.97,
"heapDeltaBytes": -1469336,
"heapUsedBytes": 57620528,
"domNodes": 18,
"jsHeapTotalBytes": 24903680,
"scriptDurationMs": 21.356,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-idle",
"durationMs": 2070.9739999999783,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.164,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 490.801,
"heapDeltaBytes": -1213376,
"heapUsedBytes": 57974520,
"domNodes": 18,
"jsHeapTotalBytes": 25690112,
"scriptDurationMs": 21.017,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "canvas-mouse-sweep",
"durationMs": 2053.5549999999885,
"styleRecalcs": 78,
"styleRecalcDurationMs": 46.538,
"layouts": 12,
"layoutDurationMs": 4.643000000000001,
"taskDurationMs": 1014.0950000000001,
"heapDeltaBytes": -5753128,
"heapUsedBytes": 53395148,
"domNodes": 60,
"jsHeapTotalBytes": 24903680,
"scriptDurationMs": 134.02700000000002,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1913.6220000000321,
"styleRecalcs": 76,
"styleRecalcDurationMs": 41.637,
"layouts": 12,
"layoutDurationMs": 4.356999999999999,
"taskDurationMs": 911.741,
"heapDeltaBytes": -5834304,
"heapUsedBytes": 53346864,
"domNodes": 59,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 128.244,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1737.5690000000077,
"styleRecalcs": 31,
"styleRecalcDurationMs": 17.984,
"layouts": 6,
"layoutDurationMs": 0.678,
"taskDurationMs": 394.41800000000006,
"heapDeltaBytes": 2789208,
"heapUsedBytes": 61970052,
"domNodes": 77,
"jsHeapTotalBytes": 24379392,
"scriptDurationMs": 24.488999999999997,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1739.650000000097,
"styleRecalcs": 33,
"styleRecalcDurationMs": 18.469,
"layouts": 6,
"layoutDurationMs": 0.5720000000000001,
"taskDurationMs": 397.702,
"heapDeltaBytes": 2506084,
"heapUsedBytes": 61648364,
"domNodes": 79,
"jsHeapTotalBytes": 24379392,
"scriptDurationMs": 23.313,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 588.9949999999828,
"styleRecalcs": 11,
"styleRecalcDurationMs": 7.067,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 379.55,
"heapDeltaBytes": 8427060,
"heapUsedBytes": 67825568,
"domNodes": 18,
"jsHeapTotalBytes": 19398656,
"scriptDurationMs": 59.578,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 576.4440000000377,
"styleRecalcs": 11,
"styleRecalcDurationMs": 7.708000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 376.06100000000004,
"heapDeltaBytes": 7385520,
"heapUsedBytes": 66579404,
"domNodes": 18,
"jsHeapTotalBytes": 18874368,
"scriptDurationMs": 58.52,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2026.537000000019,
"styleRecalcs": 9,
"styleRecalcDurationMs": 9.238999999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 697.3840000000001,
"heapDeltaBytes": -6920920,
"heapUsedBytes": 66458972,
"domNodes": 18,
"jsHeapTotalBytes": 7221248,
"scriptDurationMs": 122.768,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2023.1979999999794,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.512,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 690.0169999999998,
"heapDeltaBytes": -6693096,
"heapUsedBytes": 66792828,
"domNodes": 20,
"jsHeapTotalBytes": 8269824,
"scriptDurationMs": 128.079,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2241.280999999958,
"styleRecalcs": 69,
"styleRecalcDurationMs": 19.977999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1292.768,
"heapDeltaBytes": 12189392,
"heapUsedBytes": 67417464,
"domNodes": 18,
"jsHeapTotalBytes": 5156864,
"scriptDurationMs": 446.903,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2272.181000000046,
"styleRecalcs": 69,
"styleRecalcDurationMs": 19.407000000000004,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1315.545,
"heapDeltaBytes": 12470656,
"heapUsedBytes": 67640508,
"domNodes": 16,
"jsHeapTotalBytes": 5419008,
"scriptDurationMs": 464.411,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-zoom",
"durationMs": 3300.7860000000164,
"styleRecalcs": 65,
"styleRecalcDurationMs": 19.634,
"layouts": 60,
"layoutDurationMs": 7.726999999999999,
"taskDurationMs": 1550.2050000000002,
"heapDeltaBytes": 22843416,
"heapUsedBytes": 79382508,
"domNodes": 12,
"jsHeapTotalBytes": 6553600,
"scriptDurationMs": 564.7149999999999,
"eventListeners": 10,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-zoom",
"durationMs": 3514.4450000000234,
"styleRecalcs": 65,
"styleRecalcDurationMs": 19.718000000000004,
"layouts": 60,
"layoutDurationMs": 8.062,
"taskDurationMs": 1594.1000000000001,
"heapDeltaBytes": 25267400,
"heapUsedBytes": 82588756,
"domNodes": 12,
"jsHeapTotalBytes": 5767168,
"scriptDurationMs": 583.429,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 1996.2080000000242,
"styleRecalcs": 8,
"styleRecalcDurationMs": 8.518,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 747.8430000000001,
"heapDeltaBytes": 12199552,
"heapUsedBytes": 68502912,
"domNodes": 16,
"jsHeapTotalBytes": 4456448,
"scriptDurationMs": 135.02700000000002,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2000.063999999952,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.854000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 682.4520000000001,
"heapDeltaBytes": 12580768,
"heapUsedBytes": 68457824,
"domNodes": 18,
"jsHeapTotalBytes": 4194304,
"scriptDurationMs": 125.04499999999999,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 580.1789999999869,
"styleRecalcs": 46,
"styleRecalcDurationMs": 10.656,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 401.536,
"heapDeltaBytes": 8994096,
"heapUsedBytes": 68274708,
"domNodes": 18,
"jsHeapTotalBytes": 19922944,
"scriptDurationMs": 121.69300000000001,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 586.7020000000593,
"styleRecalcs": 45,
"styleRecalcDurationMs": 9.925999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 399.24299999999994,
"heapDeltaBytes": 7703784,
"heapUsedBytes": 66946064,
"domNodes": 16,
"jsHeapTotalBytes": 19922944,
"scriptDurationMs": 118.635,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666682,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-idle",
"durationMs": 2040.1019999999903,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.323000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 507.16400000000004,
"heapDeltaBytes": -1400712,
"heapUsedBytes": 57864052,
"domNodes": 20,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 18.790999999999997,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2000.678999999991,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.382000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 509.8,
"heapDeltaBytes": -1370740,
"heapUsedBytes": 57869512,
"domNodes": 20,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 21.274,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1709.3499999999722,
"styleRecalcs": 76,
"styleRecalcDurationMs": 40.077,
"layouts": 16,
"layoutDurationMs": 4.366,
"taskDurationMs": 809.3580000000001,
"heapDeltaBytes": -9657268,
"heapUsedBytes": 49516716,
"domNodes": 62,
"jsHeapTotalBytes": 25690112,
"scriptDurationMs": 95.92299999999999,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1689.1990000000305,
"styleRecalcs": 77,
"styleRecalcDurationMs": 39.00000000000001,
"layouts": 16,
"layoutDurationMs": 4.399,
"taskDurationMs": 804.957,
"heapDeltaBytes": -9726720,
"heapUsedBytes": 49582592,
"domNodes": 63,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 98.092,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-transition-enter",
"durationMs": 1417.9849999999874,
"styleRecalcs": 18,
"styleRecalcDurationMs": 32.656000000000006,
"layouts": 14,
"layoutDurationMs": 16.226999999999997,
"taskDurationMs": 999.422,
"heapDeltaBytes": 4533500,
"heapUsedBytes": 81471700,
"domNodes": 13673,
"jsHeapTotalBytes": 17301504,
"scriptDurationMs": 38.540000000000006,
"eventListeners": 2533,
"totalBlockingTimeMs": 162,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8987.279999999999,
"styleRecalcs": 251,
"styleRecalcDurationMs": 57.707,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4920.801,
"heapDeltaBytes": 3062488,
"heapUsedBytes": 76234148,
"domNodes": 18,
"jsHeapTotalBytes": 17620992,
"scriptDurationMs": 1621.4510000000002,
"eventListeners": 22,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.80000000000109
},
{
"name": "viewport-pan-sweep",
"durationMs": 8601.528000000031,
"styleRecalcs": 251,
"styleRecalcDurationMs": 56.33500000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4644.842000000001,
"heapDeltaBytes": -4548620,
"heapUsedBytes": 68595712,
"domNodes": 20,
"jsHeapTotalBytes": 14475264,
"scriptDurationMs": 1489.7640000000001,
"eventListeners": 22,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 17447.250999999993,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17428.651,
"heapDeltaBytes": -20948516,
"heapUsedBytes": 166990644,
"domNodes": -3342,
"jsHeapTotalBytes": 15437824,
"scriptDurationMs": 497.807,
"eventListeners": -16379,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.77333333333336,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-idle",
"durationMs": 17707.646999999954,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17688.979,
"heapDeltaBytes": -36835344,
"heapUsedBytes": 166450808,
"domNodes": -3313,
"jsHeapTotalBytes": 15437824,
"scriptDurationMs": 507.59599999999995,
"eventListeners": -16375,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 21096.509000000027,
"styleRecalcs": 145,
"styleRecalcDurationMs": 26.637999999999995,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 21069.858999999997,
"heapDeltaBytes": -25049288,
"heapUsedBytes": 164947724,
"domNodes": -3310,
"jsHeapTotalBytes": 17010688,
"scriptDurationMs": 889.98,
"eventListeners": -16371,
"totalBlockingTimeMs": 389,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 21400.18199999997,
"styleRecalcs": 149,
"styleRecalcDurationMs": 27.42699999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 21374.129,
"heapDeltaBytes": -22681576,
"heapUsedBytes": 166425572,
"domNodes": -3342,
"jsHeapTotalBytes": 16748544,
"scriptDurationMs": 852.204,
"eventListeners": -16375,
"totalBlockingTimeMs": 425,
"frameDurationMs": 17.77333333333336,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 451.8269999999802,
"styleRecalcs": 12,
"styleRecalcDurationMs": 16.578,
"layouts": 2,
"layoutDurationMs": 0.379,
"taskDurationMs": 102.26799999999999,
"heapDeltaBytes": 5100916,
"heapUsedBytes": 63374532,
"domNodes": 128,
"jsHeapTotalBytes": 1572864,
"scriptDurationMs": 9.91,
"eventListeners": 65,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66666666666665,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "workflow-execution",
"durationMs": 447.4719999999479,
"styleRecalcs": 12,
"styleRecalcDurationMs": 19.587,
"layouts": 3,
"layoutDurationMs": 0.4819999999999999,
"taskDurationMs": 107.98299999999998,
"heapDeltaBytes": 4870444,
"heapUsedBytes": 63379152,
"domNodes": 117,
"jsHeapTotalBytes": 1310720,
"scriptDurationMs": 9.738,
"eventListeners": 67,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
}
]
}🎭 Playwright: ✅ 1711 passed, 0 failed · 1 flaky📊 Browser Reports
|
🎭 Playwright: ⏳ Running... |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## core/1.47 #14236 +/- ##
==========================================
Coverage 78.27% 78.27%
==========================================
Files 1667 1667
Lines 93127 93128 +1
Branches 32239 32239
==========================================
+ Hits 72895 72896 +1
Misses 19627 19627
Partials 605 605
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Backport of #14235 to
core/1.47Automatically created by backport workflow.