From c85e53acc256c284ec08720271ead44054a2cfe0 Mon Sep 17 00:00:00 2001 From: Behnam Ousat Date: Mon, 24 Aug 2026 14:33:48 -0700 Subject: [PATCH 1/2] Add registry names to target table --- .../src/components/Config/TargetTable.styles.ts | 10 ++++++++++ .../src/components/Config/TargetTable.test.tsx | 4 +++- frontend/src/components/Config/TargetTable.tsx | 15 +++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/Config/TargetTable.styles.ts b/frontend/src/components/Config/TargetTable.styles.ts index 9e7af2032f..b71eedbed6 100644 --- a/frontend/src/components/Config/TargetTable.styles.ts +++ b/frontend/src/components/Config/TargetTable.styles.ts @@ -26,6 +26,16 @@ export const useTargetTableStyles = makeStyles({ activeRow: { backgroundColor: tokens.colorBrandBackground2, }, + registryNameCell: { + minWidth: 0, + }, + registryNameText: { + display: 'block', + maxWidth: '100%', + whiteSpace: 'normal', + overflowWrap: 'anywhere', + wordBreak: 'break-word', + }, endpointCell: { overflowWrap: 'break-word', wordBreak: 'break-all', diff --git a/frontend/src/components/Config/TargetTable.test.tsx b/frontend/src/components/Config/TargetTable.test.tsx index 916c7e6d38..23356b271a 100644 --- a/frontend/src/components/Config/TargetTable.test.tsx +++ b/frontend/src/components/Config/TargetTable.test.tsx @@ -79,13 +79,15 @@ describe('TargetTable', () => { expect(screen.getAllByText('TextTarget').length).toBeGreaterThanOrEqual(1) }) - it('should display Type, Model, Endpoint, Inputs, Outputs, capability columns and Parameters columns', () => { + it('should display Registry Name, Type, Model, Endpoint, Inputs, Outputs, capability columns and Parameters columns', () => { render( ) + expect(screen.getByText('Registry Name')).toBeInTheDocument() + expect(screen.getByText('openai_chat_gpt4')).toBeInTheDocument() expect(screen.getByText('Type')).toBeInTheDocument() expect(screen.getByText('Model')).toBeInTheDocument() expect(screen.getByText('Endpoint')).toBeInTheDocument() diff --git a/frontend/src/components/Config/TargetTable.tsx b/frontend/src/components/Config/TargetTable.tsx index 4129d01787..c1660f07ee 100644 --- a/frontend/src/components/Config/TargetTable.tsx +++ b/frontend/src/components/Config/TargetTable.tsx @@ -67,6 +67,7 @@ const CAPABILITY_COLUMNS = [ ] as const const COLUMN_TOOLTIPS = { + registryName: 'Unique name used to identify this configured target', type: 'Target class implementation', model: 'Configured model name. A dotted underline indicates the deployment alias differs from the underlying model — hover the value to see it.', endpoint: 'API endpoint URL the target sends requests to', @@ -211,6 +212,9 @@ function InnerTargetRows({ parentKey, innerTargets, weights }: { #{idx + 1} + + {inner.target_registry_name} + {targetType(inner)} @@ -286,6 +290,9 @@ export default function TargetTable({ targets, activeTarget, onSetActiveTarget } }>Active + + {activeTarget.target_registry_name} +
{hasInnerTargets(activeTarget) && ( @@ -357,6 +364,11 @@ export default function TargetTable({ targets, activeTarget, onSetActiveTarget } + + + Registry Name + + Type @@ -425,6 +437,9 @@ export default function TargetTable({ targets, activeTarget, onSetActiveTarget } )} + + {target.target_registry_name} +
{/* Chevron in the Type column keeps the action column aligned */} From b9c37644a37189ca6b9ec11005aef94372ac5735 Mon Sep 17 00:00:00 2001 From: Behnam Ousat Date: Fri, 28 Aug 2026 10:03:47 -0700 Subject: [PATCH 2/2] TEST Add registry name coverage Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: accf86f5-b28e-467e-acac-9ea89a9dfe48 --- frontend/src/components/Config/TargetTable.test.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/Config/TargetTable.test.tsx b/frontend/src/components/Config/TargetTable.test.tsx index 23356b271a..8a19425c87 100644 --- a/frontend/src/components/Config/TargetTable.test.tsx +++ b/frontend/src/components/Config/TargetTable.test.tsx @@ -1,4 +1,4 @@ -import { render, screen, fireEvent } from '@testing-library/react' +import { render, screen, fireEvent, within } from '@testing-library/react' import { FluentProvider, webLightTheme } from '@fluentui/react-components' import { makeTarget } from '@/test-utils/targetFixtures' import TargetTable from './TargetTable' @@ -133,7 +133,9 @@ describe('TargetTable', () => { ) - // Active indicator shows type and model above the table + const activeTargetTable = screen.getByRole('table', { name: 'Active target' }) + expect(within(activeTargetTable).getByText('openai_chat_gpt4')).toBeInTheDocument() + const badges = screen.getAllByText('Active') expect(badges.length).toBeGreaterThanOrEqual(2) // one above table + one in row }) @@ -387,6 +389,8 @@ describe('TargetTable', () => { fireEvent.click(expandButton) // Inner targets should now be visible + expect(screen.getByText('inner_a')).toBeInTheDocument() + expect(screen.getByText('inner_b')).toBeInTheDocument() expect(screen.getByText('https://a.openai.azure.com')).toBeInTheDocument() expect(screen.getByText('https://b.openai.azure.com')).toBeInTheDocument() })