[backport cloud/1.47] feat(billing): add independent billing control flag#13816
Conversation
|
Important Review skippedIgnore keyword(s) in the title. ⛔ Ignored keywords (2)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 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 |
🎭 Playwright: ✅ 1694 passed, 0 failed · 3 flaky📊 Browser Reports
🎨 Storybook: ✅ Built — View Storybook📦 Bundle Size
⚡ Performance Report
Absolute values
Raw data{
"timestamp": "2026-07-19T01:15:15.481Z",
"gitSha": "55dc49db98119ae465330a3b2c86347458fe9d15",
"branch": "dante/backport-billing-control-enabled-cloud-1.47",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2068.288999999993,
"styleRecalcs": 8,
"styleRecalcDurationMs": 8.148,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 480.136,
"heapDeltaBytes": -7494072,
"heapUsedBytes": 62434600,
"domNodes": -280,
"jsHeapTotalBytes": 18497536,
"scriptDurationMs": 22.035999999999998,
"eventListeners": -199,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-idle",
"durationMs": 2055.663000000038,
"styleRecalcs": 10,
"styleRecalcDurationMs": 10.044999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 506.8300000000001,
"heapDeltaBytes": -4937248,
"heapUsedBytes": 47151872,
"domNodes": -285,
"jsHeapTotalBytes": 16379904,
"scriptDurationMs": 25.498,
"eventListeners": -199,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 2074.4080000000054,
"styleRecalcs": 76,
"styleRecalcDurationMs": 46.954,
"layouts": 12,
"layoutDurationMs": 4.478,
"taskDurationMs": 991.957,
"heapDeltaBytes": -5837224,
"heapUsedBytes": 47324044,
"domNodes": -276,
"jsHeapTotalBytes": 16642048,
"scriptDurationMs": 147.49499999999998,
"eventListeners": -199,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1850.4159999999956,
"styleRecalcs": 75,
"styleRecalcDurationMs": 41.778,
"layouts": 12,
"layoutDurationMs": 3.615,
"taskDurationMs": 838.8480000000001,
"heapDeltaBytes": -3486436,
"heapUsedBytes": 54084028,
"domNodes": 57,
"jsHeapTotalBytes": 18874368,
"scriptDurationMs": 142.754,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1713.9249999999606,
"styleRecalcs": 31,
"styleRecalcDurationMs": 18.12,
"layouts": 6,
"layoutDurationMs": 0.5640000000000001,
"taskDurationMs": 331.978,
"heapDeltaBytes": 2499728,
"heapUsedBytes": 63462212,
"domNodes": 78,
"jsHeapTotalBytes": 26214400,
"scriptDurationMs": 22.485,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1724.1449999999077,
"styleRecalcs": 30,
"styleRecalcDurationMs": 17.862,
"layouts": 6,
"layoutDurationMs": 0.5920000000000001,
"taskDurationMs": 343.352,
"heapDeltaBytes": 2280572,
"heapUsedBytes": 61221288,
"domNodes": 76,
"jsHeapTotalBytes": 25165824,
"scriptDurationMs": 23.760000000000005,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 618.9269999999851,
"styleRecalcs": 13,
"styleRecalcDurationMs": 9.915999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 384.23799999999994,
"heapDeltaBytes": 6205828,
"heapUsedBytes": 70683672,
"domNodes": 22,
"jsHeapTotalBytes": 20992000,
"scriptDurationMs": 62.620999999999995,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "dom-widget-clipping",
"durationMs": 633.1429999999045,
"styleRecalcs": 12,
"styleRecalcDurationMs": 9.315999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 408.59499999999997,
"heapDeltaBytes": 7868720,
"heapUsedBytes": 60049648,
"domNodes": -285,
"jsHeapTotalBytes": 10088448,
"scriptDurationMs": 64.4,
"eventListeners": -203,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-idle",
"durationMs": 2025.4209999999944,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.683,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 557.6659999999999,
"heapDeltaBytes": -8936400,
"heapUsedBytes": 63431144,
"domNodes": 20,
"jsHeapTotalBytes": 9056256,
"scriptDurationMs": 105.298,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-idle",
"durationMs": 2041.3690000000315,
"styleRecalcs": 8,
"styleRecalcDurationMs": 9.825000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 596.4590000000001,
"heapDeltaBytes": -9099160,
"heapUsedBytes": 59088488,
"domNodes": -269,
"jsHeapTotalBytes": -2371584,
"scriptDurationMs": 106.244,
"eventListeners": -197,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2141.206000000011,
"styleRecalcs": 69,
"styleRecalcDurationMs": 18.662,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1206.7039999999997,
"heapDeltaBytes": 13378804,
"heapUsedBytes": 83231816,
"domNodes": -271,
"jsHeapTotalBytes": -1118208,
"scriptDurationMs": 433.628,
"eventListeners": -197,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2111.8470000000116,
"styleRecalcs": 70,
"styleRecalcDurationMs": 20.905000000000005,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1144.462,
"heapDeltaBytes": -15619616,
"heapUsedBytes": 57850580,
"domNodes": 18,
"jsHeapTotalBytes": 12464128,
"scriptDurationMs": 402.734,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3189.1469999999913,
"styleRecalcs": 64,
"styleRecalcDurationMs": 18.741,
"layouts": 60,
"layoutDurationMs": 7.849,
"taskDurationMs": 1403.2879999999998,
"heapDeltaBytes": 16822660,
"heapUsedBytes": 74252204,
"domNodes": 10,
"jsHeapTotalBytes": 7077888,
"scriptDurationMs": 513.3930000000001,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3185.069999999996,
"styleRecalcs": 63,
"styleRecalcDurationMs": 16.392,
"layouts": 60,
"layoutDurationMs": 7.553,
"taskDurationMs": 1364.372,
"heapDeltaBytes": 13666364,
"heapUsedBytes": 67394876,
"domNodes": -280,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 511.2370000000001,
"eventListeners": -195,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "minimap-idle",
"durationMs": 2018.453999999963,
"styleRecalcs": 6,
"styleRecalcDurationMs": 5.483999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 553.24,
"heapDeltaBytes": -3662244,
"heapUsedBytes": 59762596,
"domNodes": -272,
"jsHeapTotalBytes": -1093632,
"scriptDurationMs": 105.495,
"eventListeners": -197,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2002.254999999991,
"styleRecalcs": 8,
"styleRecalcDurationMs": 9.234,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 630.956,
"heapDeltaBytes": 10957548,
"heapUsedBytes": 67820712,
"domNodes": 16,
"jsHeapTotalBytes": 4718592,
"scriptDurationMs": 111.649,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 624.2210000000341,
"styleRecalcs": 46,
"styleRecalcDurationMs": 12.184000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 425.623,
"heapDeltaBytes": -22667176,
"heapUsedBytes": 47307592,
"domNodes": -277,
"jsHeapTotalBytes": 6176768,
"scriptDurationMs": 125.84400000000001,
"eventListeners": -197,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 612.4479999999721,
"styleRecalcs": 47,
"styleRecalcDurationMs": 12.973,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 432.699,
"heapDeltaBytes": -24073080,
"heapUsedBytes": 45974092,
"domNodes": -278,
"jsHeapTotalBytes": 6176768,
"scriptDurationMs": 133.00500000000002,
"eventListeners": -195,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2026.896000000022,
"styleRecalcs": 10,
"styleRecalcDurationMs": 10.465,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 451.685,
"heapDeltaBytes": 19397872,
"heapUsedBytes": 71869516,
"domNodes": -287,
"jsHeapTotalBytes": 15593472,
"scriptDurationMs": 19.787,
"eventListeners": -199,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2041.6139999999814,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.496999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 455.23999999999995,
"heapDeltaBytes": -7413256,
"heapUsedBytes": 62687956,
"domNodes": -271,
"jsHeapTotalBytes": 18759680,
"scriptDurationMs": 18.319000000000003,
"eventListeners": -199,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1761.3669999999502,
"styleRecalcs": 76,
"styleRecalcDurationMs": 44.13699999999999,
"layouts": 16,
"layoutDurationMs": 4.551,
"taskDurationMs": 787.033,
"heapDeltaBytes": 17085500,
"heapUsedBytes": 69414472,
"domNodes": -269,
"jsHeapTotalBytes": 15069184,
"scriptDurationMs": 103.759,
"eventListeners": -199,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1719.6890000000167,
"styleRecalcs": 75,
"styleRecalcDurationMs": 39.864000000000004,
"layouts": 16,
"layoutDurationMs": 4.422000000000001,
"taskDurationMs": 744.173,
"heapDeltaBytes": 4277244,
"heapUsedBytes": 56712756,
"domNodes": -223,
"jsHeapTotalBytes": 16379904,
"scriptDurationMs": 100.405,
"eventListeners": -199,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-transition-enter",
"durationMs": 982.422999999983,
"styleRecalcs": 17,
"styleRecalcDurationMs": 33.805,
"layouts": 13,
"layoutDurationMs": 16.503000000000004,
"taskDurationMs": 806.0240000000001,
"heapDeltaBytes": 29116200,
"heapUsedBytes": 101433664,
"domNodes": 13673,
"jsHeapTotalBytes": 15990784,
"scriptDurationMs": 30.35600000000001,
"eventListeners": 2531,
"totalBlockingTimeMs": 167,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8162.779,
"styleRecalcs": 250,
"styleRecalcDurationMs": 54.834999999999994,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4264.13,
"heapDeltaBytes": 13605348,
"heapUsedBytes": 74634292,
"domNodes": -268,
"jsHeapTotalBytes": 5664768,
"scriptDurationMs": 1448.1899999999998,
"eventListeners": -183,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8216.578000000027,
"styleRecalcs": 249,
"styleRecalcDurationMs": 53.614,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4398.307,
"heapDeltaBytes": 15822300,
"heapUsedBytes": 76953212,
"domNodes": -271,
"jsHeapTotalBytes": 8810496,
"scriptDurationMs": 1547.768,
"eventListeners": -183,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 13320.641999999963,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 13300.431,
"heapDeltaBytes": -21185312,
"heapUsedBytes": 168307820,
"domNodes": -3302,
"jsHeapTotalBytes": 17272832,
"scriptDurationMs": 549.381,
"eventListeners": -16376,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 12768.256000000065,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12751.731,
"heapDeltaBytes": -29815108,
"heapUsedBytes": 169896092,
"domNodes": -3300,
"jsHeapTotalBytes": 9175040,
"scriptDurationMs": 612.897,
"eventListeners": -16368,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.77333333333336,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 15676.198999999997,
"styleRecalcs": 83,
"styleRecalcDurationMs": 21.16699999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 15649.815999999997,
"heapDeltaBytes": -52419244,
"heapUsedBytes": 168338324,
"domNodes": -8311,
"jsHeapTotalBytes": 17297408,
"scriptDurationMs": 827.386,
"eventListeners": -16368,
"totalBlockingTimeMs": 3,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 16299.759999999991,
"styleRecalcs": 98,
"styleRecalcDurationMs": 21.395999999999972,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 16268.957,
"heapDeltaBytes": -16651676,
"heapUsedBytes": 172506948,
"domNodes": -3302,
"jsHeapTotalBytes": 20942848,
"scriptDurationMs": 829.841,
"eventListeners": -16371,
"totalBlockingTimeMs": 86,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 446.5009999999552,
"styleRecalcs": 12,
"styleRecalcDurationMs": 19.634,
"layouts": 2,
"layoutDurationMs": 0.399,
"taskDurationMs": 100.00200000000001,
"heapDeltaBytes": 4894356,
"heapUsedBytes": 57509460,
"domNodes": 128,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 9.520000000000001,
"eventListeners": 65,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "workflow-execution",
"durationMs": 454.0860000000748,
"styleRecalcs": 10,
"styleRecalcDurationMs": 17.73,
"layouts": 3,
"layoutDurationMs": 0.748,
"taskDurationMs": 102.89999999999999,
"heapDeltaBytes": 4656316,
"heapUsedBytes": 56883608,
"domNodes": 115,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 9.968000000000002,
"eventListeners": 67,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
}
]
} |
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## cloud/1.47 #13816 +/- ##
=============================================
Coverage ? 78.26%
=============================================
Files ? 1662
Lines ? 93128
Branches ? 32921
=============================================
Hits ? 72882
Misses ? 19634
Partials ? 612
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
@luke-mino-altherr This is the cloud/1.47 equivalent of the focused cloud/1.45 dependency backport you approved in #13815. All checks are green; could you review it when available so the Members backport can proceed? |
077e8f3 to
5ee5620
Compare
Summary
Adds
billing_control_enabledtocloud/1.47without replacing the existingconsolidated_billing_enabledrollout.Changes
Review Focus
The backend registers these as separate rollouts: consolidated billing selects the existing workspace-scoped billing flow, while billing control gates the new billing UX.
Screenshots (if applicable)
Not applicable; this adds flag plumbing without visual changes.