[backport core/1.48] feat: add ComfyUI frontend version to Datadog RUM - #14519
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-31T23:58:50.504Z",
"gitSha": "63543d5bce370d85bca3e6e3534ac54b42935888",
"branch": "backport-14235-to-core-1.48",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2053.5449999999855,
"styleRecalcs": 10,
"styleRecalcDurationMs": 11.937999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 483.87,
"heapDeltaBytes": 3728732,
"heapUsedBytes": 71663424,
"domNodes": 20,
"jsHeapTotalBytes": 20578304,
"scriptDurationMs": 16.612999999999996,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-idle",
"durationMs": 2024.0640000000099,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.423,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 468.97600000000006,
"heapDeltaBytes": 3678052,
"heapUsedBytes": 71661024,
"domNodes": 20,
"jsHeapTotalBytes": 20840448,
"scriptDurationMs": 15.118,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 2173.2000000000085,
"styleRecalcs": 77,
"styleRecalcDurationMs": 49.162,
"layouts": 12,
"layoutDurationMs": 3.4579999999999997,
"taskDurationMs": 1088.32,
"heapDeltaBytes": -13496148,
"heapUsedBytes": 54442532,
"domNodes": -278,
"jsHeapTotalBytes": 21491712,
"scriptDurationMs": 137.51999999999998,
"eventListeners": -146,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1855.9589999999844,
"styleRecalcs": 75,
"styleRecalcDurationMs": 37.429,
"layouts": 12,
"layoutDurationMs": 3.5319999999999996,
"taskDurationMs": 853.135,
"heapDeltaBytes": -14156668,
"heapUsedBytes": 53726948,
"domNodes": -275,
"jsHeapTotalBytes": 21229568,
"scriptDurationMs": 120.94,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1739.2790000000105,
"styleRecalcs": 32,
"styleRecalcDurationMs": 16.423000000000002,
"layouts": 6,
"layoutDurationMs": 0.6199999999999999,
"taskDurationMs": 370.65899999999993,
"heapDeltaBytes": 7224016,
"heapUsedBytes": 75275868,
"domNodes": 77,
"jsHeapTotalBytes": 20316160,
"scriptDurationMs": 17.884999999999998,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1770.6089999999222,
"styleRecalcs": 32,
"styleRecalcDurationMs": 16.315,
"layouts": 6,
"layoutDurationMs": 0.685,
"taskDurationMs": 379.401,
"heapDeltaBytes": 7276204,
"heapUsedBytes": 75130784,
"domNodes": 77,
"jsHeapTotalBytes": 19791872,
"scriptDurationMs": 18.057999999999996,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 580.5100000000039,
"styleRecalcs": 13,
"styleRecalcDurationMs": 8.467,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 370.29200000000003,
"heapDeltaBytes": -12079784,
"heapUsedBytes": 55839420,
"domNodes": 22,
"jsHeapTotalBytes": 21889024,
"scriptDurationMs": 57.172,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "dom-widget-clipping",
"durationMs": 576.4849999999342,
"styleRecalcs": 12,
"styleRecalcDurationMs": 8.486,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 375.772,
"heapDeltaBytes": -12019448,
"heapUsedBytes": 55761000,
"domNodes": 20,
"jsHeapTotalBytes": 20316160,
"scriptDurationMs": 60.361999999999995,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2038.485000000037,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.538999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 660.101,
"heapDeltaBytes": 6937360,
"heapUsedBytes": 65662852,
"domNodes": -275,
"jsHeapTotalBytes": 4259840,
"scriptDurationMs": 101.798,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2030.4810000000089,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.397000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 659.6479999999999,
"heapDeltaBytes": 6850660,
"heapUsedBytes": 65668884,
"domNodes": -277,
"jsHeapTotalBytes": 4521984,
"scriptDurationMs": 102.738,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2198.108999999988,
"styleRecalcs": 68,
"styleRecalcDurationMs": 13.255999999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1342.489,
"heapDeltaBytes": 3563864,
"heapUsedBytes": 63730664,
"domNodes": -275,
"jsHeapTotalBytes": 4726784,
"scriptDurationMs": 490.89500000000004,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2156.596000000036,
"styleRecalcs": 67,
"styleRecalcDurationMs": 12.253999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1270.748,
"heapDeltaBytes": 4695072,
"heapUsedBytes": 65637784,
"domNodes": -280,
"jsHeapTotalBytes": 4726784,
"scriptDurationMs": 426.071,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3079.6100000000024,
"styleRecalcs": 64,
"styleRecalcDurationMs": 14.854,
"layouts": 60,
"layoutDurationMs": 7.233,
"taskDurationMs": 1432.739,
"heapDeltaBytes": 19717544,
"heapUsedBytes": 81178296,
"domNodes": 12,
"jsHeapTotalBytes": 7864320,
"scriptDurationMs": 517.5079999999999,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3230.0989999999956,
"styleRecalcs": 65,
"styleRecalcDurationMs": 24.124999999999996,
"layouts": 60,
"layoutDurationMs": 6.982,
"taskDurationMs": 1583.2469999999998,
"heapDeltaBytes": 1122784,
"heapUsedBytes": 62757544,
"domNodes": -282,
"jsHeapTotalBytes": 8716288,
"scriptDurationMs": 587.28,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2013.7339999999995,
"styleRecalcs": 8,
"styleRecalcDurationMs": 7.217000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 647.2360000000001,
"heapDeltaBytes": 6084120,
"heapUsedBytes": 67032612,
"domNodes": -278,
"jsHeapTotalBytes": 5046272,
"scriptDurationMs": 98.027,
"eventListeners": -146,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2027.2819999999,
"styleRecalcs": 8,
"styleRecalcDurationMs": 7.1549999999999985,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 651.4540000000001,
"heapDeltaBytes": 6488392,
"heapUsedBytes": 67393064,
"domNodes": -276,
"jsHeapTotalBytes": 3473408,
"scriptDurationMs": 101.014,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 617.0769999999948,
"styleRecalcs": 48,
"styleRecalcDurationMs": 12.516000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 419.00100000000003,
"heapDeltaBytes": -12485816,
"heapUsedBytes": 55909148,
"domNodes": 22,
"jsHeapTotalBytes": 22413312,
"scriptDurationMs": 123.567,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 560.7939999999871,
"styleRecalcs": 46,
"styleRecalcDurationMs": 9.472999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 386.43300000000005,
"heapDeltaBytes": -11810292,
"heapUsedBytes": 56149440,
"domNodes": 18,
"jsHeapTotalBytes": 21889024,
"scriptDurationMs": 120.577,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2030.9680000000299,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.586,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 473.64900000000006,
"heapDeltaBytes": -22202308,
"heapUsedBytes": 45827736,
"domNodes": 18,
"jsHeapTotalBytes": 20180992,
"scriptDurationMs": 13.236999999999998,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-idle",
"durationMs": 1995.997999999986,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.542,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 432.4410000000001,
"heapDeltaBytes": 3437336,
"heapUsedBytes": 71366728,
"domNodes": 18,
"jsHeapTotalBytes": 20578304,
"scriptDurationMs": 11.886999999999999,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1689.483999999993,
"styleRecalcs": 75,
"styleRecalcDurationMs": 35.841,
"layouts": 16,
"layoutDurationMs": 4.03,
"taskDurationMs": 793.2909999999999,
"heapDeltaBytes": -19939732,
"heapUsedBytes": 48026620,
"domNodes": -271,
"jsHeapTotalBytes": 20967424,
"scriptDurationMs": 91.685,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1710.164000000077,
"styleRecalcs": 76,
"styleRecalcDurationMs": 34.748999999999995,
"layouts": 16,
"layoutDurationMs": 3.8130000000000006,
"taskDurationMs": 790.18,
"heapDeltaBytes": -20773128,
"heapUsedBytes": 47318548,
"domNodes": -272,
"jsHeapTotalBytes": 20443136,
"scriptDurationMs": 91.929,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-transition-enter",
"durationMs": 1367.586000000017,
"styleRecalcs": 19,
"styleRecalcDurationMs": 30.80799999999999,
"layouts": 15,
"layoutDurationMs": 12.939000000000002,
"taskDurationMs": 904.963,
"heapDeltaBytes": 7116056,
"heapUsedBytes": 100429812,
"domNodes": 13673,
"jsHeapTotalBytes": 12845056,
"scriptDurationMs": 32.694,
"eventListeners": 2371,
"totalBlockingTimeMs": 130,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8223.662000000048,
"styleRecalcs": 250,
"styleRecalcDurationMs": 36.398,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4390.5,
"heapDeltaBytes": 21808896,
"heapUsedBytes": 80835320,
"domNodes": -277,
"jsHeapTotalBytes": 6561792,
"scriptDurationMs": 1384.507,
"eventListeners": -128,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8227.259000000004,
"styleRecalcs": 250,
"styleRecalcDurationMs": 35.78000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4386.361,
"heapDeltaBytes": 7046556,
"heapUsedBytes": 65955772,
"domNodes": -275,
"jsHeapTotalBytes": 6008832,
"scriptDurationMs": 1383.5349999999999,
"eventListeners": -128,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333338,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 17047.578000000045,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 16999.578,
"heapDeltaBytes": -51869508,
"heapUsedBytes": 171329152,
"domNodes": -8312,
"jsHeapTotalBytes": -7274496,
"scriptDurationMs": 566.922,
"eventListeners": -16387,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.780000000000047,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 16925.124999999978,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 16898.249999999996,
"heapDeltaBytes": -41351924,
"heapUsedBytes": 169074684,
"domNodes": -8312,
"jsHeapTotalBytes": -13045760,
"scriptDurationMs": 531.565,
"eventListeners": -16387,
"totalBlockingTimeMs": 0,
"frameDurationMs": 18.329999999999927,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-pan",
"durationMs": 20513.486999999997,
"styleRecalcs": 138,
"styleRecalcDurationMs": 16.375,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 20479.059000000005,
"heapDeltaBytes": -30445668,
"heapUsedBytes": 177684348,
"domNodes": -8312,
"jsHeapTotalBytes": -12345344,
"scriptDurationMs": 879.106,
"eventListeners": -16381,
"totalBlockingTimeMs": 222,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 20397.638000000028,
"styleRecalcs": 139,
"styleRecalcDurationMs": 15.67099999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 20349.349000000002,
"heapDeltaBytes": -32252616,
"heapUsedBytes": 176387012,
"domNodes": -8312,
"jsHeapTotalBytes": -11296768,
"scriptDurationMs": 862.057,
"eventListeners": -16387,
"totalBlockingTimeMs": 113,
"frameDurationMs": 17.77333333333336,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "workflow-execution",
"durationMs": 455.5279999999584,
"styleRecalcs": 12,
"styleRecalcDurationMs": 16.909,
"layouts": 3,
"layoutDurationMs": 0.6900000000000001,
"taskDurationMs": 112.511,
"heapDeltaBytes": -16009388,
"heapUsedBytes": 50987676,
"domNodes": 128,
"jsHeapTotalBytes": 7208960,
"scriptDurationMs": 9.556000000000001,
"eventListeners": 67,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "workflow-execution",
"durationMs": 457.74900000003527,
"styleRecalcs": 12,
"styleRecalcDurationMs": 18.397999999999996,
"layouts": 2,
"layoutDurationMs": 0.48299999999999993,
"taskDurationMs": 104.41900000000001,
"heapDeltaBytes": -16023736,
"heapUsedBytes": 51024292,
"domNodes": 117,
"jsHeapTotalBytes": 7995392,
"scriptDurationMs": 9.779,
"eventListeners": 65,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
}
]
}🎭 Playwright: ✅ 1763 passed, 0 failed📊 Browser Reports
|
🎭 Playwright: ⏳ Running... |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## core/1.48 #14519 +/- ##
===========================================
Coverage 79.32% 79.32%
===========================================
Files 1746 1746
Lines 99332 99333 +1
Branches 31841 32589 +748
===========================================
+ Hits 78798 78799 +1
Misses 20132 20132
Partials 402 402
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.48Automatically created by backport workflow.