From 52f0960cea4fee8db15353f148a5d75d9215d581 Mon Sep 17 00:00:00 2001 From: Benjamin Schroth <68321970+schrothbn@users.noreply.github.com> Date: Thu, 4 Jun 2026 16:44:13 +0200 Subject: [PATCH] feat(editor): Evaluations canvas info card (no-changelog) (#31318) --- .../frontend/@n8n/i18n/src/locales/en.json | 4 + .../src/app/constants/localStorage.ts | 2 + .../editor-ui/src/app/views/NodeView.vue | 14 + .../EvaluationsCanvasInfoCard.test.ts | 180 +++++++++ .../EvaluationsCanvasInfoCard.vue | 360 ++++++++++++++++++ 5 files changed, 560 insertions(+) create mode 100644 packages/frontend/editor-ui/src/features/ai/evaluation.ee/components/EvaluationsCanvasInfoCard/EvaluationsCanvasInfoCard.test.ts create mode 100644 packages/frontend/editor-ui/src/features/ai/evaluation.ee/components/EvaluationsCanvasInfoCard/EvaluationsCanvasInfoCard.vue diff --git a/packages/frontend/@n8n/i18n/src/locales/en.json b/packages/frontend/@n8n/i18n/src/locales/en.json index dcca3f5aee8..bc5377ff024 100644 --- a/packages/frontend/@n8n/i18n/src/locales/en.json +++ b/packages/frontend/@n8n/i18n/src/locales/en.json @@ -5439,6 +5439,10 @@ "evaluations.wizardSidepanel.step3.outputPlaceholder": "Run the evaluation to view the captured output.", "evaluations.wizardSidepanel.step3.noRun": "Run the evaluation to see results.", "evaluations.wizardSidepanel.hydrate.error": "Couldn’t load your previous setup. Starting with a blank wizard.", + "evaluations.canvasInfoCard.title": "Setup evaluations for workflows", + "evaluations.canvasInfoCard.description": "Catch issues early and build with confidence with automated tests using model-graded checks.", + "evaluations.canvasInfoCard.setup": "Setup", + "evaluations.canvasInfoCard.dismiss": "Dismiss", "evaluations.emptyState.title": "Evaluations", "evaluations.emptyState.description": "Evals are automated tests that evaluate agent workflow outputs using model-graded checks.", "evaluations.emptyState.catchIssues.title": "Catch issues early", diff --git a/packages/frontend/editor-ui/src/app/constants/localStorage.ts b/packages/frontend/editor-ui/src/app/constants/localStorage.ts index 7c1dd186eb4..7e76d3be9d0 100644 --- a/packages/frontend/editor-ui/src/app/constants/localStorage.ts +++ b/packages/frontend/editor-ui/src/app/constants/localStorage.ts @@ -34,3 +34,5 @@ export const LOCAL_STORAGE_BROWSER_NOTIFICATION_METADATA = 'N8N_BROWSER_NOTIFICA export const LOCAL_STORAGE_FLOATING_CHAT_WINDOW = 'N8N_FLOATING_CHAT_WINDOW'; export const LOCAL_STORAGE_AGENT_BUILDER_CHAT_PANEL_WIDTH = 'N8N_AGENT_BUILDER_CHAT_PANEL_WIDTH'; export const LOCAL_STORAGE_PARALLEL_EVAL_BY_WORKFLOW = 'N8N_PARALLEL_EVAL_BY_WORKFLOW'; +export const LOCAL_STORAGE_EVALUATIONS_CANVAS_INFO_CARD_DISMISSED = + 'N8N_EVALUATIONS_CANVAS_INFO_CARD_DISMISSED'; diff --git a/packages/frontend/editor-ui/src/app/views/NodeView.vue b/packages/frontend/editor-ui/src/app/views/NodeView.vue index d7a9a2ae200..592195825e8 100644 --- a/packages/frontend/editor-ui/src/app/views/NodeView.vue +++ b/packages/frontend/editor-ui/src/app/views/NodeView.vue @@ -131,6 +131,7 @@ import { useFocusPanelStore } from '@/app/stores/focusPanel.store'; import { useEmptyStateBuilderPromptStore } from '@/experiments/emptyStateBuilderPrompt/stores/emptyStateBuilderPrompt.store'; import { useEvaluationsWizardSidepanelStore } from '@/features/ai/evaluation.ee/wizardSidepanel.store'; import { useEvaluationsWizardSidepanelExperiment } from '@/experiments/evaluationsWizardSidepanel/useEvaluationsWizardSidepanelExperiment'; +import EvaluationsCanvasInfoCard from '@/features/ai/evaluation.ee/components/EvaluationsCanvasInfoCard/EvaluationsCanvasInfoCard.vue'; import { useChatPanelStore } from '@/features/ai/assistant/chatPanel.store'; import { useChatHubPanelStore } from '@/features/ai/chatHub/chatHubPanel.store'; import { useKeybindings } from '@/app/composables/useKeybindings'; @@ -2004,6 +2005,10 @@ onBeforeUnmount(() => { +
{