From ecc809c5c0f907ccfea02a39a19b1705d66bcac6 Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Fri, 24 Oct 2025 12:28:56 -0700 Subject: [PATCH] [backport rh-test] change cloud feature flags to be loaded dynamically at runtime rather than set in build (#6257) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Backport of #6246 to `rh-test` branch. This PR cherry-picks commit d7a58a7a9b1abedccb3d342c968e373c406af96b to the `rh-test` branch with merge conflicts resolved. ### Conflicts Resolved **GraphCanvas.vue:** - Accepted incoming template structure changes (removed betaMenuEnabled check, added workflow tabs) - Added missing imports: TopbarBadges, WorkflowTabs, isNativeWindow - Added showUI computed property **cloudBadge.ts:** - Deleted file (replaced by cloudBadges.ts plural) **telemetry/types.ts:** - Merged interface methods from both branches - Accepted incoming event constant changes (app: prefix) Original PR: #6246 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6257-backport-rh-test-change-cloud-feature-flags-to-be-loaded-dynamically-at-runtime-rather--2966d73d365081a59daeeb6dfbbf2af5) by [Unito](https://www.unito.io) --- global.d.ts | 15 ++-- .../actionbar/ComfyRunButton/index.ts | 2 +- src/components/graph/GraphCanvas.vue | 27 ++++++- src/components/topbar/TopbarBadge.vue | 70 +++++++++++++++---- src/components/topbar/TopbarBadges.vue | 16 ++--- src/extensions/core/cloudBadge.ts | 16 ----- src/extensions/core/cloudBadges.ts | 36 ++++++++++ src/extensions/core/cloudRemoteConfig.ts | 15 ++++ src/extensions/core/cloudSubscription.ts | 6 +- src/extensions/core/index.ts | 8 ++- src/main.ts | 12 ++++ .../composables/useSubscription.ts | 2 +- src/platform/remoteConfig/remoteConfig.ts | 44 ++++++++++++ src/platform/remoteConfig/types.ts | 19 +++++ .../settings/composables/useSettingUI.ts | 10 +-- .../cloud/MixpanelTelemetryProvider.ts | 18 +++-- src/platform/telemetry/types.ts | 53 ++++++++++---- src/services/dialogService.ts | 2 +- src/stores/executionStore.ts | 15 ++++ src/types/comfy.ts | 16 +++++ .../platform/telemetry/useTelemetry.test.ts | 2 +- tests-ui/tests/store/executionStore.test.ts | 61 ++++++++-------- vite.config.mts | 8 +-- vitest.setup.ts | 18 ++++- 24 files changed, 377 insertions(+), 114 deletions(-) delete mode 100644 src/extensions/core/cloudBadge.ts create mode 100644 src/extensions/core/cloudBadges.ts create mode 100644 src/extensions/core/cloudRemoteConfig.ts create mode 100644 src/platform/remoteConfig/remoteConfig.ts create mode 100644 src/platform/remoteConfig/types.ts diff --git a/global.d.ts b/global.d.ts index 5493cbb18..059e47732 100644 --- a/global.d.ts +++ b/global.d.ts @@ -4,12 +4,19 @@ declare const __SENTRY_DSN__: string declare const __ALGOLIA_APP_ID__: string declare const __ALGOLIA_API_KEY__: string declare const __USE_PROD_CONFIG__: boolean -declare const __MIXPANEL_TOKEN__: string -type BuildFeatureFlags = { - REQUIRE_SUBSCRIPTION: boolean +interface Window { + __CONFIG__: { + mixpanel_token?: string + subscription_required?: boolean + server_health_alert?: { + message: string + tooltip?: string + severity?: 'info' | 'warning' | 'error' + badge?: string + } + } } -declare const __BUILD_FLAGS__: BuildFeatureFlags interface Navigator { /** diff --git a/src/components/actionbar/ComfyRunButton/index.ts b/src/components/actionbar/ComfyRunButton/index.ts index 4d15d44ee..1ee49963e 100644 --- a/src/components/actionbar/ComfyRunButton/index.ts +++ b/src/components/actionbar/ComfyRunButton/index.ts @@ -2,6 +2,6 @@ import { defineAsyncComponent } from 'vue' import { isCloud } from '@/platform/distribution/types' -export default isCloud && __BUILD_FLAGS__.REQUIRE_SUBSCRIPTION +export default isCloud && window.__CONFIG__?.subscription_required ? defineAsyncComponent(() => import('./CloudRunButtonWrapper.vue')) : defineAsyncComponent(() => import('./ComfyQueueButton.vue')) diff --git a/src/components/graph/GraphCanvas.vue b/src/components/graph/GraphCanvas.vue index a9819b491..936317b22 100644 --- a/src/components/graph/GraphCanvas.vue +++ b/src/components/graph/GraphCanvas.vue @@ -2,8 +2,23 @@ - -