diff --git a/ui/src/components/ActivityRow.tsx b/ui/src/components/ActivityRow.tsx
index 35c55f0e..8516ffc7 100644
--- a/ui/src/components/ActivityRow.tsx
+++ b/ui/src/components/ActivityRow.tsx
@@ -81,10 +81,11 @@ interface ActivityRowProps {
event: ActivityEvent;
agentMap: Map;
entityNameMap: Map;
+ entityTitleMap?: Map;
className?: string;
}
-export function ActivityRow({ event, agentMap, entityNameMap, className }: ActivityRowProps) {
+export function ActivityRow({ event, agentMap, entityNameMap, entityTitleMap, className }: ActivityRowProps) {
const verb = formatVerb(event.action, event.details);
const isHeartbeatEvent = event.entityType === "heartbeat_run";
@@ -96,6 +97,8 @@ export function ActivityRow({ event, agentMap, entityNameMap, className }: Activ
? (heartbeatAgentId ? entityNameMap.get(`agent:${heartbeatAgentId}`) : null)
: entityNameMap.get(`${event.entityType}:${event.entityId}`);
+ const entityTitle = entityTitleMap?.get(`${event.entityType}:${event.entityId}`);
+
const link = isHeartbeatEvent && heartbeatAgentId
? `/agents/${heartbeatAgentId}/runs/${event.entityId}`
: entityLink(event.entityType, event.entityId, name);
@@ -113,6 +116,7 @@ export function ActivityRow({ event, agentMap, entityNameMap, className }: Activ
/>
{verb}
{name && {name}}
+ {entityTitle && — {entityTitle}}
{timeAgo(event.createdAt)}
diff --git a/ui/src/pages/Activity.tsx b/ui/src/pages/Activity.tsx
index d96a48bf..17b2829f 100644
--- a/ui/src/pages/Activity.tsx
+++ b/ui/src/pages/Activity.tsx
@@ -74,6 +74,12 @@ export function Activity() {
return map;
}, [issues, agents, projects, goals]);
+ const entityTitleMap = useMemo(() => {
+ const map = new Map();
+ for (const i of issues ?? []) map.set(`issue:${i.id}`, i.title);
+ return map;
+ }, [issues]);
+
if (!selectedCompanyId) {
return ;
}
@@ -120,6 +126,7 @@ export function Activity() {
event={event}
agentMap={agentMap}
entityNameMap={entityNameMap}
+ entityTitleMap={entityTitleMap}
/>
))}