- RouteDetail.tsx was missed in page stripping pass — remove AppShell
+ Sidebar wrapper, replace with fragment
- LayoutSection.tsx used StatusDot status= instead of variant=
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace unicode characters, emoji, and inline SVGs with lucide-react
components across the entire design system and page layer. Update
tests to assert on SVG elements instead of text content.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The DataTable wrapper's border-radius created visible gaps when nested
inside a parent container (e.g. tableSection) that already provides its
own border and radius. The new flush prop strips border, radius, and
shadow so the table sits flush against its container.
Applied in Dashboard and RouteDetail "Recent Exchanges" tables.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace per-page filtering with a single GlobalFilterProvider (time range +
status) consumed by a redesigned TopBar across all pages. Lift CommandPalette
to App level so Cmd-K works globally with filtered results that navigate to
exchanges, routes, agents, and applications. Sidebar auto-reveals and selects
the target entry on Cmd-K navigation via location state.
- Extract shared time preset utilities (computePresetRange, DEFAULT_PRESETS)
- Add GlobalFilterProvider (time range + status) and CommandPaletteProvider
- Add TimeRangeDropdown primitive with Popover preset list
- Redesign TopBar: breadcrumb | time dropdown | status pills | search | env
- Add application category to Cmd-K search
- Remove FilterBar and local DateRangePicker from Dashboard/Metrics pages
- Filter AgentHealth EventFeed by global time range
- Remove shift/onSearchClick props from TopBar
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Route / redirects to /apps, Dashboard serves both /apps and /apps/:id
- When appId is present, exchanges/routes/agents/search are scoped to that app
- Remove Dashboards sidebar link, add Metrics link
- Sidebar section labels (Applications, Agents) are now clickable nav links
with separate chevron for collapse toggle
- Update all breadcrumbs from Dashboard/href:'/' to Applications/href:'/apps'
- Remove AppDetail page (replaced by scoped Dashboard)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace flat app/route/agent lists with expandable tree navigation.
Apps contain their routes and agents hierarchically. Add localStorage-
backed starring with composite keys for uniqueness. Persist expand
state to sessionStorage across page navigations. Add collapsible
section headers, remove button on starred items, and parent app
context labels. Create stub pages for /apps/:id, /agents/:id,
/admin, /api-docs. Consolidate duplicated sidebar data into
shared mock. Widen sidebar from 220px to 260px.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rename all references from "Execution/executions/execCount" to
"Exchange/exchanges/exchangeCount" to align with Apache Camel's
native Exchange concept. Java class names (CamelExecutionException,
HttpOperationFailedException) are preserved as-is.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Implements the /routes/:id route with route header card (name, status
badge, description), 5-card KPI strip (total executions, success rate,
p50/p99 latency, inflight count), ProcessorTimeline showing aggregate
processor stats across all executions, filtered DataTable of recent
executions for the route, and error patterns section grouped by
exception class. Uses useParams() to get route ID and navigates to
/exchanges/:id on row click.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>