diff --git a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/search/OpenSearchIndex.java b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/search/OpenSearchIndex.java
index 436b39cc..132086b3 100644
--- a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/search/OpenSearchIndex.java
+++ b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/search/OpenSearchIndex.java
@@ -323,6 +323,7 @@ public class OpenSearchIndex implements SearchIndex {
(String) src.get("execution_id"),
(String) src.get("route_id"),
(String) src.get("agent_id"),
+ (String) src.get("group_name"),
(String) src.get("status"),
src.get("start_time") != null ? Instant.parse((String) src.get("start_time")) : null,
src.get("end_time") != null ? Instant.parse((String) src.get("end_time")) : null,
diff --git a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/search/ExecutionSummary.java b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/search/ExecutionSummary.java
index 885e9764..51038dbd 100644
--- a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/search/ExecutionSummary.java
+++ b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/search/ExecutionSummary.java
@@ -23,6 +23,7 @@ public record ExecutionSummary(
String executionId,
String routeId,
String agentId,
+ String groupName,
String status,
Instant startTime,
Instant endTime,
diff --git a/ui/src/pages/Dashboard/Dashboard.module.css b/ui/src/pages/Dashboard/Dashboard.module.css
index 2d4ad884..5b32cf35 100644
--- a/ui/src/pages/Dashboard/Dashboard.module.css
+++ b/ui/src/pages/Dashboard/Dashboard.module.css
@@ -83,6 +83,24 @@
padding-top: 2px;
}
+.inspectLink {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 24px;
+ height: 24px;
+ font-size: 14px;
+ color: var(--text-muted);
+ text-decoration: none;
+ border-radius: 4px;
+ transition: color 0.15s, background 0.15s;
+}
+
+.inspectLink:hover {
+ color: var(--accent, #c6820e);
+ background: var(--bg-hover);
+}
+
.openDetailLink {
display: inline-block;
font-size: 13px;
diff --git a/ui/src/pages/Dashboard/Dashboard.tsx b/ui/src/pages/Dashboard/Dashboard.tsx
index d371a30f..e687a68a 100644
--- a/ui/src/pages/Dashboard/Dashboard.tsx
+++ b/ui/src/pages/Dashboard/Dashboard.tsx
@@ -84,6 +84,17 @@ export default function Dashboard() {
),
},
+ {
+ key: '_inspect' as any, header: '', width: '36px',
+ render: (_v, row) => (
+ { e.stopPropagation(); e.preventDefault(); navigate(`/exchanges/${row.executionId}`); }}
+ className={styles.inspectLink}
+ title="Open full details"
+ >↗
+ ),
+ },
{ key: 'routeId', header: 'Route', sortable: true, render: (v) => {String(v)} },
{ key: 'groupName', header: 'Application', sortable: true, render: (v) => {String(v ?? '')} },
{ key: 'executionId', header: 'Exchange ID', sortable: true, render: (v) =>