diff --git a/ui/src/components/ContentTabs.tsx b/ui/src/components/ContentTabs.tsx
index 6444cbe3..9007e281 100644
--- a/ui/src/components/ContentTabs.tsx
+++ b/ui/src/components/ContentTabs.tsx
@@ -9,8 +9,6 @@ const BASE_TABS = [
{ label: 'Exchanges', value: 'exchanges' },
{ label: 'Dashboard', value: 'dashboard' },
{ label: 'Runtime', value: 'runtime' },
- { label: 'Logs', value: 'logs' },
- { label: 'Config', value: 'config' },
];
interface ContentTabsProps {
diff --git a/ui/src/components/ExecutionDiagram/tabs/LogTab.tsx b/ui/src/components/ExecutionDiagram/tabs/LogTab.tsx
index 10d6b4a8..df3c1980 100644
--- a/ui/src/components/ExecutionDiagram/tabs/LogTab.tsx
+++ b/ui/src/components/ExecutionDiagram/tabs/LogTab.tsx
@@ -107,10 +107,10 @@ export function LogTab({ applicationId, exchangeId, processorId }: LogTabProps)
{exchangeId && (
)}
diff --git a/ui/src/components/LayoutShell.tsx b/ui/src/components/LayoutShell.tsx
index 44b8761f..a6275a1e 100644
--- a/ui/src/components/LayoutShell.tsx
+++ b/ui/src/components/LayoutShell.tsx
@@ -618,9 +618,9 @@ function LayoutContent() {
const appMatch = path.match(/^\/apps\/([^/]+)(?:\/(.+))?$/);
if (appMatch) {
const [, sAppId, sRouteId] = appMatch;
- if (scope.tab === 'config') {
- // Config tab: always navigate to /config/:appId (route click → same app config)
- navigate(`/config/${sAppId}`, { state });
+ if (scope.tab === 'apps') {
+ // Deployments tab: navigate to /apps/:appId
+ navigate(`/apps/${sAppId}`, { state });
} else {
navigate(sRouteId ? `/${scope.tab}/${sAppId}/${sRouteId}` : `/${scope.tab}/${sAppId}`, { state });
}
diff --git a/ui/src/hooks/useScope.ts b/ui/src/hooks/useScope.ts
index 1700a774..dc7dfffa 100644
--- a/ui/src/hooks/useScope.ts
+++ b/ui/src/hooks/useScope.ts
@@ -2,9 +2,9 @@
import { useParams, useNavigate, useLocation } from 'react-router';
import { useCallback } from 'react';
-export type TabKey = 'exchanges' | 'dashboard' | 'runtime' | 'logs' | 'config' | 'apps';
+export type TabKey = 'exchanges' | 'dashboard' | 'runtime' | 'apps';
-const VALID_TABS = new Set(['exchanges', 'dashboard', 'runtime', 'logs', 'config', 'apps']);
+const VALID_TABS = new Set(['exchanges', 'dashboard', 'runtime', 'apps']);
export interface Scope {
tab: TabKey;
diff --git a/ui/src/pages/Exchanges/ExchangeHeader.tsx b/ui/src/pages/Exchanges/ExchangeHeader.tsx
index 2d373b9c..da53cac6 100644
--- a/ui/src/pages/Exchanges/ExchangeHeader.tsx
+++ b/ui/src/pages/Exchanges/ExchangeHeader.tsx
@@ -118,7 +118,7 @@ export function ExchangeHeader({ detail, onCorrelatedSelect, onClearSelection }:
{formatDuration(detail.durationMs)}