refactor: delete dead duplicate CreditSlider copy#13278
Conversation
src/platform/cloud/subscription/components/CreditSlider.{vue,test.ts,
stories.ts} was a stale, drifted copy with no production importer. The live
component is src/components/ui/credit-slider/CreditSlider.vue (used by
UnifiedPricingTable). The subscription copy was only referenced by its own
test and story, so it is removed wholesale — no merge needed.
fallow's other "duplicate exports" were reviewed and left as-is: they are
same-name/different-type definitions (User: API zod type vs store interface;
WidgetValue, JobListItem, ModelFile), deliberate re-export shims (ComfyDialog
via ui.ts), or litegraph-vs-renderer geometry types kept separate by the
layering rules. Consolidating them would break types or add speculative
shared modules, so none are changed here.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 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)
Comment |
🎨 Storybook: ✅ Built — View Storybook🎭 Playwright: ✅ 1689 passed, 0 failed · 2 flaky📊 Browser Reports
📦 Bundle Size
⚡ Performance Report
Absolute values
Raw data{
"timestamp": "2026-06-29T06:57:00.721Z",
"gitSha": "b45fdf7905abc3428d82821629c993b14255696b",
"branch": "drjkl/cleanup-duplicates",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2056.0370000000603,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.411000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 400.818,
"heapDeltaBytes": -2043800,
"heapUsedBytes": 56707920,
"domNodes": 20,
"jsHeapTotalBytes": 26214400,
"scriptDurationMs": 16.18,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-idle",
"durationMs": 2004.9080000000004,
"styleRecalcs": 8,
"styleRecalcDurationMs": 6.499999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 333.978,
"heapDeltaBytes": -2317932,
"heapUsedBytes": 56680220,
"domNodes": 16,
"jsHeapTotalBytes": 25165824,
"scriptDurationMs": 15.366999999999999,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1790.348999999992,
"styleRecalcs": 75,
"styleRecalcDurationMs": 36.041,
"layouts": 12,
"layoutDurationMs": 3.3220000000000005,
"taskDurationMs": 733.176,
"heapDeltaBytes": -6690024,
"heapUsedBytes": 52069084,
"domNodes": 57,
"jsHeapTotalBytes": 25427968,
"scriptDurationMs": 117.872,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1775.6339999999682,
"styleRecalcs": 74,
"styleRecalcDurationMs": 38.338,
"layouts": 12,
"layoutDurationMs": 3.4209999999999994,
"taskDurationMs": 737.1999999999999,
"heapDeltaBytes": -6998848,
"heapUsedBytes": 51723096,
"domNodes": 57,
"jsHeapTotalBytes": 25427968,
"scriptDurationMs": 121.486,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1711.4579999999933,
"styleRecalcs": 32,
"styleRecalcDurationMs": 15.747,
"layouts": 6,
"layoutDurationMs": 0.604,
"taskDurationMs": 296.333,
"heapDeltaBytes": 1938612,
"heapUsedBytes": 60684508,
"domNodes": 78,
"jsHeapTotalBytes": 26214400,
"scriptDurationMs": 18.246000000000002,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1722.2800000001826,
"styleRecalcs": 32,
"styleRecalcDurationMs": 16.481999999999996,
"layouts": 6,
"layoutDurationMs": 0.516,
"taskDurationMs": 318.009,
"heapDeltaBytes": 2385844,
"heapUsedBytes": 61244448,
"domNodes": 77,
"jsHeapTotalBytes": 24903680,
"scriptDurationMs": 20.776,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 576.8039999999246,
"styleRecalcs": 12,
"styleRecalcDurationMs": 7.946,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 346.637,
"heapDeltaBytes": 7020016,
"heapUsedBytes": 65788848,
"domNodes": 20,
"jsHeapTotalBytes": 18612224,
"scriptDurationMs": 57.99999999999999,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66666666666665,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 545.1909999999316,
"styleRecalcs": 12,
"styleRecalcDurationMs": 8.317,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 326.75300000000004,
"heapDeltaBytes": 7080284,
"heapUsedBytes": 65759016,
"domNodes": 20,
"jsHeapTotalBytes": 18612224,
"scriptDurationMs": 55.01299999999999,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-idle",
"durationMs": 2006.813999999963,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 500.17400000000004,
"heapDeltaBytes": -9567524,
"heapUsedBytes": 61924856,
"domNodes": 20,
"jsHeapTotalBytes": 10104832,
"scriptDurationMs": 91.63799999999999,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-idle",
"durationMs": 2025.242000000162,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.476999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 508.61099999999993,
"heapDeltaBytes": -9786128,
"heapUsedBytes": 62361548,
"domNodes": 18,
"jsHeapTotalBytes": 11939840,
"scriptDurationMs": 90.291,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2057.0410000000265,
"styleRecalcs": 69,
"styleRecalcDurationMs": 18.667999999999996,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1012.7919999999999,
"heapDeltaBytes": 9844708,
"heapUsedBytes": 82617292,
"domNodes": 18,
"jsHeapTotalBytes": 11591680,
"scriptDurationMs": 372.633,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2108.445999999958,
"styleRecalcs": 69,
"styleRecalcDurationMs": 19.961999999999996,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1119.996,
"heapDeltaBytes": 11358944,
"heapUsedBytes": 84348360,
"domNodes": 18,
"jsHeapTotalBytes": 10018816,
"scriptDurationMs": 404.743,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-zoom",
"durationMs": 3105.289999999968,
"styleRecalcs": 67,
"styleRecalcDurationMs": 19.849999999999998,
"layouts": 60,
"layoutDurationMs": 7.342,
"taskDurationMs": 1299.067,
"heapDeltaBytes": 14854464,
"heapUsedBytes": 70084092,
"domNodes": 16,
"jsHeapTotalBytes": 8126464,
"scriptDurationMs": 509.88200000000006,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3093.7430000001314,
"styleRecalcs": 61,
"styleRecalcDurationMs": 14.293999999999997,
"layouts": 60,
"layoutDurationMs": 7.146,
"taskDurationMs": 1282.9650000000001,
"heapDeltaBytes": 13546924,
"heapUsedBytes": 69198840,
"domNodes": 2,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 483.263,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2010.5419999999867,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.457999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 485.481,
"heapDeltaBytes": -9503408,
"heapUsedBytes": 63825104,
"domNodes": 18,
"jsHeapTotalBytes": 8531968,
"scriptDurationMs": 84.248,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2018.2770000001256,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.418999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 487.67100000000005,
"heapDeltaBytes": -9416240,
"heapUsedBytes": 63847692,
"domNodes": 20,
"jsHeapTotalBytes": 8007680,
"scriptDurationMs": 84.01599999999999,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 575.7300000000214,
"styleRecalcs": 48,
"styleRecalcDurationMs": 11.837,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 352.252,
"heapDeltaBytes": 7999164,
"heapUsedBytes": 66842880,
"domNodes": 22,
"jsHeapTotalBytes": 19660800,
"scriptDurationMs": 117.174,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 562.6959999999599,
"styleRecalcs": 46,
"styleRecalcDurationMs": 11.129,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 359.097,
"heapDeltaBytes": 7409212,
"heapUsedBytes": 66278472,
"domNodes": 18,
"jsHeapTotalBytes": 18087936,
"scriptDurationMs": 122.224,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 1992.0060000000603,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.8,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 334.60100000000006,
"heapDeltaBytes": -2200012,
"heapUsedBytes": 56625300,
"domNodes": 20,
"jsHeapTotalBytes": 27000832,
"scriptDurationMs": 13.296000000000001,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2000.336999999945,
"styleRecalcs": 11,
"styleRecalcDurationMs": 8.056,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 352.464,
"heapDeltaBytes": -2202888,
"heapUsedBytes": 56824720,
"domNodes": 22,
"jsHeapTotalBytes": 25427968,
"scriptDurationMs": 14.527999999999999,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1734.0500000000247,
"styleRecalcs": 77,
"styleRecalcDurationMs": 37.494,
"layouts": 16,
"layoutDurationMs": 3.854,
"taskDurationMs": 653.9900000000001,
"heapDeltaBytes": -10651096,
"heapUsedBytes": 48358184,
"domNodes": 67,
"jsHeapTotalBytes": 24903680,
"scriptDurationMs": 88.063,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1686.1649999998463,
"styleRecalcs": 76,
"styleRecalcDurationMs": 34.30800000000001,
"layouts": 16,
"layoutDurationMs": 3.9769999999999994,
"taskDurationMs": 648.054,
"heapDeltaBytes": -10515588,
"heapUsedBytes": 48332648,
"domNodes": 65,
"jsHeapTotalBytes": 26738688,
"scriptDurationMs": 87.66399999999999,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-transition-enter",
"durationMs": 949.7860000000173,
"styleRecalcs": 16,
"styleRecalcDurationMs": 27.396000000000004,
"layouts": 4,
"layoutDurationMs": 14.079999999999998,
"taskDurationMs": 718.7570000000001,
"heapDeltaBytes": 4417388,
"heapUsedBytes": 80943652,
"domNodes": 13833,
"jsHeapTotalBytes": 17563648,
"scriptDurationMs": 26.261,
"eventListeners": 2533,
"totalBlockingTimeMs": 160,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "viewport-pan-sweep",
"durationMs": 8156.011000000035,
"styleRecalcs": 251,
"styleRecalcDurationMs": 53.193999999999996,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3553.4609999999993,
"heapDeltaBytes": -1093360,
"heapUsedBytes": 70532440,
"domNodes": 20,
"jsHeapTotalBytes": 16834560,
"scriptDurationMs": 1198.085,
"eventListeners": 20,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333338,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8120.658999999932,
"styleRecalcs": 251,
"styleRecalcDurationMs": 54.788000000000004,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3734.4660000000003,
"heapDeltaBytes": -3700440,
"heapUsedBytes": 68082648,
"domNodes": 20,
"jsHeapTotalBytes": 16834560,
"scriptDurationMs": 1266.9560000000001,
"eventListeners": 20,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 12400.306,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12382.715,
"heapDeltaBytes": -12174376,
"heapUsedBytes": 170374184,
"domNodes": -3302,
"jsHeapTotalBytes": 19632128,
"scriptDurationMs": 494.679,
"eventListeners": -16374,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 12488.603000000012,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12472.004000000003,
"heapDeltaBytes": -27370140,
"heapUsedBytes": 171960052,
"domNodes": -3302,
"jsHeapTotalBytes": 22515712,
"scriptDurationMs": 542.312,
"eventListeners": -16376,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 14662.611999999968,
"styleRecalcs": 67,
"styleRecalcDurationMs": 16.771000000000008,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 14639.860999999999,
"heapDeltaBytes": -30141732,
"heapUsedBytes": 184484804,
"domNodes": -3302,
"jsHeapTotalBytes": 20070400,
"scriptDurationMs": 775.734,
"eventListeners": -16370,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 14420.508000000154,
"styleRecalcs": 65,
"styleRecalcDurationMs": 16.742000000000008,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 14396.053,
"heapDeltaBytes": -29141336,
"heapUsedBytes": 183914084,
"domNodes": -3302,
"jsHeapTotalBytes": 19808256,
"scriptDurationMs": 782.312,
"eventListeners": -16374,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "workflow-execution",
"durationMs": 442.27300000000014,
"styleRecalcs": 19,
"styleRecalcDurationMs": 23.716,
"layouts": 5,
"layoutDurationMs": 1.308,
"taskDurationMs": 112.58500000000001,
"heapDeltaBytes": 5365464,
"heapUsedBytes": 65271784,
"domNodes": 168,
"jsHeapTotalBytes": 3670016,
"scriptDurationMs": 16.803,
"eventListeners": 69,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999727
},
{
"name": "workflow-execution",
"durationMs": 450.0950000001467,
"styleRecalcs": 18,
"styleRecalcDurationMs": 22.373,
"layouts": 4,
"layoutDurationMs": 1.048,
"taskDurationMs": 110.218,
"heapDeltaBytes": 5145648,
"heapUsedBytes": 65057636,
"domNodes": 157,
"jsHeapTotalBytes": 3145728,
"scriptDurationMs": 17.266999999999996,
"eventListeners": 71,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
}
]
} |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## drjkl/cleanup-dead-types #13278 +/- ##
============================================================
- Coverage 78.24% 78.23% -0.01%
============================================================
Files 1633 1632 -1
Lines 114080 114034 -46
Branches 38989 38343 -646
============================================================
- Hits 89257 89211 -46
Misses 23918 23918
Partials 905 905
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
src/platform/cloud/subscription/components/CreditSlider.{vue,test.ts,stories.ts}was a stale, drifted copy with no production importer. The live component issrc/components/ui/credit-slider/CreditSlider.vue(used byUnifiedPricingTable). The subscription copy was only referenced by its own test and story, so it is removed wholesale — no merge needed.fallow's other "duplicate exports" were reviewed and left as-is: they are same-name/different-type definitions (
User: API zod type vs store interface;WidgetValue,JobListItem,ModelFile), deliberate re-export shims (ComfyDialogviaui.ts), or litegraph-vs-renderer geometry types kept separate by the layering rules. Consolidating them would break types or add speculative shared modules, so none are changed here.Note: fallow's "unused component props" findings (21 props) were investigated separately and were all false positives — Vue 3.5
:propsame-name shorthand,v-bind()in<style>, kebab-case child-forwarding, and library props. No prop-cleanup PR was warranted.Gates: typecheck, knip pass; no orphaned exports.
Stacked PR (top of series). Base:
drjkl/cleanup-dead-types.