UX overhaul: streamline navigation from search results to route diagram #69
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Priority: HIGH — Core navigation refactor
Problem Statement
The current UI requires 3 interactions to reach the route diagram from search results: (1) click row to expand, (2) scan past processor tree to find sidebar button, (3) click "View Route Diagram". This is the most important user journey in the application and it's buried behind an indirect, non-obvious path.
Users coming from observability tools (Jaeger, Datadog APM, Grafana Tempo) expect one click to go from a trace row to the detail/visualization view.
Current Flow (3 clicks)
Target Flow (1 click)
UX Audit Findings
1. Row click should navigate directly to RoutePage
/apps/:group/routes/:routeId?exec=:execId2. Inline expand panel duplicates the RoutePage
The expanded row shows Processor Tree + Exchange Details — both already exist as tabs on the RoutePage. The user sees partial data inline, then navigates to a page showing the same data again. This creates confusion ("where am I?") and wasted screen real estate.
Solution: Remove the inline expand. Move Exchange Details to a new Exchange tab on the RoutePage. All execution detail lives in one place.
3. RoutePage becomes the universal detail view
After refactor, RoutePage tabs become:
The RoutePage works with or without
?exec=— without it, shows the route topology only.4. Route column in results table should be a clickable link
The "Route" column (
exec.routeId) should be a link to the route diagram (without execution context). This gives a fast secondary path for users who want to see the route topology without drilling into a specific execution.5. Add "Applications" to TopNav
/appsshows groups and their routes. Clicking a route goes to RoutePage without?exec=. This makes route diagrams discoverable from top-level navigation without requiring a search first. (See #54)6. Preserve table state on back-navigation
When navigating back from RoutePage to ExecutionExplorer:
7. Consider split-panel layout (future)
Alternative to full page navigation: clicking a row opens a right-side panel with diagram + detail while the table stays visible on the left (like email clients, Kibana Discover, Azure App Insights). This keeps search context visible while exploring executions. Higher effort — consider for v2.
Implementation Plan
Phase 1: Direct navigation (core change)
?exec=ResultRowexpand logic,detailRowCSS)Phase 2: RoutePage as complete detail view
ExchangeDetail.tsx)?exec=param (diagram-only mode, no overlay)Phase 3: Table enhancements
/apps/:group/routes/:routeId)Phase 4: Top-level navigation
/appspage with group → route hierarchy (see #54)Files Affected
ui/src/pages/executions/ResultsTable.tsx— remove expand, direct nav on clickui/src/pages/executions/ExchangeDetail.tsx— move to RoutePage as Exchange tabui/src/pages/routes/RoutePage.tsx— add Exchange tab, handle no-exec modeui/src/components/layout/TopNav.tsx— add Applications linkui/src/router.tsx— add/appsrouteui/src/pages/executions/ExecutionExplorer.tsx— state preservationui/src/pages/routes/ResultsTable.module.css— remove detail row stylesDesign Principle
Related Issues
Dependency note: Phase 1 (direct row-click navigation) currently works around the missing
groupfield by looking up the agent registry at click time (ResultsTable.handleDiagramNav). Once #37 lands andgroupis onExecutionSummary, this lookup can be removed and navigation becomes a simple URL build from row data.Also: the "Application" column currently shows
agentId(instance ID) instead of the application name (group). #70 tracks fixing this. With the terminology clarification:order-service-eu)The
/apps/:group/routes/:routeIdURL pattern is correct — it uses the application name, not the instance ID.Fully implemented — ResultsTable row click navigates to
/apps/{group}/routes/{routeId}?exec={execId}with view transitions and highlight-on-return. Closing.