diff --git a/cypress/pages/features/ai-assistant.ts b/cypress/pages/features/ai-assistant.ts index f2e747817ba..174a9193965 100644 --- a/cypress/pages/features/ai-assistant.ts +++ b/cypress/pages/features/ai-assistant.ts @@ -1,13 +1,5 @@ -import { overrideFeatureFlag } from '../../composables/featureFlags'; import { BasePage } from '../base'; -const AI_ASSISTANT_FEATURE = { - name: 'aiAssistant', - experimentName: '021_ai_debug_helper', - enabledFor: 'variant', - disabledFor: 'control', -}; - /** * @deprecated Use functional composables from @composables instead. * If a composable doesn't exist for your use case, please create a new one in: @@ -49,12 +41,10 @@ export class AIAssistant extends BasePage { actions = { enableAssistant: () => { - overrideFeatureFlag(AI_ASSISTANT_FEATURE.experimentName, AI_ASSISTANT_FEATURE.enabledFor); - cy.enableFeature(AI_ASSISTANT_FEATURE.name); + cy.enableFeature('aiAssistant'); }, disableAssistant: () => { - overrideFeatureFlag(AI_ASSISTANT_FEATURE.experimentName, AI_ASSISTANT_FEATURE.disabledFor); - cy.disableFeature(AI_ASSISTANT_FEATURE.name); + cy.disableFeature('aiAssistant'); }, sendMessage: (message: string) => { this.getters.chatInput().type(message).type('{enter}'); diff --git a/packages/frontend/editor-ui/src/constants.ts b/packages/frontend/editor-ui/src/constants.ts index bf7aeca2db3..7c769c9d2ae 100644 --- a/packages/frontend/editor-ui/src/constants.ts +++ b/packages/frontend/editor-ui/src/constants.ts @@ -729,12 +729,6 @@ export const CANVAS_AUTO_ADD_MANUAL_TRIGGER_EXPERIMENT = { variant: 'variant', }; -export const AI_ASSISTANT_EXPERIMENT = { - name: '021_ai_debug_helper', - control: 'control', - variant: 'variant', -}; - export const CREDENTIAL_DOCS_EXPERIMENT = { name: '024_credential_docs', control: 'control', @@ -761,7 +755,6 @@ export const SCHEMA_PREVIEW_EXPERIMENT = { export const EXPERIMENTS_TO_TRACK = [ CANVAS_AUTO_ADD_MANUAL_TRIGGER_EXPERIMENT.name, - AI_ASSISTANT_EXPERIMENT.name, CREDENTIAL_DOCS_EXPERIMENT.name, EASY_AI_WORKFLOW_EXPERIMENT.name, AI_CREDITS_EXPERIMENT.name, diff --git a/packages/frontend/editor-ui/src/stores/assistant.store.test.ts b/packages/frontend/editor-ui/src/stores/assistant.store.test.ts index 8fcd6c699fa..4621e115ea7 100644 --- a/packages/frontend/editor-ui/src/stores/assistant.store.test.ts +++ b/packages/frontend/editor-ui/src/stores/assistant.store.test.ts @@ -13,7 +13,7 @@ import { useSettingsStore } from '@/stores/settings.store'; import { defaultSettings } from '../__tests__/defaults'; import { merge } from 'lodash-es'; import { DEFAULT_POSTHOG_SETTINGS } from './posthog.test'; -import { AI_ASSISTANT_EXPERIMENT, VIEWS } from '@/constants'; +import { VIEWS } from '@/constants'; import { reactive } from 'vue'; import * as chatAPI from '@/api/ai'; import * as telemetryModule from '@/composables/useTelemetry'; @@ -55,12 +55,6 @@ vi.mock('vue-router', () => ({ RouterLink: vi.fn(), })); -const mockPostHogVariant = (variant: 'variant' | 'control') => { - posthogStore.overrides = { - [AI_ASSISTANT_EXPERIMENT.name]: variant, - }; -}; - describe('AI Assistant store', () => { beforeEach(() => { vi.clearAllMocks(); @@ -281,20 +275,9 @@ describe('AI Assistant store', () => { expect(assistantStore.currentSessionId).toBeUndefined(); }); - it('should not show assistant for control experiment group', () => { - const assistantStore = useAssistantStore(); - - mockPostHogVariant('control'); - setAssistantEnabled(true); - expect(assistantStore.isAssistantEnabled).toBe(false); - expect(assistantStore.canShowAssistant).toBe(false); - expect(assistantStore.canShowAssistantButtonsOnCanvas).toBe(false); - }); - it('should not show assistant if disabled in settings', () => { const assistantStore = useAssistantStore(); - mockPostHogVariant('variant'); setAssistantEnabled(false); expect(assistantStore.isAssistantEnabled).toBe(false); expect(assistantStore.canShowAssistant).toBe(false); @@ -305,7 +288,6 @@ describe('AI Assistant store', () => { const assistantStore = useAssistantStore(); setAssistantEnabled(true); - mockPostHogVariant('variant'); expect(assistantStore.isAssistantEnabled).toBe(true); expect(assistantStore.canShowAssistant).toBe(true); expect(assistantStore.canShowAssistantButtonsOnCanvas).toBe(true); @@ -316,7 +298,6 @@ describe('AI Assistant store', () => { const assistantStore = useAssistantStore(); setAssistantEnabled(true); - mockPostHogVariant('variant'); expect(assistantStore.isAssistantEnabled).toBe(true); expect(assistantStore.canShowAssistant).toBe(false); expect(assistantStore.canShowAssistantButtonsOnCanvas).toBe(false); @@ -328,7 +309,6 @@ describe('AI Assistant store', () => { const assistantStore = useAssistantStore(); setAssistantEnabled(true); - mockPostHogVariant('variant'); expect(assistantStore.isAssistantEnabled).toBe(true); expect(assistantStore.canShowAssistant).toBe(true); expect(assistantStore.canShowAssistantButtonsOnCanvas).toBe(false); diff --git a/packages/frontend/editor-ui/src/stores/assistant.store.ts b/packages/frontend/editor-ui/src/stores/assistant.store.ts index 5fdd53d117b..d3f6997204f 100644 --- a/packages/frontend/editor-ui/src/stores/assistant.store.ts +++ b/packages/frontend/editor-ui/src/stores/assistant.store.ts @@ -3,7 +3,6 @@ import { VIEWS, EDITABLE_CANVAS_VIEWS, STORES, - AI_ASSISTANT_EXPERIMENT, PLACEHOLDER_EMPTY_WORKFLOW_ID, CREDENTIAL_EDIT_MODAL_KEY, } from '@/constants'; @@ -23,7 +22,6 @@ import { deepCopy } from 'n8n-workflow'; import { ndvEventBus, codeNodeEditorEventBus } from '@/event-bus'; import { useNDVStore } from './ndv.store'; import type { IUpdateInformation } from '@/Interface'; -import { usePostHog } from './posthog.store'; import { useI18n } from '@/composables/useI18n'; import { useTelemetry } from '@/composables/useTelemetry'; import { useToast } from '@/composables/useToast'; @@ -60,7 +58,6 @@ export const useAssistantStore = defineStore(STORES.ASSISTANT, () => { const route = useRoute(); const streaming = ref(); const ndvStore = useNDVStore(); - const { getVariant } = usePostHog(); const locale = useI18n(); const telemetry = useTelemetry(); const assistantHelpers = useAIAssistantHelpers(); @@ -89,10 +86,6 @@ export const useAssistantStore = defineStore(STORES.ASSISTANT, () => { const workflowDataStale = ref(true); const workflowExecutionDataStale = ref(true); - const isExperimentEnabled = computed( - () => getVariant(AI_ASSISTANT_EXPERIMENT.name) === AI_ASSISTANT_EXPERIMENT.variant, - ); - const assistantMessages = computed(() => chatMessages.value.filter((msg) => msg.role === 'assistant'), ); @@ -110,9 +103,7 @@ export const useAssistantStore = defineStore(STORES.ASSISTANT, () => { const isAssistantOpen = computed(() => canShowAssistant.value && chatWindowOpen.value); - const isAssistantEnabled = computed( - () => isExperimentEnabled.value && settings.isAiAssistantEnabled, - ); + const isAssistantEnabled = computed(() => settings.isAiAssistantEnabled); const canShowAssistant = computed( () => isAssistantEnabled.value && ENABLED_VIEWS.includes(route.name as VIEWS),