feat: add ComfyUI frontend version to Datadog RUM - #14235
Conversation
🎭 Playwright: ✅ 1752 passed, 0 failed · 3 flaky📊 Browser Reports
🎨 Storybook: ✅ Built — View Storybook📦 Bundle: 8.15 MB gzip 🟢 -288 BDetailsSummary
Category Glance App Entry Points — 3.63 kB (baseline 3.63 kB) • ⚪ 0 BMain entry bundles and manifests
Status: 1 added / 1 removed Graph Workspace — 1.28 MB (baseline 1.28 MB) • ⚪ 0 BGraph editor runtime, canvas, workflow orchestration
Status: 1 added / 1 removed / 1 unchanged Views & Navigation — 112 kB (baseline 112 kB) • ⚪ 0 BTop-level views, pages, and routed surfaces
Status: 12 added / 12 removed / 4 unchanged Panels & Settings — 551 kB (baseline 551 kB) • ⚪ 0 BConfiguration panels, inspectors, and settings screens
Status: 11 added / 11 removed / 15 unchanged User & Accounts — 29.1 kB (baseline 29.1 kB) • ⚪ 0 BAuthentication, profile, and account management bundles
Status: 7 added / 7 removed / 3 unchanged Editors & Dialogs — 121 kB (baseline 121 kB) • ⚪ 0 BModals, dialogs, drawers, and in-app editors
Status: 5 added / 5 removed / 1 unchanged UI Components — 64.8 kB (baseline 64.8 kB) • ⚪ 0 BReusable component library chunks
Status: 6 added / 6 removed / 8 unchanged Data & Services — 3.42 MB (baseline 3.42 MB) • 🟢 -1.25 kBStores, services, APIs, and repositories
Status: 14 added / 14 removed / 3 unchanged Utilities & Hooks — 369 kB (baseline 369 kB) • ⚪ 0 BHelpers, composables, and utility bundles
Status: 18 added / 18 removed / 17 unchanged Vendor & Third-Party — 15.7 MB (baseline 15.7 MB) • ⚪ 0 BExternal libraries and shared vendor chunks Status: 16 unchanged Other — 12.5 MB (baseline 12.5 MB) • 🟢 -70 BBundles that do not match a named category
Status: 77 added / 77 removed / 200 unchanged ⚡ Performance Report
Show regressions
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-07-28T23:59:40.769Z",
"gitSha": "79dc78d4d812a7112b79478709ae804fc0430b1a",
"branch": "codex/add-datadog-release-minor",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2013.719999999978,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.267,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 392.797,
"heapDeltaBytes": 3598044,
"heapUsedBytes": 71679272,
"domNodes": 20,
"jsHeapTotalBytes": 20049920,
"scriptDurationMs": 21.6,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-idle",
"durationMs": 2002.7029999999968,
"styleRecalcs": 10,
"styleRecalcDurationMs": 6.785000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 343.291,
"heapDeltaBytes": 3538696,
"heapUsedBytes": 71556364,
"domNodes": 20,
"jsHeapTotalBytes": 20836352,
"scriptDurationMs": 19.256,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1725.8330000000228,
"styleRecalcs": 71,
"styleRecalcDurationMs": 29.858999999999998,
"layouts": 12,
"layoutDurationMs": 3.259,
"taskDurationMs": 660.343,
"heapDeltaBytes": -16466344,
"heapUsedBytes": 51474380,
"domNodes": -273,
"jsHeapTotalBytes": 20701184,
"scriptDurationMs": 96.405,
"eventListeners": -146,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1693.458000000021,
"styleRecalcs": 73,
"styleRecalcDurationMs": 30.851000000000003,
"layouts": 12,
"layoutDurationMs": 3.4209999999999994,
"taskDurationMs": 595.429,
"heapDeltaBytes": -1438824,
"heapUsedBytes": 66489528,
"domNodes": 55,
"jsHeapTotalBytes": 20312064,
"scriptDurationMs": 93.539,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1731.020000000001,
"styleRecalcs": 32,
"styleRecalcDurationMs": 17.590999999999994,
"layouts": 6,
"layoutDurationMs": 1.006,
"taskDurationMs": 306.94,
"heapDeltaBytes": 7095192,
"heapUsedBytes": 74877388,
"domNodes": 78,
"jsHeapTotalBytes": 20574208,
"scriptDurationMs": 24.308000000000003,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1710.6690000000526,
"styleRecalcs": 30,
"styleRecalcDurationMs": 15.86,
"layouts": 6,
"layoutDurationMs": 0.629,
"taskDurationMs": 318.59,
"heapDeltaBytes": 7168408,
"heapUsedBytes": 75217712,
"domNodes": 77,
"jsHeapTotalBytes": 20312064,
"scriptDurationMs": 24.66,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "dom-widget-clipping",
"durationMs": 587.7720000000295,
"styleRecalcs": 13,
"styleRecalcDurationMs": 8.986,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 338.362,
"heapDeltaBytes": -12205736,
"heapUsedBytes": 55809008,
"domNodes": 22,
"jsHeapTotalBytes": 21098496,
"scriptDurationMs": 56.144999999999996,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 429.1179999999599,
"styleRecalcs": 12,
"styleRecalcDurationMs": 7.972999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 274.74600000000004,
"heapDeltaBytes": -12374644,
"heapUsedBytes": 55568536,
"domNodes": 20,
"jsHeapTotalBytes": 20836352,
"scriptDurationMs": 42.993,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999727
},
{
"name": "large-graph-idle",
"durationMs": 2018.3979999999906,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.116,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 535.2300000000001,
"heapDeltaBytes": 7419680,
"heapUsedBytes": 66652916,
"domNodes": -273,
"jsHeapTotalBytes": 3993600,
"scriptDurationMs": 90.01500000000001,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-idle",
"durationMs": 1992.8820000000087,
"styleRecalcs": 10,
"styleRecalcDurationMs": 6.956,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 488.61599999999993,
"heapDeltaBytes": 3827136,
"heapUsedBytes": 65341120,
"domNodes": -273,
"jsHeapTotalBytes": 3993600,
"scriptDurationMs": 85.13,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-pan",
"durationMs": 2168.550000000039,
"styleRecalcs": 70,
"styleRecalcDurationMs": 17.058000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1083.9840000000002,
"heapDeltaBytes": 6121068,
"heapUsedBytes": 66620344,
"domNodes": -275,
"jsHeapTotalBytes": 5509120,
"scriptDurationMs": 392.106,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2098.28200000004,
"styleRecalcs": 69,
"styleRecalcDurationMs": 16.571,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 904.7750000000001,
"heapDeltaBytes": 965172,
"heapUsedBytes": 62818396,
"domNodes": -273,
"jsHeapTotalBytes": 4198400,
"scriptDurationMs": 291.515,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3111.9940000000383,
"styleRecalcs": 65,
"styleRecalcDurationMs": 16.618000000000006,
"layouts": 60,
"layoutDurationMs": 8.843,
"taskDurationMs": 1125.379,
"heapDeltaBytes": 21969792,
"heapUsedBytes": 84235140,
"domNodes": 14,
"jsHeapTotalBytes": 8388608,
"scriptDurationMs": 393.266,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-zoom",
"durationMs": 3369.495000000029,
"styleRecalcs": 67,
"styleRecalcDurationMs": 18.487000000000002,
"layouts": 60,
"layoutDurationMs": 9.243000000000002,
"taskDurationMs": 1250.911,
"heapDeltaBytes": 5913488,
"heapUsedBytes": 69503092,
"domNodes": -278,
"jsHeapTotalBytes": 6615040,
"scriptDurationMs": 434.704,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2006.939999999986,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.940999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 522.8340000000001,
"heapDeltaBytes": 5527572,
"heapUsedBytes": 65571272,
"domNodes": -274,
"jsHeapTotalBytes": 4780032,
"scriptDurationMs": 87.757,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2004.2439999999715,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.708,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 591.8149999999999,
"heapDeltaBytes": 6968436,
"heapUsedBytes": 67078196,
"domNodes": -276,
"jsHeapTotalBytes": 5304320,
"scriptDurationMs": 92.707,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 490.6289999999558,
"styleRecalcs": 48,
"styleRecalcDurationMs": 10.584999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 299.77799999999996,
"heapDeltaBytes": -11938316,
"heapUsedBytes": 55971964,
"domNodes": 22,
"jsHeapTotalBytes": 21884928,
"scriptDurationMs": 83.471,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 509.18300000000727,
"styleRecalcs": 48,
"styleRecalcDurationMs": 11.170000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 310.77299999999997,
"heapDeltaBytes": -11871768,
"heapUsedBytes": 56253680,
"domNodes": 22,
"jsHeapTotalBytes": 22147072,
"scriptDurationMs": 86.394,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "subgraph-idle",
"durationMs": 1998.1989999999996,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.777999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 380.545,
"heapDeltaBytes": 3426692,
"heapUsedBytes": 71450536,
"domNodes": 20,
"jsHeapTotalBytes": 21098496,
"scriptDurationMs": 19.078999999999997,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 1988.2000000000062,
"styleRecalcs": 11,
"styleRecalcDurationMs": 7.46,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 330.06199999999995,
"heapDeltaBytes": 3458932,
"heapUsedBytes": 71456880,
"domNodes": 22,
"jsHeapTotalBytes": 20836352,
"scriptDurationMs": 15.891000000000002,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1694.7379999999725,
"styleRecalcs": 76,
"styleRecalcDurationMs": 32.303,
"layouts": 16,
"layoutDurationMs": 3.9779999999999998,
"taskDurationMs": 600.7829999999999,
"heapDeltaBytes": -5447284,
"heapUsedBytes": 62650344,
"domNodes": 65,
"jsHeapTotalBytes": 20836352,
"scriptDurationMs": 83.302,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1676.355000000001,
"styleRecalcs": 75,
"styleRecalcDurationMs": 32.132,
"layouts": 16,
"layoutDurationMs": 4.3309999999999995,
"taskDurationMs": 576.915,
"heapDeltaBytes": -5735840,
"heapUsedBytes": 62045316,
"domNodes": 61,
"jsHeapTotalBytes": 21884928,
"scriptDurationMs": 81.653,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-transition-enter",
"durationMs": 833.7789999999927,
"styleRecalcs": 20,
"styleRecalcDurationMs": 22.375,
"layouts": 16,
"layoutDurationMs": 8.678999999999998,
"taskDurationMs": 628.0439999999999,
"heapDeltaBytes": 27274980,
"heapUsedBytes": 97562748,
"domNodes": 13673,
"jsHeapTotalBytes": 17039360,
"scriptDurationMs": 21.043999999999993,
"eventListeners": 2369,
"totalBlockingTimeMs": 66,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8119.031000000006,
"styleRecalcs": 250,
"styleRecalcDurationMs": 45.812,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3448.997,
"heapDeltaBytes": 3591036,
"heapUsedBytes": 64883244,
"domNodes": -273,
"jsHeapTotalBytes": 6819840,
"scriptDurationMs": 1047.5480000000002,
"eventListeners": -128,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8107.643999999993,
"styleRecalcs": 249,
"styleRecalcDurationMs": 46.282,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3584.076,
"heapDeltaBytes": 22970816,
"heapUsedBytes": 81833392,
"domNodes": -276,
"jsHeapTotalBytes": 6033408,
"scriptDurationMs": 1086.1080000000002,
"eventListeners": -128,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 12164.98100000001,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12150.35,
"heapDeltaBytes": -46574252,
"heapUsedBytes": 173487856,
"domNodes": -8312,
"jsHeapTotalBytes": -16973824,
"scriptDurationMs": 414.59,
"eventListeners": -16393,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 12332.779000000073,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12322.395,
"heapDeltaBytes": -44027560,
"heapUsedBytes": 182194832,
"domNodes": -8312,
"jsHeapTotalBytes": -6230016,
"scriptDurationMs": 382.97099999999995,
"eventListeners": -16391,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.220000000000073,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-pan",
"durationMs": 14185.021000000006,
"styleRecalcs": 66,
"styleRecalcDurationMs": 14.800000000000008,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 14173.793,
"heapDeltaBytes": -58856388,
"heapUsedBytes": 156251848,
"domNodes": -8312,
"jsHeapTotalBytes": -14614528,
"scriptDurationMs": 632.157,
"eventListeners": -16391,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 14920.863999999938,
"styleRecalcs": 69,
"styleRecalcDurationMs": 15.881000000000006,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 14907.306000000002,
"heapDeltaBytes": -50131932,
"heapUsedBytes": 157994480,
"domNodes": -8312,
"jsHeapTotalBytes": -17764352,
"scriptDurationMs": 713.125,
"eventListeners": -16389,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "workflow-execution",
"durationMs": 436.10799999999017,
"styleRecalcs": 18,
"styleRecalcDurationMs": 18.788,
"layouts": 3,
"layoutDurationMs": 0.5650000000000001,
"taskDurationMs": 94.654,
"heapDeltaBytes": -15761244,
"heapUsedBytes": 51115448,
"domNodes": 136,
"jsHeapTotalBytes": 7729152,
"scriptDurationMs": 11.056,
"eventListeners": 67,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "workflow-execution",
"durationMs": 439.87299999992047,
"styleRecalcs": 15,
"styleRecalcDurationMs": 16.907,
"layouts": 2,
"layoutDurationMs": 0.4029999999999999,
"taskDurationMs": 97.833,
"heapDeltaBytes": -16293408,
"heapUsedBytes": 51060772,
"domNodes": 123,
"jsHeapTotalBytes": 7991296,
"scriptDurationMs": 11.245,
"eventListeners": 67,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.700000000000273
}
]
} |
📝 WalkthroughWalkthrough
ChangesDatadog RUM frontend version context
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested labels: Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 inconclusive)
✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/platform/telemetry/initDatadogRum.test.ts`:
- Around line 28-31: Replace the derived expectedReleaseMinor value in the
telemetry test with an independent fixed version fixture and literal major.minor
expectation. Ensure the test asserts the produced release_minor behavior without
reusing the production split/join parsing logic.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 6e4c00ad-fc73-48cd-9bdc-f531c2bc7d95
📒 Files selected for processing (2)
src/platform/telemetry/initDatadogRum.test.tssrc/platform/telemetry/initDatadogRum.ts
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #14235 +/- ##
==========================================
- Coverage 79.44% 79.40% -0.05%
==========================================
Files 1754 1754
Lines 111080 110359 -721
Branches 37281 36280 -1001
==========================================
- Hits 88250 87626 -624
+ Misses 22282 22200 -82
+ Partials 548 533 -15
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 29 files with indirect coverage changes 🚀 New features to boost your workflow:
|
|
TYSM @christian-byrne |
📄 Knowledge reviewDosu skipped reviewing this PR because your organization has used its |
|
|
Summary
Expose
comfyui_frontend_versionon Datadog RUM events so dashboard traffic can be filtered by the frontend release.Changes
comfyui_frontend_versiondirectly from__COMFYUI_FRONTEND_VERSION__before RUM initialization.Review Focus
Confirm that the attribute name and build-time frontend version match the dashboard contract.
Created by Codex