diff --git a/.env.local.example b/.env.local.example index 6f3f1a07e83..8aef5d677bd 100644 --- a/.env.local.example +++ b/.env.local.example @@ -43,8 +43,6 @@ N8N_AI_ENABLED= # Base URL of the AI assistant service. # When set, requests are sent to this URL instead of the default provider endpoint. N8N_AI_ASSISTANT_BASE_URL= -# Whether to persist AI workflow builder sessions to the database. -N8N_AI_PERSIST_BUILDER_SESSIONS= # API key for the Anthropic (Claude) provider used by the AI workflow builder. # When set, enables AI-powered workflow and node building. N8N_AI_ANTHROPIC_KEY= diff --git a/packages/@n8n/config/src/configs/ai.config.ts b/packages/@n8n/config/src/configs/ai.config.ts index 8d90b2f9c0e..2867fb5e605 100644 --- a/packages/@n8n/config/src/configs/ai.config.ts +++ b/packages/@n8n/config/src/configs/ai.config.ts @@ -21,10 +21,6 @@ export class AiConfig { @Env('N8N_AI_ALLOW_SENDING_PARAMETER_VALUES') allowSendingParameterValues: boolean = true; - /** Whether to persist AI workflow builder sessions to the database. */ - @Env('N8N_AI_PERSIST_BUILDER_SESSIONS') - persistBuilderSessions: boolean = false; - get openAiDefaultHeaders(): Record { // eslint-disable-next-line @typescript-eslint/naming-convention return { 'openai-platform': 'org-qkmJQuJ2WnvoIKMr2UJwIJkZ' }; diff --git a/packages/@n8n/config/test/config.test.ts b/packages/@n8n/config/test/config.test.ts index 2ec6bc443e2..cfc7fee57af 100644 --- a/packages/@n8n/config/test/config.test.ts +++ b/packages/@n8n/config/test/config.test.ts @@ -449,7 +449,6 @@ describe('GlobalConfig', () => { // @ts-expect-error structuredClone ignores properties defined as a getter ai: { enabled: false, - persistBuilderSessions: false, timeout: 3600000, allowSendingParameterValues: true, }, diff --git a/packages/cli/src/services/__tests__/ai-workflow-builder.service.test.ts b/packages/cli/src/services/__tests__/ai-workflow-builder.service.test.ts index 85f11532985..3b95b168963 100644 --- a/packages/cli/src/services/__tests__/ai-workflow-builder.service.test.ts +++ b/packages/cli/src/services/__tests__/ai-workflow-builder.service.test.ts @@ -91,7 +91,6 @@ describe('WorkflowBuilderService', () => { (mockLicense.getConsumerId as jest.Mock).mockReturnValue('test-consumer-id'); (mockInstanceSettings.instanceId as unknown) = 'test-instance-id'; mockConfig.aiAssistant = { baseUrl: '' }; - (mockConfig.ai as { persistBuilderSessions: boolean }) = { persistBuilderSessions: false }; // Reset the mocked AiWorkflowBuilderService MockedAiWorkflowBuilderService.mockClear(); @@ -138,7 +137,7 @@ describe('WorkflowBuilderService', () => { expect(MockedAiWorkflowBuilderService).toHaveBeenCalledWith( mockNodeTypeDescriptions, - undefined, // No session storage when persistBuilderSessions is false + mockSessionRepository, undefined, // No client when baseUrl is not set mockLogger, 'test-instance-id', // instanceId @@ -183,7 +182,7 @@ describe('WorkflowBuilderService', () => { expect(MockedAiWorkflowBuilderService).toHaveBeenCalledWith( mockNodeTypeDescriptions, - undefined, // No session storage when persistBuilderSessions is false + mockSessionRepository, expect.any(AiAssistantClient), mockLogger, 'test-instance-id', // instanceId diff --git a/packages/cli/src/services/ai-workflow-builder.service.ts b/packages/cli/src/services/ai-workflow-builder.service.ts index 44b22eab8d7..cb506427814 100644 --- a/packages/cli/src/services/ai-workflow-builder.service.ts +++ b/packages/cli/src/services/ai-workflow-builder.service.ts @@ -148,14 +148,9 @@ export class WorkflowBuilderService { await this.loadNodesAndCredentials.postProcessLoaders(); const { nodes: nodeTypeDescriptions } = await this.loadNodesAndCredentials.collectTypes(); - // Use persistent session storage if feature flag is enabled - const sessionStorage = this.config.ai.persistBuilderSessions - ? this.sessionRepository - : undefined; - this.service = new AiWorkflowBuilderService( nodeTypeDescriptions, - sessionStorage, + this.sessionRepository, this.client, this.logger, this.instanceSettings.instanceId,