diff --git a/ui/src/components/LayoutShell.tsx b/ui/src/components/LayoutShell.tsx index e679d6c8..199b2b20 100644 --- a/ui/src/components/LayoutShell.tsx +++ b/ui/src/components/LayoutShell.tsx @@ -604,9 +604,12 @@ function LayoutContent() { const appMatch = path.match(/^\/apps\/([^/]+)(?:\/(.+))?$/); if (appMatch) { const [, sAppId, sRouteId] = appMatch; - // Config tab only supports /config/:appId — fall back to exchanges for route-level - const tab = (scope.tab === 'config' && sRouteId) ? 'exchanges' : scope.tab; - navigate(sRouteId ? `/${tab}/${sAppId}/${sRouteId}` : `/${tab}/${sAppId}`, { state }); + if (scope.tab === 'config') { + // Config tab: always navigate to /config/:appId (route click → same app config) + navigate(`/config/${sAppId}`, { state }); + } else { + navigate(sRouteId ? `/${scope.tab}/${sAppId}/${sRouteId}` : `/${scope.tab}/${sAppId}`, { state }); + } return; }