refactor: rename isActiveSubscription to canAccessSubscriptionFeatures#11464
refactor: rename isActiveSubscription to canAccessSubscriptionFeatures#11464christian-byrne wants to merge 1 commit into
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds a Vitest test suite for dialogService verifying showTopUpCreditsDialog behavior across legacy and workspace billing states and that dialog props are forwarded to showDialog. ChangesSubscription Feature-Access Migration
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
🚥 Pre-merge checks | ✅ 6 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (6 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #11464 +/- ##
==========================================
+ Coverage 77.48% 77.54% +0.05%
==========================================
Files 1632 1632
Lines 90940 90946 +6
Branches 31048 30298 -750
==========================================
+ Hits 70465 70522 +57
+ Misses 19829 19779 -50
+ Partials 646 645 -1
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:
|
📦 Bundle: 5.35 MB gzip 🔴 +294 BDetailsSummary
Category Glance App Entry Points — 32 kB (baseline 32 kB) • ⚪ 0 BMain entry bundles and manifests
Status: 1 added / 1 removed Graph Workspace — 1.24 MB (baseline 1.24 MB) • 🔴 +99 BGraph editor runtime, canvas, workflow orchestration
Status: 1 added / 1 removed Views & Navigation — 82.7 kB (baseline 82.6 kB) • 🔴 +18 BTop-level views, pages, and routed surfaces
Status: 9 added / 9 removed / 2 unchanged Panels & Settings — 526 kB (baseline 526 kB) • 🔴 +117 BConfiguration panels, inspectors, and settings screens
Status: 10 added / 10 removed / 14 unchanged User & Accounts — 17.7 kB (baseline 17.7 kB) • ⚪ 0 BAuthentication, profile, and account management bundles
Status: 5 added / 5 removed / 2 unchanged Editors & Dialogs — 112 kB (baseline 112 kB) • ⚪ 0 BModals, dialogs, drawers, and in-app editors
Status: 4 added / 4 removed UI Components — 57.9 kB (baseline 57.9 kB) • 🔴 +18 BReusable component library chunks
Status: 5 added / 5 removed / 8 unchanged Data & Services — 3.16 MB (baseline 3.16 MB) • 🔴 +179 BStores, services, APIs, and repositories
Status: 13 added / 13 removed / 4 unchanged Utilities & Hooks — 369 kB (baseline 369 kB) • ⚪ 0 BHelpers, composables, and utility bundles
Status: 13 added / 13 removed / 19 unchanged Vendor & Third-Party — 9.94 MB (baseline 9.94 MB) • ⚪ 0 BExternal libraries and shared vendor chunks Status: 16 unchanged Other — 9.14 MB (baseline 9.14 MB) • 🔴 +317 BBundles that do not match a named category
Status: 57 added / 57 removed / 85 unchanged ⚡ Performance Report
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-05-14T23:48:11.360Z",
"gitSha": "8445c0bf6d7aa76c1d3f5466d34cc62aa0e22892",
"branch": "glary/rename-is-active-subscription",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2043.058999999971,
"styleRecalcs": 8,
"styleRecalcDurationMs": 8.651,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 429.272,
"heapDeltaBytes": 1263868,
"heapUsedBytes": 67499352,
"domNodes": 16,
"jsHeapTotalBytes": 19226624,
"scriptDurationMs": 22.463000000000005,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-idle",
"durationMs": 2028.9820000000418,
"styleRecalcs": 9,
"styleRecalcDurationMs": 9.783,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 471.968,
"heapDeltaBytes": 12116,
"heapUsedBytes": 66532376,
"domNodes": -264,
"jsHeapTotalBytes": 23023616,
"scriptDurationMs": 19.78,
"eventListeners": -161,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1994.782999999984,
"styleRecalcs": 77,
"styleRecalcDurationMs": 44.126,
"layouts": 12,
"layoutDurationMs": 3.887,
"taskDurationMs": 921.633,
"heapDeltaBytes": 1229952,
"heapUsedBytes": 50174176,
"domNodes": -265,
"jsHeapTotalBytes": 15593472,
"scriptDurationMs": 145.327,
"eventListeners": -131,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1841.3460000000441,
"styleRecalcs": 75,
"styleRecalcDurationMs": 42.548,
"layouts": 12,
"layoutDurationMs": 3.7,
"taskDurationMs": 796.7729999999999,
"heapDeltaBytes": -96512,
"heapUsedBytes": 68000720,
"domNodes": 59,
"jsHeapTotalBytes": 19922944,
"scriptDurationMs": 139.544,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1722.201000000041,
"styleRecalcs": 32,
"styleRecalcDurationMs": 16.804000000000002,
"layouts": 6,
"layoutDurationMs": 0.6329999999999999,
"taskDurationMs": 300.354,
"heapDeltaBytes": 269852,
"heapUsedBytes": 49732732,
"domNodes": 77,
"jsHeapTotalBytes": 14942208,
"scriptDurationMs": 19.698000000000008,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1739.2449999999826,
"styleRecalcs": 32,
"styleRecalcDurationMs": 19.858,
"layouts": 6,
"layoutDurationMs": 0.621,
"taskDurationMs": 406.336,
"heapDeltaBytes": -13528220,
"heapUsedBytes": 54810876,
"domNodes": -209,
"jsHeapTotalBytes": 19877888,
"scriptDurationMs": 29.985,
"eventListeners": -118,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 569.5450000000051,
"styleRecalcs": 12,
"styleRecalcDurationMs": 8.957,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 359.349,
"heapDeltaBytes": 9414204,
"heapUsedBytes": 58875484,
"domNodes": 20,
"jsHeapTotalBytes": 15466496,
"scriptDurationMs": 69.609,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 575.0439999999344,
"styleRecalcs": 13,
"styleRecalcDurationMs": 10.03,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 363.52,
"heapDeltaBytes": -9070776,
"heapUsedBytes": 59175416,
"domNodes": 22,
"jsHeapTotalBytes": 18874368,
"scriptDurationMs": 65.37799999999999,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "large-graph-idle",
"durationMs": 2072.3009999999817,
"styleRecalcs": 9,
"styleRecalcDurationMs": 9.982000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 580.665,
"heapDeltaBytes": 7517808,
"heapUsedBytes": 65551840,
"domNodes": -260,
"jsHeapTotalBytes": -237568,
"scriptDurationMs": 98.404,
"eventListeners": -129,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-idle",
"durationMs": 2053.4790000000385,
"styleRecalcs": 9,
"styleRecalcDurationMs": 9.212000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 590.4689999999999,
"heapDeltaBytes": 2707276,
"heapUsedBytes": 61458764,
"domNodes": -262,
"jsHeapTotalBytes": 5005312,
"scriptDurationMs": 102.08300000000001,
"eventListeners": -129,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2264.6859999999833,
"styleRecalcs": 69,
"styleRecalcDurationMs": 18.575,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1279.615,
"heapDeltaBytes": 42945756,
"heapUsedBytes": 103862388,
"domNodes": -262,
"jsHeapTotalBytes": 37744640,
"scriptDurationMs": 442.414,
"eventListeners": -127,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2145.087000000103,
"styleRecalcs": 69,
"styleRecalcDurationMs": 18.746000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1115.0669999999998,
"heapDeltaBytes": -858604,
"heapUsedBytes": 58624408,
"domNodes": -262,
"jsHeapTotalBytes": 5472256,
"scriptDurationMs": 395.39799999999997,
"eventListeners": -127,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3184.7569999999905,
"styleRecalcs": 65,
"styleRecalcDurationMs": 18.732000000000003,
"layouts": 60,
"layoutDurationMs": 7.661,
"taskDurationMs": 1377.593,
"heapDeltaBytes": -4366876,
"heapUsedBytes": 56334548,
"domNodes": -268,
"jsHeapTotalBytes": 5267456,
"scriptDurationMs": 507.984,
"eventListeners": -157,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-zoom",
"durationMs": 3231.5949999999702,
"styleRecalcs": 63,
"styleRecalcDurationMs": 16.286,
"layouts": 60,
"layoutDurationMs": 7.156,
"taskDurationMs": 1406.072,
"heapDeltaBytes": 43392388,
"heapUsedBytes": 106145788,
"domNodes": -272,
"jsHeapTotalBytes": 43540480,
"scriptDurationMs": 494.971,
"eventListeners": -125,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2034.074999999973,
"styleRecalcs": 7,
"styleRecalcDurationMs": 7.978000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 544.2900000000001,
"heapDeltaBytes": 8014876,
"heapUsedBytes": 68401224,
"domNodes": -265,
"jsHeapTotalBytes": 1073152,
"scriptDurationMs": 91.37099999999998,
"eventListeners": -129,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2025.6969999999228,
"styleRecalcs": 8,
"styleRecalcDurationMs": 9.764999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 598.776,
"heapDeltaBytes": 6442012,
"heapUsedBytes": 66616164,
"domNodes": -268,
"jsHeapTotalBytes": 548864,
"scriptDurationMs": 104.575,
"eventListeners": -129,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 621.0159999999973,
"styleRecalcs": 46,
"styleRecalcDurationMs": 11.763,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 432.56100000000004,
"heapDeltaBytes": -19593228,
"heapUsedBytes": 46628732,
"domNodes": -261,
"jsHeapTotalBytes": 21450752,
"scriptDurationMs": 131.47199999999998,
"eventListeners": -159,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999727
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 555.8230000000322,
"styleRecalcs": 46,
"styleRecalcDurationMs": 11.817999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 376.1960000000001,
"heapDeltaBytes": -3635068,
"heapUsedBytes": 65147460,
"domNodes": 18,
"jsHeapTotalBytes": 20185088,
"scriptDurationMs": 118.079,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "subgraph-idle",
"durationMs": 2026.4490000000137,
"styleRecalcs": 12,
"styleRecalcDurationMs": 12.472999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 514.0519999999999,
"heapDeltaBytes": 20032316,
"heapUsedBytes": 68769260,
"domNodes": -259,
"jsHeapTotalBytes": 19001344,
"scriptDurationMs": 26.601999999999997,
"eventListeners": -131,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2024.7779999999693,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.864,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 426.42900000000003,
"heapDeltaBytes": 7308788,
"heapUsedBytes": 56110440,
"domNodes": -263,
"jsHeapTotalBytes": 16117760,
"scriptDurationMs": 16.616,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1749.9540000000025,
"styleRecalcs": 76,
"styleRecalcDurationMs": 39.275,
"layouts": 16,
"layoutDurationMs": 4.649,
"taskDurationMs": 770.818,
"heapDeltaBytes": 10073128,
"heapUsedBytes": 60305684,
"domNodes": -258,
"jsHeapTotalBytes": 21975040,
"scriptDurationMs": 104.347,
"eventListeners": -131,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1720.9179999999833,
"styleRecalcs": 76,
"styleRecalcDurationMs": 36.573,
"layouts": 16,
"layoutDurationMs": 3.7880000000000007,
"taskDurationMs": 744.9870000000001,
"heapDeltaBytes": 24420300,
"heapUsedBytes": 78121508,
"domNodes": 64,
"jsHeapTotalBytes": 46137344,
"scriptDurationMs": 95.67600000000002,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-transition-enter",
"durationMs": 1011.0220000000254,
"styleRecalcs": 16,
"styleRecalcDurationMs": 26.542,
"layouts": 4,
"layoutDurationMs": 11.722,
"taskDurationMs": 814.716,
"heapDeltaBytes": 82022184,
"heapUsedBytes": 221583616,
"domNodes": 13513,
"jsHeapTotalBytes": 80478208,
"scriptDurationMs": 27.072000000000013,
"eventListeners": 2527,
"totalBlockingTimeMs": 157,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "viewport-pan-sweep",
"durationMs": 8451.629000000026,
"styleRecalcs": 250,
"styleRecalcDurationMs": 52.51500000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4113.539000000001,
"heapDeltaBytes": 72589960,
"heapUsedBytes": 132477120,
"domNodes": -260,
"jsHeapTotalBytes": 53735424,
"scriptDurationMs": 1265.382,
"eventListeners": -127,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "viewport-pan-sweep",
"durationMs": 8146.317999999951,
"styleRecalcs": 249,
"styleRecalcDurationMs": 50.477999999999994,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3764.0640000000003,
"heapDeltaBytes": 14416432,
"heapUsedBytes": 73894292,
"domNodes": -261,
"jsHeapTotalBytes": 5238784,
"scriptDurationMs": 1258.732,
"eventListeners": -113,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 12029.558000000008,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12019.436,
"heapDeltaBytes": -37544848,
"heapUsedBytes": 165844216,
"domNodes": -8331,
"jsHeapTotalBytes": 16576512,
"scriptDurationMs": 581.393,
"eventListeners": -16464,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 13074.79699999999,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 13030.823999999999,
"heapDeltaBytes": -27523208,
"heapUsedBytes": 165193732,
"domNodes": -3310,
"jsHeapTotalBytes": 20156416,
"scriptDurationMs": 627.9939999999999,
"eventListeners": -16474,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.220000000000073,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 17116.538000000048,
"styleRecalcs": 102,
"styleRecalcDurationMs": 18.63300000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17091.209,
"heapDeltaBytes": 6640656,
"heapUsedBytes": 269279976,
"domNodes": -8329,
"jsHeapTotalBytes": -548864,
"scriptDurationMs": 1061.911,
"eventListeners": -16488,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-pan",
"durationMs": 14462.356999999996,
"styleRecalcs": 66,
"styleRecalcDurationMs": 18.30499999999996,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 14435.392999999998,
"heapDeltaBytes": -28005748,
"heapUsedBytes": 169982144,
"domNodes": -3302,
"jsHeapTotalBytes": 14856192,
"scriptDurationMs": 912.6619999999998,
"eventListeners": -16466,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "workflow-execution",
"durationMs": 466.02600000005623,
"styleRecalcs": 18,
"styleRecalcDurationMs": 25.514999999999997,
"layouts": 5,
"layoutDurationMs": 1.5199999999999998,
"taskDurationMs": 150.133,
"heapDeltaBytes": -14584064,
"heapUsedBytes": 52993800,
"domNodes": 170,
"jsHeapTotalBytes": 4022272,
"scriptDurationMs": 29.900000000000002,
"eventListeners": 71,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "workflow-execution",
"durationMs": 449.1570000000138,
"styleRecalcs": 17,
"styleRecalcDurationMs": 22.424,
"layouts": 4,
"layoutDurationMs": 1.073,
"taskDurationMs": 111.54900000000004,
"heapDeltaBytes": 5065512,
"heapUsedBytes": 55278864,
"domNodes": 157,
"jsHeapTotalBytes": 262144,
"scriptDurationMs": 22.529,
"eventListeners": 69,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
}
]
}🎭 Playwright: ✅ 1713 passed, 0 failed · 2 flaky📊 Browser Reports
🎨 Storybook: ✅ Built — View Storybook📦 Bundle: 7.91 MB gzip 🟢 -2.26 kBDetailsSummary
Category Glance App Entry Points — 47.3 kB (baseline 47.3 kB) • ⚪ 0 BMain entry bundles and manifests
Status: 1 added / 1 removed Graph Workspace — 1.25 MB (baseline 1.25 MB) • 🟢 -15 BGraph editor runtime, canvas, workflow orchestration
Status: 1 added / 1 removed Views & Navigation — 109 kB (baseline 109 kB) • 🔴 +18 BTop-level views, pages, and routed surfaces
Status: 11 added / 11 removed / 3 unchanged Panels & Settings — 555 kB (baseline 550 kB) • 🔴 +4.46 kBConfiguration 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 — 56.9 kB (baseline 56.8 kB) • 🔴 +18 BReusable component library chunks
Status: 5 added / 5 removed / 8 unchanged Data & Services — 270 kB (baseline 270 kB) • ⚪ 0 BStores, services, APIs, and repositories
Status: 13 added / 13 removed / 3 unchanged Utilities & Hooks — 3.4 MB (baseline 3.4 MB) • 🟢 -530 BHelpers, composables, and utility bundles
Status: 16 added / 16 removed / 20 unchanged Vendor & Third-Party — 15.7 MB (baseline 15.7 MB) • ⚪ 0 BExternal libraries and shared vendor chunks Status: 16 unchanged Other — 11.9 MB (baseline 11.9 MB) • 🟢 -12.1 kBBundles that do not match a named category
Status: 66 added / 66 removed / 97 unchanged ⚡ Performance Report
Show regressions
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-07-17T22:05:41.788Z",
"gitSha": "e20e71c75b71a18a71495340afa75b037bcb1311",
"branch": "glary/rename-is-active-subscription",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2161.6020000000162,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.123000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 618.104,
"heapDeltaBytes": -22896788,
"heapUsedBytes": 45958728,
"domNodes": 20,
"jsHeapTotalBytes": 19542016,
"scriptDurationMs": 31.861,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "canvas-idle",
"durationMs": 2014.6560000000022,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.072,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 452.046,
"heapDeltaBytes": -20241940,
"heapUsedBytes": 48534992,
"domNodes": -266,
"jsHeapTotalBytes": 19279872,
"scriptDurationMs": 20.959000000000003,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1825.0129999999842,
"styleRecalcs": 72,
"styleRecalcDurationMs": 42.751,
"layouts": 12,
"layoutDurationMs": 3.4379999999999997,
"taskDurationMs": 795.786,
"heapDeltaBytes": -14456596,
"heapUsedBytes": 54254952,
"domNodes": -264,
"jsHeapTotalBytes": 20852736,
"scriptDurationMs": 113.80200000000002,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1824.3559999999661,
"styleRecalcs": 77,
"styleRecalcDurationMs": 40.466,
"layouts": 12,
"layoutDurationMs": 4.674,
"taskDurationMs": 830.4469999999999,
"heapDeltaBytes": -22959448,
"heapUsedBytes": 45861920,
"domNodes": 58,
"jsHeapTotalBytes": 19542016,
"scriptDurationMs": 119.279,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1710.8159999999657,
"styleRecalcs": 31,
"styleRecalcDurationMs": 15.491999999999999,
"layouts": 6,
"layoutDurationMs": 0.6589999999999998,
"taskDurationMs": 295.13900000000007,
"heapDeltaBytes": 7546944,
"heapUsedBytes": 76437596,
"domNodes": 77,
"jsHeapTotalBytes": 19152896,
"scriptDurationMs": 17.565,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1724.6300000000474,
"styleRecalcs": 31,
"styleRecalcDurationMs": 16.508000000000003,
"layouts": 6,
"layoutDurationMs": 0.7329999999999999,
"taskDurationMs": 309.183,
"heapDeltaBytes": 7406880,
"heapUsedBytes": 76157104,
"domNodes": 77,
"jsHeapTotalBytes": 19939328,
"scriptDurationMs": 19.168999999999997,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 559.8480000000166,
"styleRecalcs": 12,
"styleRecalcDurationMs": 8.677999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 335.818,
"heapDeltaBytes": -11809712,
"heapUsedBytes": 57107208,
"domNodes": 20,
"jsHeapTotalBytes": 20201472,
"scriptDurationMs": 53.18600000000001,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 561.8529999999851,
"styleRecalcs": 11,
"styleRecalcDurationMs": 8.014000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 349.65999999999997,
"heapDeltaBytes": -11623944,
"heapUsedBytes": 57241684,
"domNodes": 18,
"jsHeapTotalBytes": 19677184,
"scriptDurationMs": 54.056,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-idle",
"durationMs": 2013.5310000000004,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.437,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 656.4870000000001,
"heapDeltaBytes": 4882328,
"heapUsedBytes": 64121704,
"domNodes": -269,
"jsHeapTotalBytes": 4407296,
"scriptDurationMs": 101.73000000000002,
"eventListeners": -129,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-idle",
"durationMs": 2040.300000000002,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.818000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 530.1560000000001,
"heapDeltaBytes": 5793928,
"heapUsedBytes": 66596888,
"domNodes": -266,
"jsHeapTotalBytes": 4669440,
"scriptDurationMs": 80.35000000000001,
"eventListeners": -127,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2142.9129999999645,
"styleRecalcs": 69,
"styleRecalcDurationMs": 15.355999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1104.145,
"heapDeltaBytes": -4770620,
"heapUsedBytes": 55836560,
"domNodes": -268,
"jsHeapTotalBytes": 5455872,
"scriptDurationMs": 385.35999999999996,
"eventListeners": -127,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2140.529000000015,
"styleRecalcs": 67,
"styleRecalcDurationMs": 12.822000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1074.7179999999998,
"heapDeltaBytes": -3509900,
"heapUsedBytes": 57361932,
"domNodes": -273,
"jsHeapTotalBytes": 5980160,
"scriptDurationMs": 400.081,
"eventListeners": -129,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-zoom",
"durationMs": 3151.666999999975,
"styleRecalcs": 66,
"styleRecalcDurationMs": 15.69,
"layouts": 60,
"layoutDurationMs": 8.122,
"taskDurationMs": 1284.069,
"heapDeltaBytes": -5003696,
"heapUsedBytes": 56650628,
"domNodes": -269,
"jsHeapTotalBytes": 8077312,
"scriptDurationMs": 466.94800000000004,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3119.098000000008,
"styleRecalcs": 64,
"styleRecalcDurationMs": 14.036999999999997,
"layouts": 60,
"layoutDurationMs": 7.8999999999999995,
"taskDurationMs": 1290.0320000000002,
"heapDeltaBytes": -8235288,
"heapUsedBytes": 53532068,
"domNodes": 10,
"jsHeapTotalBytes": 7815168,
"scriptDurationMs": 463.575,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2009.7670000000107,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.912000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 533.15,
"heapDeltaBytes": 5017824,
"heapUsedBytes": 66936476,
"domNodes": -267,
"jsHeapTotalBytes": 4931584,
"scriptDurationMs": 84.598,
"eventListeners": -127,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2037.9830000000538,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.979,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 537.4559999999999,
"heapDeltaBytes": 5584572,
"heapUsedBytes": 66621040,
"domNodes": -268,
"jsHeapTotalBytes": 4931584,
"scriptDurationMs": 83.68,
"eventListeners": -129,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 555.4199999999696,
"styleRecalcs": 48,
"styleRecalcDurationMs": 11.409,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 355.281,
"heapDeltaBytes": -11096812,
"heapUsedBytes": 57787384,
"domNodes": 22,
"jsHeapTotalBytes": 20201472,
"scriptDurationMs": 118.981,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 585.837999999967,
"styleRecalcs": 48,
"styleRecalcDurationMs": 11.977,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 380.06600000000003,
"heapDeltaBytes": -11473256,
"heapUsedBytes": 57526380,
"domNodes": 22,
"jsHeapTotalBytes": 20987904,
"scriptDurationMs": 127.37600000000002,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2046.3469999999973,
"styleRecalcs": 11,
"styleRecalcDurationMs": 9.72,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 452.6910000000001,
"heapDeltaBytes": -20581700,
"heapUsedBytes": 48381668,
"domNodes": -263,
"jsHeapTotalBytes": 19804160,
"scriptDurationMs": 17.476,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-idle",
"durationMs": 2054.463999999996,
"styleRecalcs": 11,
"styleRecalcDurationMs": 9.876000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 441.40500000000003,
"heapDeltaBytes": -22486276,
"heapUsedBytes": 46546580,
"domNodes": -265,
"jsHeapTotalBytes": 19279872,
"scriptDurationMs": 19.391,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1693.394000000012,
"styleRecalcs": 75,
"styleRecalcDurationMs": 35.284,
"layouts": 16,
"layoutDurationMs": 4.432,
"taskDurationMs": 712.581,
"heapDeltaBytes": -19213788,
"heapUsedBytes": 49970336,
"domNodes": -265,
"jsHeapTotalBytes": 19542016,
"scriptDurationMs": 89.42699999999999,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1713.2139999999936,
"styleRecalcs": 75,
"styleRecalcDurationMs": 34.217,
"layouts": 16,
"layoutDurationMs": 4.222,
"taskDurationMs": 639.096,
"heapDeltaBytes": -5238372,
"heapUsedBytes": 63828916,
"domNodes": 62,
"jsHeapTotalBytes": 19939328,
"scriptDurationMs": 82.959,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-transition-enter",
"durationMs": 933.2160000000158,
"styleRecalcs": 18,
"styleRecalcDurationMs": 28.821000000000012,
"layouts": 14,
"layoutDurationMs": 11.397999999999998,
"taskDurationMs": 729.4490000000002,
"heapDeltaBytes": 29060008,
"heapUsedBytes": 97764600,
"domNodes": 13673,
"jsHeapTotalBytes": 13107200,
"scriptDurationMs": 28.735999999999997,
"eventListeners": 2369,
"totalBlockingTimeMs": 113,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8184.225000000026,
"styleRecalcs": 249,
"styleRecalcDurationMs": 40.903,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3578.6230000000005,
"heapDeltaBytes": 15522220,
"heapUsedBytes": 74948936,
"domNodes": -266,
"jsHeapTotalBytes": 6709248,
"scriptDurationMs": 1148.29,
"eventListeners": -113,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "viewport-pan-sweep",
"durationMs": 8163.210999999933,
"styleRecalcs": 250,
"styleRecalcDurationMs": 41.508,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3587.404,
"heapDeltaBytes": 17278316,
"heapUsedBytes": 78144152,
"domNodes": -265,
"jsHeapTotalBytes": 6709248,
"scriptDurationMs": 1143.0249999999999,
"eventListeners": -113,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 13357.966000000033,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 13336.645,
"heapDeltaBytes": -40465636,
"heapUsedBytes": 170671264,
"domNodes": -8311,
"jsHeapTotalBytes": -7540736,
"scriptDurationMs": 564.773,
"eventListeners": -16386,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 13300.19200000004,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 13283.967,
"heapDeltaBytes": -37996204,
"heapUsedBytes": 172401860,
"domNodes": -8311,
"jsHeapTotalBytes": -4919296,
"scriptDurationMs": 523.722,
"eventListeners": -16388,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333237,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 16152.250000000038,
"styleRecalcs": 84,
"styleRecalcDurationMs": 13.659000000000033,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 16113.952000000001,
"heapDeltaBytes": -40166972,
"heapUsedBytes": 169671248,
"domNodes": -8311,
"jsHeapTotalBytes": -7540736,
"scriptDurationMs": 843.049,
"eventListeners": -16379,
"totalBlockingTimeMs": 37,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-pan",
"durationMs": 16207.90599999998,
"styleRecalcs": 84,
"styleRecalcDurationMs": 15.573999999999977,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 16184.255000000001,
"heapDeltaBytes": -68099376,
"heapUsedBytes": 156407008,
"domNodes": -8311,
"jsHeapTotalBytes": -14618624,
"scriptDurationMs": 804.0319999999999,
"eventListeners": -16382,
"totalBlockingTimeMs": 37,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "workflow-execution",
"durationMs": 450.6629999999632,
"styleRecalcs": 15,
"styleRecalcDurationMs": 20.925,
"layouts": 2,
"layoutDurationMs": 0.446,
"taskDurationMs": 114.56799999999998,
"heapDeltaBytes": -16423932,
"heapUsedBytes": 51655656,
"domNodes": 132,
"jsHeapTotalBytes": 7094272,
"scriptDurationMs": 10.012999999999998,
"eventListeners": 67,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 459.4369999999799,
"styleRecalcs": 15,
"styleRecalcDurationMs": 22.301000000000002,
"layouts": 4,
"layoutDurationMs": 1.403,
"taskDurationMs": 116.721,
"heapDeltaBytes": -16338392,
"heapUsedBytes": 51656060,
"domNodes": 117,
"jsHeapTotalBytes": 6832128,
"scriptDurationMs": 10.22,
"eventListeners": 65,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
}
]
} |
f97a432 to
aa548ff
Compare
|
there is conflict, please fix |
aa548ff to
b153063
Compare
christian-byrne
left a comment
There was a problem hiding this comment.
Code Review
Overall: Clean refactoring that improves naming clarity. The rename from isActiveSubscription to canAccessSubscriptionFeatures better communicates the semantic meaning - this flag represents whether a user has access to subscription-gated features, not just whether a subscription exists.
Positives
- Consistent rename across all 35+ files
- Tests updated appropriately to reflect new naming
- Type interface in
composables/billing/types.tsproperly updated - No functional logic changes, purely a naming refactor
Minor Observations
-
Component prop consistency - In
MemberUpsellBanner.vue, the prop is renamed tocanAccessSubscriptionFeatureswhich maintains consistency with the composable API. Good. -
Computed property derivation - In
useLegacyBilling.ts:42-44, the computed wraps the value fromuseSubscription():const canAccessSubscriptionFeatures = computed( () => legacyCanAccessSubscriptionFeatures.value )
This is necessary for the reactive wrapper, though it could theoretically use
toRef- current approach is fine. -
Test mock updates - All hoisted mocks in test files properly renamed (e.g.,
mockCanAccessSubscriptionFeatures). Good attention to detail.
Questions for the Author
-
Is there documentation (e.g., in docs.comfy.org or internal docs) that references
isActiveSubscriptionwhich should also be updated? -
The name change is more descriptive but also longer - was there consideration of alternatives like
hasSubscriptionAccessorisSubscribed?
Verdict
Approve - This is a straightforward, well-executed naming refactor that improves code clarity without changing behavior. All quality gates pass.
christian-byrne
left a comment
There was a problem hiding this comment.
We need 65%+ unit test code coverage to make the codecov CI check pass.
Addresses review feedback: #11464 (review)
Addresses review feedback: #11464 (review)
|
Addressing the self-review questions: 1. Documentation references to 2. Naming alternatives consideration: 3. Coverage requirement (65%+):
|
Addresses review feedback: #11464 (review)
Addresses review feedback: #11464 (review)
Addresses review feedback: #11464 (review)
Addresses review feedback: #11464 (review)
1868d66 to
0a06cca
Compare
pythongosssss
left a comment
There was a problem hiding this comment.
LGTM, although the nodeDef tests look like they could be moved to their own PR
5c266aa to
e55dd4b
Compare
|
✅ All contributors have signed the CLA. Thank you! This PR is ready to be merged. |
fa1f336 to
22ec131
Compare
a794625 to
8dfb024
Compare
The name isActiveSubscription was misleading: it's defined as !isCloud || !subscription_required || subscription.is_active so it returns true on non-cloud builds and when subscription is not required, regardless of actual subscription state. The new name canAccessSubscriptionFeatures reads correctly at every call site: 'if can access features, show UI / allow action'. Pure identifier rename, no behavioral changes. Also renames the internal alias isSubscribedOrIsNotCloud to match.
8dfb024 to
cf6f0dd
Compare
|
Rebased onto main and resolved merge conflicts. Summary of what changed during the rebase: Conflict resolutions (15 files):
Post-rebase type fixes:
All quality gates pass: typecheck ✅, lint ✅, format ✅ |
PR Created by the Glary-Bot Agent
Summary
Stacked on #11463. Renames the public
isActiveSubscriptioncomposable property tocanAccessSubscriptionFeaturesacross the codebase. Pure identifier rename, zero behavioral changes.Motivation
The name
isActiveSubscriptionwas misleading. Its actual definition inuseSubscription.ts:Semantics: returns
truewhen any of these hold:So it was
trueon local/desktop builds regardless of actual subscription state. Several call sites (e.g.CurrentUserPopoverLegacy.vuewith its redundantisCloud && isActiveSubscriptionpattern) suggested authors misread the name as "literally has active subscription" and added defensive guards. The new name reads correctly at every call site: "if can access features, show UI / allow action".PR #7127 previously attempted the internal rename (
isSubscribed→isSubscribedOrIsNotCloud) but was closed without merge after scope-creep feedback from CodeRabbit. It never touched the exported public name. This PR completes that work.Changes
isActiveSubscription→canAccessSubscriptionFeaturesin:useSubscription(the source of truth)useBillingContext(convenience wrapper)useWorkspaceBilling(workspace-scoped variant)useLegacyBillingisSubscribedOrIsNotCloud→canAccessSubscriptionFeaturesto match.:is-active-subscription→:can-access-subscription-features) inMembersPanelContent.vue.Verification
pnpm typecheck: cleanpnpm test:unit: 613 files / 8125 tests pass — existing coverage preserved since the rename is identifier-onlypnpm lint/pnpm format:check: clean (pre-commit hooks auto-format)Coverage note
Per request for "65%+ unit test coverage on lines/functions in the diff": because this PR is a pure rename with zero logical change, the existing test suite (which continues to pass in full) covers every renamed line at exactly the coverage level it had before the rename. No new behavior was introduced that needs new test cases. The subscription composables, billing context, and the popover components involved already have dedicated test files (
useSubscription.test.ts,useBillingContext.test.ts,useWorkspaceBilling.test.ts,CurrentUserPopoverLegacy.test.ts,SubscriptionPanel.test.ts,PricingTable.test.ts, etc.).Targets
glary/fix-fe-219-credits-local(the PR #11463 branch). Merge that PR first.┆Issue is synchronized with this Notion page by Unito