From 565ca5445fd6e62769adfe7574eef93bc10a8cdb Mon Sep 17 00:00:00 2001 From: RemiBonnet Date: Wed, 26 Aug 2026 16:04:19 +0200 Subject: [PATCH 1/2] feat(agent-task): rename agentic workflow --- .../create/agentic-workflow/configuration.tsx | 2 +- .../create/agentic-workflow/summary.tsx | 2 +- .../lib/audit-logs-view/audit-logs-view.tsx | 5 ++--- .../feature/src/lib/audit-logs/audit-logs.tsx | 4 ++-- .../utils/target-type-selection-utils.spec.ts | 14 +++++++++++-- .../lib/utils/target-type-selection-utils.tsx | 7 +++++++ .../agentic-workflow-settings.tsx | 20 +++++++++---------- .../agentic-workflow-service-actions.tsx | 3 +-- .../agentic-workflow-service-list.spec.tsx | 2 +- .../agentic-workflow-service-list.tsx | 4 ++-- .../use-edit-service/use-edit-service.ts | 2 +- .../agentic-workflow-configuration.tsx | 12 +++++------ .../ai-model-cards.tsx | 2 +- .../agentic-workflow-summary.tsx | 4 ++-- .../src/lib/service-new/service-new.spec.tsx | 6 +++--- .../src/lib/service-new/service-new.tsx | 4 ++-- 16 files changed, 54 insertions(+), 39 deletions(-) diff --git a/apps/console/src/routes/_authenticated/organization/$organizationId/project/$projectId/environment/$environmentId/service/create/agentic-workflow/configuration.tsx b/apps/console/src/routes/_authenticated/organization/$organizationId/project/$projectId/environment/$environmentId/service/create/agentic-workflow/configuration.tsx index 836922c909b..f6fb03b2436 100644 --- a/apps/console/src/routes/_authenticated/organization/$organizationId/project/$projectId/environment/$environmentId/service/create/agentic-workflow/configuration.tsx +++ b/apps/console/src/routes/_authenticated/organization/$organizationId/project/$projectId/environment/$environmentId/service/create/agentic-workflow/configuration.tsx @@ -9,7 +9,7 @@ export const Route = createFileRoute( }) function RouteComponent() { - useDocumentTitle('Agentic workflow configuration') + useDocumentTitle('Agent task configuration') return } diff --git a/apps/console/src/routes/_authenticated/organization/$organizationId/project/$projectId/environment/$environmentId/service/create/agentic-workflow/summary.tsx b/apps/console/src/routes/_authenticated/organization/$organizationId/project/$projectId/environment/$environmentId/service/create/agentic-workflow/summary.tsx index 6bb8d520991..0b958e78c35 100644 --- a/apps/console/src/routes/_authenticated/organization/$organizationId/project/$projectId/environment/$environmentId/service/create/agentic-workflow/summary.tsx +++ b/apps/console/src/routes/_authenticated/organization/$organizationId/project/$projectId/environment/$environmentId/service/create/agentic-workflow/summary.tsx @@ -9,7 +9,7 @@ export const Route = createFileRoute( }) function RouteComponent() { - useDocumentTitle('Summary - Create agentic workflow') + useDocumentTitle('Summary - Create agent task') return } diff --git a/libs/domains/audit-logs/feature/src/lib/audit-logs-view/audit-logs-view.tsx b/libs/domains/audit-logs/feature/src/lib/audit-logs-view/audit-logs-view.tsx index 22c4d075bec..1c08416064f 100644 --- a/libs/domains/audit-logs/feature/src/lib/audit-logs-view/audit-logs-view.tsx +++ b/libs/domains/audit-logs/feature/src/lib/audit-logs-view/audit-logs-view.tsx @@ -7,9 +7,8 @@ import { eventsFactoryMock } from '@qovery/shared/factories' import { type AuditLogsParams, DEFAULT_PAGE_SIZE } from '@qovery/shared/router' import { ALL, type NavigationLevel, type SelectedItem, type TableFilterProps } from '@qovery/shared/ui' import { useDocumentTitle, useSupportChat } from '@qovery/shared/util-hooks' -import { upperCaseFirstLetter } from '@qovery/shared/util-js' import { AuditLogs } from '../audit-logs/audit-logs' -import { initializeSelectedItemsFromQueryParams } from '../utils/target-type-selection-utils' +import { getTargetTypeLabel, initializeSelectedItemsFromQueryParams } from '../utils/target-type-selection-utils' const route = getRouteApi('/_authenticated/organization/$organizationId/audit-logs') @@ -107,7 +106,7 @@ export function AuditLogsView() { const organizationEventTargetTypes = Object.keys(OrganizationEventTargetType).map((item) => ({ value: item, - name: upperCaseFirstLetter(item).replace(/_/g, ' '), + name: getTargetTypeLabel(item), })) initializeSelectedItemsFromQueryParams(organizationId, organizationEventTargetTypes, 'target_type', urlParams) diff --git a/libs/domains/audit-logs/feature/src/lib/audit-logs/audit-logs.tsx b/libs/domains/audit-logs/feature/src/lib/audit-logs/audit-logs.tsx index 6c50201c72c..0a41018187e 100644 --- a/libs/domains/audit-logs/feature/src/lib/audit-logs/audit-logs.tsx +++ b/libs/domains/audit-logs/feature/src/lib/audit-logs/audit-logs.tsx @@ -23,13 +23,13 @@ import { type TableHeadProps, } from '@qovery/shared/ui' import { type SelectedTimestamps } from '@qovery/shared/ui' -import { upperCaseFirstLetter } from '@qovery/shared/util-js' import FilterSection from '../filter-section/filter-section' import RowEventFeature from '../row-event-feature/row-event-feature' import { computeDisplayByLabel, computeMenusToDisplay, computeSelectedItemsFromFilter, + getTargetTypeLabel, } from '../utils/target-type-selection-utils' export interface AuditLogsProps { @@ -141,7 +141,7 @@ function createTableDataHead( initialData: Object.keys(OrganizationEventTargetType).map((item) => { return { value: item, - name: upperCaseFirstLetter(item).replace(/_/g, ' '), + name: getTargetTypeLabel(item), } }), initialSelectedItems: targetTypeSelectedItems, diff --git a/libs/domains/audit-logs/feature/src/lib/utils/target-type-selection-utils.spec.ts b/libs/domains/audit-logs/feature/src/lib/utils/target-type-selection-utils.spec.ts index b57b940f1c9..5bd83b5941b 100644 --- a/libs/domains/audit-logs/feature/src/lib/utils/target-type-selection-utils.spec.ts +++ b/libs/domains/audit-logs/feature/src/lib/utils/target-type-selection-utils.spec.ts @@ -1,6 +1,6 @@ import { OrganizationEventApi, OrganizationEventTargetType } from 'qovery-typescript-axios' import { type SelectedItem } from '@qovery/shared/ui' -import { computeMenusToDisplay } from './target-type-selection-utils' +import { computeMenusToDisplay, getTargetTypeLabel } from './target-type-selection-utils' const mockGetOrganizationEventTargets = jest.spyOn(OrganizationEventApi.prototype, 'getOrganizationEventTargets') @@ -8,7 +8,7 @@ const targetTypeItem: SelectedItem = { filterKey: 'target_type', item: { value: OrganizationEventTargetType.AGENTIC_WORKFLOW, - name: 'Agentic workflow', + name: 'Agent task', }, } @@ -85,3 +85,13 @@ describe('computeMenusToDisplay', () => { ) }) }) + +describe('getTargetTypeLabel', () => { + it('uses the Agent task product name for the agentic workflow API type', () => { + expect(getTargetTypeLabel(OrganizationEventTargetType.AGENTIC_WORKFLOW)).toBe('Agent task') + }) + + it('formats other API target types', () => { + expect(getTargetTypeLabel(OrganizationEventTargetType.CONTAINER_REGISTRY)).toBe('Container registry') + }) +}) diff --git a/libs/domains/audit-logs/feature/src/lib/utils/target-type-selection-utils.tsx b/libs/domains/audit-logs/feature/src/lib/utils/target-type-selection-utils.tsx index e56246307e6..807c1dc989f 100644 --- a/libs/domains/audit-logs/feature/src/lib/utils/target-type-selection-utils.tsx +++ b/libs/domains/audit-logs/feature/src/lib/utils/target-type-selection-utils.tsx @@ -6,6 +6,7 @@ import { type NavigationLevel, type SelectedItem, } from '@qovery/shared/ui' +import { upperCaseFirstLetter } from '@qovery/shared/util-js' const SERVICE_TARGET_TYPES: ReadonlySet = new Set([ OrganizationEventTargetType.AGENTIC_WORKFLOW, @@ -17,6 +18,12 @@ const SERVICE_TARGET_TYPES: ReadonlySet = new Set([ OrganizationEventTargetType.TERRAFORM, ]) +export function getTargetTypeLabel(targetType: string) { + return targetType === OrganizationEventTargetType.AGENTIC_WORKFLOW + ? 'Agent task' + : upperCaseFirstLetter(targetType).replace(/_/g, ' ') +} + function getTargetTypeSelected(selectedItems: SelectedItem[]): OrganizationEventTargetType | undefined { const selectedTargetType = selectedItems.find((selectedItem) => { return selectedItem.filterKey === 'target_type' diff --git a/libs/domains/service-settings/feature/src/lib/agentic-workflow-settings/agentic-workflow-settings.tsx b/libs/domains/service-settings/feature/src/lib/agentic-workflow-settings/agentic-workflow-settings.tsx index 74c09ee972e..17ac517f938 100644 --- a/libs/domains/service-settings/feature/src/lib/agentic-workflow-settings/agentic-workflow-settings.tsx +++ b/libs/domains/service-settings/feature/src/lib/agentic-workflow-settings/agentic-workflow-settings.tsx @@ -42,19 +42,19 @@ interface FormValues { } const PAGE_CONTENT: Record = { - general: { title: 'General settings', description: 'Configure the workflow name, description, and availability.' }, + general: { title: 'General settings', description: 'Configure the agent task name, description, and availability.' }, 'ai-configuration': { title: 'AI configuration', - description: 'Configure the model and instructions used by this workflow.', + description: 'Configure the model and instructions used by this agent task.', }, connections: { title: 'Connections', - description: 'Configure the Git repositories, MCP servers, and Dockerfile fragment available to the workflow.', + description: 'Configure the Git repositories, MCP servers, and Dockerfile fragment available to the agent task.', }, - outputs: { title: 'Outputs', description: 'Configure the webhooks called when the workflow produces an output.' }, + outputs: { title: 'Outputs', description: 'Configure the webhooks called when the agent task produces an output.' }, governance: { title: 'Governance', - description: 'Control the hosts and webhook source addresses allowed for this workflow.', + description: 'Control the hosts and webhook source addresses allowed for this agent task.', }, } @@ -241,7 +241,7 @@ export function AgenticWorkflowSettings({ page }: AgenticWorkflowSettingsProps) name="name" label="Name" value={values.name} - error={!values.name.trim() ? 'Please enter a workflow name.' : undefined} + error={!values.name.trim() ? 'Please enter an agent task name.' : undefined} onChange={(event) => form.setValue('name', event.currentTarget.value, { shouldDirty: true })} /> form.setValue('enabled', value, { shouldDirty: true })} />

Resources

- Configure the compute resources allocated to the workflow. + Configure the compute resources allocated to the agent task.

{(['cpu', 'ram', 'gpu', 'storage'] as const).map((name) => ( @@ -303,7 +303,7 @@ export function AgenticWorkflowSettings({ page }: AgenticWorkflowSettingsProps)

Git repositories

- Select the repositories and branches the workflow can access. + Select the repositories and branches the agent task can access.

- <>{upperCaseFirstLetter(event.target_type ?? '')?.replace(/_/g, ' ')} + <>{getTargetTypeLabel(event.target_type ?? '')}