From 75e3dde31259f1dfde45e42524ad41278a0842c8 Mon Sep 17 00:00:00 2001 From: Rodrigo Borba Date: Wed, 25 Feb 2026 18:58:57 -0300 Subject: [PATCH] fix: remove enterprise-only restriction from Captain in self-hosted --- .../components/copilot/CopilotContainer.vue | 9 +----- .../dashboard/settings/captain/Index.vue | 31 ++----------------- 2 files changed, 3 insertions(+), 37 deletions(-) diff --git a/app/javascript/dashboard/components/copilot/CopilotContainer.vue b/app/javascript/dashboard/components/copilot/CopilotContainer.vue index d4862c078..a875d7d5a 100644 --- a/app/javascript/dashboard/components/copilot/CopilotContainer.vue +++ b/app/javascript/dashboard/components/copilot/CopilotContainer.vue @@ -5,7 +5,6 @@ import { useStore } from 'dashboard/composables/store'; import Copilot from 'dashboard/components-next/copilot/Copilot.vue'; import { useMapGetter } from 'dashboard/composables/store'; import { useUISettings } from 'dashboard/composables/useUISettings'; -import { useConfig } from 'dashboard/composables/useConfig'; import { useWindowSize } from '@vueuse/core'; import { vOnClickOutside } from '@vueuse/components'; import { FEATURE_FLAGS } from 'dashboard/featureFlags'; @@ -20,7 +19,6 @@ defineProps({ const store = useStore(); const { uiSettings, updateUISettings } = useUISettings(); -const { isEnterprise } = useConfig(); const { width: windowWidth } = useWindowSize(); const currentUser = useMapGetter('getCurrentUser'); @@ -85,9 +83,6 @@ const setAssistant = async assistant => { }; const shouldShowCopilotPanel = computed(() => { - if (!isEnterprise) { - return false; - } const isCaptainEnabled = isFeatureEnabledonAccount.value( currentAccountId.value, FEATURE_FLAGS.CAPTAIN @@ -123,9 +118,7 @@ const sendMessage = async message => { }; onMounted(() => { - if (isEnterprise) { - store.dispatch('captainAssistants/get'); - } + store.dispatch('captainAssistants/get'); }); diff --git a/app/javascript/dashboard/routes/dashboard/settings/captain/Index.vue b/app/javascript/dashboard/routes/dashboard/settings/captain/Index.vue index 55d69f180..a75471dc2 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/captain/Index.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/captain/Index.vue @@ -3,9 +3,7 @@ import { computed, onMounted } from 'vue'; import { useI18n } from 'vue-i18n'; import { storeToRefs } from 'pinia'; import { useAlert } from 'dashboard/composables'; -import { useAccount } from 'dashboard/composables/useAccount'; import { useCaptain } from 'dashboard/composables/useCaptain'; -import { useConfig } from 'dashboard/composables/useConfig'; import { useCaptainConfigStore } from 'dashboard/store/captain/preferences'; import SettingsLayout from '../SettingsLayout.vue'; @@ -17,8 +15,6 @@ import CaptainPaywall from 'next/captain/pageComponents/Paywall.vue'; const { t } = useI18n(); const { captainEnabled } = useCaptain(); -const { isEnterprise, enterprisePlanName } = useConfig(); -const { isOnChatwootCloud } = useAccount(); const captainConfigStore = useCaptainConfigStore(); const { uiFlags } = storeToRefs(captainConfigStore); @@ -59,34 +55,11 @@ const featureToggles = computed(() => [ }, ]); -const shouldShowFeature = feature => { - // Cloud will always see these features as long as captain is enabled - if (isOnChatwootCloud.value && captainEnabled) { - return true; - } - - if (feature.enterprise) { - // if the app is in enterprise mode, then we can show the feature - // this is not the installation plan, but when the enterprise folder is missing - return isEnterprise; - } - +const shouldShowFeature = () => { return true; }; -const isFeatureAccessible = feature => { - // Cloud will always see these features as long as captain is enabled - if (isOnChatwootCloud.value && captainEnabled) { - return true; - } - - if (feature.enterprise) { - // plan is shown, but is it accessible? - // This ensures that the instance has purchased the enterprise license, and only then we allow - // access - return isEnterprise && enterprisePlanName === 'enterprise'; - } - +const isFeatureAccessible = () => { return true; };