fix(config): resolve the Cloud base URL from remote config - #15658
fix(config): resolve the Cloud base URL from remote config#15658christian-byrne wants to merge 1 commit into
Conversation
getComfyCloudBaseUrl returned BUILD_TIME_CLOUD_BASE_URL directly while its two siblings in the same module resolve through configValueOrDefault. Local and Desktop reach workspace and billing endpoints through this host, and a Desktop build is installed once and may never be updated, so pinning it at build time means the host cannot be changed for those clients afterward. Resolve it from comfy_cloud_base_url with the build-time value as the fallback, matching getComfyApiBaseUrl and getComfyPlatformBaseUrl.
🎭 Playwright: ✅ 1977 passed, 0 failed · 3 flaky📊 Browser Reports
🎨 Storybook: ✅ Built — View Storybook📦 Bundle: 9.11 MB gzip 🔴 +122 BDetailsSummary
Category Glance App Entry Points — 3.71 kB (baseline 3.71 kB) • ⚪ 0 BMain entry bundles and manifests
Status: 1 added / 1 removed Graph Workspace — 1.37 MB (baseline 1.37 MB) • ⚪ 0 BGraph editor runtime, canvas, workflow orchestration
Status: 2 added / 2 removed / 1 unchanged Views & Navigation — 124 kB (baseline 124 kB) • ⚪ 0 BTop-level views, pages, and routed surfaces
Status: 13 added / 13 removed / 4 unchanged Panels & Settings — 591 kB (baseline 591 kB) • ⚪ 0 BConfiguration panels, inspectors, and settings screens
Status: 11 added / 11 removed / 16 unchanged User & Accounts — 27.5 kB (baseline 27.5 kB) • ⚪ 0 BAuthentication, profile, and account management bundles
Status: 6 added / 6 removed / 5 unchanged Editors & Dialogs — 125 kB (baseline 125 kB) • ⚪ 0 BModals, dialogs, drawers, and in-app editors
Status: 7 added / 7 removed / 1 unchanged UI Components — 67.1 kB (baseline 67.1 kB) • ⚪ 0 BReusable component library chunks
Status: 6 added / 6 removed / 8 unchanged Data & Services — 3.53 MB (baseline 3.53 MB) • 🔴 +66 BStores, services, APIs, and repositories
Status: 14 added / 14 removed / 3 unchanged Utilities & Hooks — 549 kB (baseline 549 kB) • ⚪ 0 BHelpers, composables, and utility bundles
Status: 18 added / 18 removed / 19 unchanged Vendor & Third-Party — 18.1 MB (baseline 18.1 MB) • ⚪ 0 BExternal libraries and shared vendor chunks Status: 18 unchanged Other — 14.1 MB (baseline 14.1 MB) • 🟢 -116 BBundles that do not match a named category
Status: 66 added / 66 removed / 219 unchanged ⚡ Performance Report
Show regressions
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-08-23T00:43:07.617Z",
"gitSha": "45cfb5688ab8f370d9349e58187633118eda1d00",
"branch": "fix/cloud-base-url-from-remote-config",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2024.2619999999647,
"styleRecalcs": 9,
"styleRecalcDurationMs": 4.344,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 468.15,
"heapDeltaBytes": -5545264,
"heapUsedBytes": 56990816,
"domNodes": -282,
"jsHeapTotalBytes": 3923968,
"scriptDurationMs": 5.256999999999998,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "canvas-idle",
"durationMs": 2034.9630000000047,
"styleRecalcs": 10,
"styleRecalcDurationMs": 5.3660000000000005,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 394.51499999999993,
"heapDeltaBytes": 9912748,
"heapUsedBytes": 71973288,
"domNodes": -282,
"jsHeapTotalBytes": 4186112,
"scriptDurationMs": 5.343999999999999,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1706.670000000031,
"styleRecalcs": 72,
"styleRecalcDurationMs": 20.166000000000004,
"layouts": 12,
"layoutDurationMs": 1.8579999999999999,
"taskDurationMs": 595.7470000000001,
"heapDeltaBytes": 9855392,
"heapUsedBytes": 72100768,
"domNodes": -280,
"jsHeapTotalBytes": 6021120,
"scriptDurationMs": 67.438,
"eventListeners": -181,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1735.4090000000042,
"styleRecalcs": 73,
"styleRecalcDurationMs": 21.973000000000003,
"layouts": 12,
"layoutDurationMs": 2.522,
"taskDurationMs": 633.293,
"heapDeltaBytes": -3931712,
"heapUsedBytes": 58120084,
"domNodes": -282,
"jsHeapTotalBytes": 5234688,
"scriptDurationMs": 70.003,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1658.5450000000037,
"styleRecalcs": 29,
"styleRecalcDurationMs": 10.518999999999998,
"layouts": 6,
"layoutDurationMs": 0.414,
"taskDurationMs": 265.715,
"heapDeltaBytes": 3206996,
"heapUsedBytes": 65716964,
"domNodes": 77,
"jsHeapTotalBytes": 4718592,
"scriptDurationMs": 6.628,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1660.2309999999534,
"styleRecalcs": 29,
"styleRecalcDurationMs": 11.316,
"layouts": 6,
"layoutDurationMs": 0.4900000000000001,
"taskDurationMs": 269.712,
"heapDeltaBytes": 2960444,
"heapUsedBytes": 65443928,
"domNodes": 76,
"jsHeapTotalBytes": 5242880,
"scriptDurationMs": 7.193999999999999,
"eventListeners": 21,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "dom-widget-clipping",
"durationMs": 480.1930000000425,
"styleRecalcs": 11,
"styleRecalcDurationMs": 4.8519999999999985,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 272.026,
"heapDeltaBytes": 10833368,
"heapUsedBytes": 73162136,
"domNodes": 18,
"jsHeapTotalBytes": 5242880,
"scriptDurationMs": 36.14,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 441.03699999999435,
"styleRecalcs": 12,
"styleRecalcDurationMs": 4.682,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 254.809,
"heapDeltaBytes": 10457640,
"heapUsedBytes": 73153172,
"domNodes": 20,
"jsHeapTotalBytes": 4456448,
"scriptDurationMs": 34.574999999999996,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.799999999999727
},
{
"name": "large-graph-idle",
"durationMs": 2022.5390000000516,
"styleRecalcs": 11,
"styleRecalcDurationMs": 5.964,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 491.78499999999997,
"heapDeltaBytes": -13757164,
"heapUsedBytes": 61979800,
"domNodes": -281,
"jsHeapTotalBytes": 3928064,
"scriptDurationMs": 8.948,
"eventListeners": -179,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-idle",
"durationMs": 2008.3160000000362,
"styleRecalcs": 9,
"styleRecalcDurationMs": 6.088000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 481.287,
"heapDeltaBytes": -389620,
"heapUsedBytes": 76355384,
"domNodes": -264,
"jsHeapTotalBytes": -1839104,
"scriptDurationMs": 10.757,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2094.966999999997,
"styleRecalcs": 69,
"styleRecalcDurationMs": 11.424,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 857.261,
"heapDeltaBytes": -5246444,
"heapUsedBytes": 72457684,
"domNodes": -236,
"jsHeapTotalBytes": -827392,
"scriptDurationMs": 234.788,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2092.7970000000187,
"styleRecalcs": 70,
"styleRecalcDurationMs": 8.800999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 854.3380000000001,
"heapDeltaBytes": -4053956,
"heapUsedBytes": 73773872,
"domNodes": -236,
"jsHeapTotalBytes": -1089536,
"scriptDurationMs": 220.242,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3005.2689999999984,
"styleRecalcs": 66,
"styleRecalcDurationMs": 9.396999999999998,
"layouts": 60,
"layoutDurationMs": 4.821000000000001,
"taskDurationMs": 925.2770000000002,
"heapDeltaBytes": -8451328,
"heapUsedBytes": 69886812,
"domNodes": 16,
"jsHeapTotalBytes": 6066176,
"scriptDurationMs": 235.421,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3110.068999999953,
"styleRecalcs": 66,
"styleRecalcDurationMs": 9.886000000000001,
"layouts": 60,
"layoutDurationMs": 5.254,
"taskDurationMs": 978.771,
"heapDeltaBytes": -14968492,
"heapUsedBytes": 63112932,
"domNodes": 14,
"jsHeapTotalBytes": 4976640,
"scriptDurationMs": 245.79100000000003,
"eventListeners": -183,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "legacy-node-drag",
"durationMs": 2099.2369999999596,
"styleRecalcs": 47,
"styleRecalcDurationMs": 6.630000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1045.799,
"heapDeltaBytes": -22270404,
"heapUsedBytes": 64505240,
"domNodes": -243,
"jsHeapTotalBytes": 5763072,
"scriptDurationMs": 297.028,
"eventListeners": 31,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "legacy-node-drag",
"durationMs": 2065.1229999999714,
"styleRecalcs": 48,
"styleRecalcDurationMs": 6.243,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 968.865,
"heapDeltaBytes": 11000836,
"heapUsedBytes": 90520356,
"domNodes": 16,
"jsHeapTotalBytes": 7270400,
"scriptDurationMs": 293.36600000000004,
"eventListeners": 184,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2034.8749999999995,
"styleRecalcs": 10,
"styleRecalcDurationMs": 6.698999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 485.86800000000005,
"heapDeltaBytes": -10745112,
"heapUsedBytes": 72011644,
"domNodes": -272,
"jsHeapTotalBytes": 4452352,
"scriptDurationMs": 7.931000000000001,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "minimap-idle",
"durationMs": 2018.2419999999865,
"styleRecalcs": 8,
"styleRecalcDurationMs": 4.574000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 474.57199999999995,
"heapDeltaBytes": -13115060,
"heapUsedBytes": 64370488,
"domNodes": -283,
"jsHeapTotalBytes": -1314816,
"scriptDurationMs": 8.723,
"eventListeners": -179,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 464.0719999999874,
"styleRecalcs": 46,
"styleRecalcDurationMs": 7.261,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 268.61999999999995,
"heapDeltaBytes": 11554536,
"heapUsedBytes": 74047876,
"domNodes": 18,
"jsHeapTotalBytes": 4980736,
"scriptDurationMs": 74.35300000000001,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 429.1889999999512,
"styleRecalcs": 46,
"styleRecalcDurationMs": 6.0680000000000005,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 264.573,
"heapDeltaBytes": 11510832,
"heapUsedBytes": 73966888,
"domNodes": 18,
"jsHeapTotalBytes": 5505024,
"scriptDurationMs": 73.561,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2009.2309999999998,
"styleRecalcs": 10,
"styleRecalcDurationMs": 5.455,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 389.44800000000004,
"heapDeltaBytes": 5500256,
"heapUsedBytes": 68251376,
"domNodes": -281,
"jsHeapTotalBytes": 4448256,
"scriptDurationMs": 4.909999999999999,
"eventListeners": -181,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 1991.0340000000133,
"styleRecalcs": 9,
"styleRecalcDurationMs": 4.865000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 393.818,
"heapDeltaBytes": 4852388,
"heapUsedBytes": 67432988,
"domNodes": -281,
"jsHeapTotalBytes": 4448256,
"scriptDurationMs": 5.169,
"eventListeners": -183,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1694.5749999999862,
"styleRecalcs": 75,
"styleRecalcDurationMs": 21.493,
"layouts": 16,
"layoutDurationMs": 2.383,
"taskDurationMs": 572.225,
"heapDeltaBytes": 20127816,
"heapUsedBytes": 82169172,
"domNodes": -280,
"jsHeapTotalBytes": 5234688,
"scriptDurationMs": 50.43,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1693.8729999999964,
"styleRecalcs": 74,
"styleRecalcDurationMs": 23.09,
"layouts": 16,
"layoutDurationMs": 2.7819999999999996,
"taskDurationMs": 577.1080000000001,
"heapDeltaBytes": 13000648,
"heapUsedBytes": 75310064,
"domNodes": -283,
"jsHeapTotalBytes": 5496832,
"scriptDurationMs": 52.78,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-transition-enter",
"durationMs": 904.3479999999704,
"styleRecalcs": 22,
"styleRecalcDurationMs": 23.697000000000003,
"layouts": 17,
"layoutDurationMs": 9.280999999999999,
"taskDurationMs": 683.7139999999999,
"heapDeltaBytes": 20398032,
"heapUsedBytes": 103596044,
"domNodes": 13673,
"jsHeapTotalBytes": 11534336,
"scriptDurationMs": 12.004000000000001,
"eventListeners": 2373,
"totalBlockingTimeMs": 118,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8116.6279999999915,
"styleRecalcs": 251,
"styleRecalcDurationMs": 22.073000000000004,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 2895.069,
"heapDeltaBytes": 920824,
"heapUsedBytes": 77626252,
"domNodes": -232,
"jsHeapTotalBytes": -303104,
"scriptDurationMs": 667.793,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8105.73700000009,
"styleRecalcs": 251,
"styleRecalcDurationMs": 23.078000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3078.913,
"heapDeltaBytes": 8225928,
"heapUsedBytes": 84981044,
"domNodes": -234,
"jsHeapTotalBytes": 2580480,
"scriptDurationMs": 773.0740000000001,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.80000000000109
},
{
"name": "vue-large-graph-idle",
"durationMs": 10666.696000000002,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 10095.199999999999,
"heapDeltaBytes": -47421032,
"heapUsedBytes": 179068180,
"domNodes": -8312,
"jsHeapTotalBytes": -15126528,
"scriptDurationMs": 39.341,
"eventListeners": -16395,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333338,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 10809.965999999917,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 10324.664,
"heapDeltaBytes": -43399696,
"heapUsedBytes": 182561252,
"domNodes": -8312,
"jsHeapTotalBytes": -18362368,
"scriptDurationMs": 58.27499999999999,
"eventListeners": -16393,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 12978.957999999977,
"styleRecalcs": 67,
"styleRecalcDurationMs": 8.633000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12272.149000000001,
"heapDeltaBytes": -60066324,
"heapUsedBytes": 171740832,
"domNodes": -8312,
"jsHeapTotalBytes": -23760896,
"scriptDurationMs": 295.15099999999995,
"eventListeners": -16389,
"totalBlockingTimeMs": 38,
"frameDurationMs": 17.220000000000073,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 13631.713999999989,
"styleRecalcs": 67,
"styleRecalcDurationMs": 10.829999999999979,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12790.115,
"heapDeltaBytes": -25646612,
"heapUsedBytes": 199784932,
"domNodes": -8312,
"jsHeapTotalBytes": -9519104,
"scriptDurationMs": 278.22499999999997,
"eventListeners": -16391,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "workflow-execution",
"durationMs": 86.81900000004816,
"styleRecalcs": 7,
"styleRecalcDurationMs": 9.601,
"layouts": 6,
"layoutDurationMs": 1.177,
"taskDurationMs": 54.64200000000001,
"heapDeltaBytes": 3109456,
"heapUsedBytes": 65089980,
"domNodes": 127,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 4.705000000000001,
"eventListeners": 27,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "workflow-execution",
"durationMs": 436.7089999999507,
"styleRecalcs": 19,
"styleRecalcDurationMs": 14.213,
"layouts": 3,
"layoutDurationMs": 0.924,
"taskDurationMs": 76.457,
"heapDeltaBytes": 5170032,
"heapUsedBytes": 66770588,
"domNodes": 147,
"jsHeapTotalBytes": 262144,
"scriptDurationMs": 6.17,
"eventListeners": 97,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.799999999999727
}
]
} |
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 46 minutes Limit details: You’ve used the included review currently available. Your 92 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Comment |
|
🔗 Commit SHA: 91e9963 | Docs | View more details | Give us feedback! |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #15658 +/- ##
==========================================
+ Coverage 79.38% 81.87% +2.48%
==========================================
Files 2217 1887 -330
Lines 112234 107228 -5006
Branches 35106 33914 -1192
==========================================
- Hits 89101 87791 -1310
+ Misses 22654 19097 -3557
+ Partials 479 340 -139
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 339 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Why
getComfyCloudBaseUrl()returned the build-time constant directly, while the two other functions in the same module resolve throughconfigValueOrDefault:Since #15164, Local and Desktop reach workspace and billing endpoints through this host (
workspaceApiUrl.tsuses it for every non-Cloud request). A Desktop build is installed once and may never be updated, so a host pinned at build time cannot be changed for those clients afterward. The other two hosts already have that escape hatch; this one did not.Change
getComfyCloudBaseUrl()fromcomfy_cloud_base_url, falling back toBUILD_TIME_CLOUD_BASE_URL.comfy_cloud_base_url?: stringtoRemoteConfig.comfyApi.test.tsto cover override / absent / empty for the Cloud URL, matching the existing blocks for the API and platform URLs, and assert the Cloud fallback in the existing older-server compatibility test.Note
This is inert until the backend actually sends
comfy_cloud_base_url— the fallback keeps current behaviour byte-for-byte until then. It is the client half of the escape hatch, and it means we do not need a frontend release to move the host later.Test plan
pnpm vitest run src/config/comfyApi.test.ts— 10 passedpnpm typecheck— clean