Skip to content

Commit 7bf4104

Browse files
committed
refactor(ui): rename the "Apps" tab back to "Clients"
Nav label + hint, the page title + subtitle, and the Home stat tile + "See Clients" CTA. Updates the E2E specs that navigated/asserted by "Apps" (clients.spec, clients.wdio, app.wdio). Signed-off-by: Mohammod Al Amin Ashik <maa.ashik00@gmail.com>
1 parent 0a6f84c commit 7bf4104

6 files changed

Lines changed: 21 additions & 21 deletions

File tree

apps/desktop/src/features/clients/ClientsPage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,12 +271,12 @@ export default function ClientsPage() {
271271
<header className="flex-shrink-0 border-b border-[rgb(var(--border-subtle))] p-8">
272272
<div className="mx-auto max-w-[2000px]">
273273
<PageHeader
274-
title="Apps"
274+
title="Clients"
275275
titleTestId="clients-title"
276276
subtitle={
277277
<>
278-
The AI apps connected through your gateway. Which tools each one gets (which Space,
279-
which FeatureSet) is configured in{' '}
278+
The AI clients connected through your gateway. Which tools each one gets (which
279+
Space, which FeatureSet) is configured in{' '}
280280
<button
281281
onClick={() => navigateTo('workspaces')}
282282
className="font-medium text-[rgb(var(--accent))] hover:underline"

apps/desktop/src/features/home/HomePage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ function GetStartedStrip() {
121121
icon: Monitor,
122122
title: 'Connect an AI app',
123123
desc: 'Point Cursor, Claude, or VS Code at your gateway below.',
124-
cta: 'See Apps',
124+
cta: 'See Clients',
125125
nav: 'clients' as NavItem,
126126
},
127127
];
@@ -310,8 +310,8 @@ export function HomePage() {
310310
testId="stat-clients"
311311
valueTestId="stat-clients-value"
312312
icon={Monitor}
313-
label="Apps"
314-
sub="Connected AI apps"
313+
label="Clients"
314+
sub="Connected AI clients"
315315
value={String(stats.clients)}
316316
accent="hsl(152 55% 45%)"
317317
navTarget="clients"

apps/desktop/src/lib/navigation.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@ export const NAV_ZONES: NavZone[] = [
8686
entries: [
8787
{
8888
key: 'clients',
89-
label: 'Apps',
89+
label: 'Clients',
9090
icon: Monitor,
9191
testId: 'nav-clients',
92-
hint: 'AI apps connected through your gateway',
92+
hint: 'AI clients connected through your gateway',
9393
},
9494
{
9595
key: 'workspaces',

tests/e2e/specs/app.wdio.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ describe('McpMux Application', () => {
5656
await safeClick(clientsButton);
5757
await browser.pause(1500);
5858
const pageSource = await browser.getPageSource();
59-
expect(pageSource.includes('Apps') || pageSource.includes('clients-page')).toBe(true);
59+
expect(pageSource.includes('Clients') || pageSource.includes('clients-page')).toBe(true);
6060
});
6161

6262
it('should navigate to FeatureSets page', async () => {

tests/e2e/specs/clients.spec.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ test.describe('Connections Page', () => {
88
await dashboard.navigate();
99

1010
// Click Clients in sidebar
11-
await page.locator('nav button:has-text("Apps")').click();
11+
await page.locator('nav button:has-text("Clients")').click();
1212

1313
await expect(clients.heading).toBeVisible();
1414
await expect(clients.heading).toHaveText('Connections');
@@ -17,7 +17,7 @@ test.describe('Connections Page', () => {
1717
test('should describe that routing lives in Workspaces', async ({ page }) => {
1818
const dashboard = new DashboardPage(page);
1919
await dashboard.navigate();
20-
await page.locator('nav button:has-text("Apps")').click();
20+
await page.locator('nav button:has-text("Clients")').click();
2121

2222
// Routing is configured in Workspaces, not per-client.
2323
await expect(
@@ -28,7 +28,7 @@ test.describe('Connections Page', () => {
2828
test('should show description text', async ({ page }) => {
2929
const dashboard = new DashboardPage(page);
3030
await dashboard.navigate();
31-
await page.locator('nav button:has-text("Apps")').click();
31+
await page.locator('nav button:has-text("Clients")').click();
3232

3333
const description = page.locator('text=/connected|AI|client/i');
3434
// Description about clients should be visible
@@ -37,7 +37,7 @@ test.describe('Connections Page', () => {
3737
test('should show empty state or client list', async ({ page }) => {
3838
const dashboard = new DashboardPage(page);
3939
await dashboard.navigate();
40-
await page.locator('nav button:has-text("Apps")').click();
40+
await page.locator('nav button:has-text("Clients")').click();
4141

4242
const emptyState = page.locator('text=/No clients|no.*connected/i');
4343
const clientItems = page.locator('[class*="rounded"][class*="border"]');
@@ -52,7 +52,7 @@ test.describe('Connections Page', () => {
5252
test('should display client cards if clients exist', async ({ page }) => {
5353
const dashboard = new DashboardPage(page);
5454
await dashboard.navigate();
55-
await page.locator('nav button:has-text("Apps")').click();
55+
await page.locator('nav button:has-text("Clients")').click();
5656

5757
const clientCards = page.locator('[class*="rounded"][class*="border"]');
5858
const count = await clientCards.count();
@@ -69,7 +69,7 @@ test.describe('Connection Details', () => {
6969
test('should show last-seen indicator on connection cards', async ({ page }) => {
7070
const dashboard = new DashboardPage(page);
7171
await dashboard.navigate();
72-
await page.locator('nav button:has-text("Apps")').click();
72+
await page.locator('nav button:has-text("Clients")').click();
7373

7474
const clientCards = page.locator('[data-testid^="client-card-"]');
7575
const count = await clientCards.count();
@@ -87,7 +87,7 @@ test.describe('Connection Details', () => {
8787
}) => {
8888
const dashboard = new DashboardPage(page);
8989
await dashboard.navigate();
90-
await page.locator('nav button:has-text("Apps")').click();
90+
await page.locator('nav button:has-text("Clients")').click();
9191

9292
const clientCards = page.locator('[data-testid^="client-card-"]');
9393
const count = await clientCards.count();
@@ -112,7 +112,7 @@ test.describe('Connection lifecycle', () => {
112112
test('should have refresh button if available', async ({ page }) => {
113113
const dashboard = new DashboardPage(page);
114114
await dashboard.navigate();
115-
await page.locator('nav button:has-text("Apps")').click();
115+
await page.locator('nav button:has-text("Clients")').click();
116116

117117
const refreshButton = page.getByRole('button', { name: /Refresh/ });
118118
// Always rendered on the Connections header.
@@ -126,7 +126,7 @@ test.describe('Connections toast container', () => {
126126
const clients = new ClientsPage(page);
127127
await dashboard.navigate();
128128

129-
await page.locator('nav button:has-text("Apps")').click();
129+
await page.locator('nav button:has-text("Clients")').click();
130130
await expect(clients.heading).toBeVisible();
131131

132132
await expect(clients.toastContainer).toBeAttached();
@@ -138,7 +138,7 @@ test.describe('Connections toast container', () => {
138138
const clients = new ClientsPage(page);
139139
await dashboard.navigate();
140140

141-
await page.locator('nav button:has-text("Apps")').click();
141+
await page.locator('nav button:has-text("Clients")').click();
142142

143143
const clientCards = page.locator('[data-testid^="client-card-"]');
144144
const count = await clientCards.count();
@@ -162,7 +162,7 @@ test.describe('Connections toast container', () => {
162162
const clients = new ClientsPage(page);
163163
await dashboard.navigate();
164164

165-
await page.locator('nav button:has-text("Apps")').click();
165+
await page.locator('nav button:has-text("Clients")').click();
166166

167167
const clientCards = page.locator('[data-testid^="client-card-"]');
168168
const count = await clientCards.count();

tests/e2e/specs/clients.wdio.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ describe('Connections - Page shell', () => {
2222
const pageSource = await browser.getPageSource();
2323

2424
// Heading has been renamed.
25-
expect(pageSource.includes('Apps')).toBe(true);
25+
expect(pageSource.includes('Clients')).toBe(true);
2626

2727
// The page routes users to the Mapping tab for any routing questions.
2828
expect(pageSource.includes('Mapping')).toBe(true);

0 commit comments

Comments
 (0)