diff --git a/ui/src/components/ActivityRow.tsx b/ui/src/components/ActivityRow.tsx index 1bfc466b..c5705306 100644 --- a/ui/src/components/ActivityRow.tsx +++ b/ui/src/components/ActivityRow.tsx @@ -66,9 +66,9 @@ function formatVerb(action: string, details?: Record | null): s return ACTION_VERBS[action] ?? action.replace(/[._]/g, " "); } -function entityLink(entityType: string, entityId: string): string | null { +function entityLink(entityType: string, entityId: string, name?: string | null): string | null { switch (entityType) { - case "issue": return `/issues/${entityId}`; + case "issue": return `/issues/${name ?? entityId}`; case "agent": return `/agents/${entityId}`; case "project": return `/projects/${entityId}`; case "goal": return `/goals/${entityId}`; @@ -100,7 +100,7 @@ export function ActivityRow({ event, agentMap, entityNameMap, className }: Activ const link = isHeartbeatEvent && heartbeatAgentId ? `/agents/${heartbeatAgentId}/runs/${event.entityId}` - : entityLink(event.entityType, event.entityId); + : entityLink(event.entityType, event.entityId, name); const actor = event.actorType === "agent" ? agentMap.get(event.actorId) : null; diff --git a/ui/src/pages/Activity.tsx b/ui/src/pages/Activity.tsx index 198a983b..d96a48bf 100644 --- a/ui/src/pages/Activity.tsx +++ b/ui/src/pages/Activity.tsx @@ -67,7 +67,7 @@ export function Activity() { const entityNameMap = useMemo(() => { const map = new Map(); - for (const i of issues ?? []) map.set(`issue:${i.id}`, i.title); + for (const i of issues ?? []) map.set(`issue:${i.id}`, i.identifier ?? i.id.slice(0, 8)); for (const a of agents ?? []) map.set(`agent:${a.id}`, a.name); for (const p of projects ?? []) map.set(`project:${p.id}`, p.name); for (const g of goals ?? []) map.set(`goal:${g.id}`, g.title); diff --git a/ui/src/pages/Dashboard.tsx b/ui/src/pages/Dashboard.tsx index 82e6b882..42c09d59 100644 --- a/ui/src/pages/Dashboard.tsx +++ b/ui/src/pages/Dashboard.tsx @@ -137,7 +137,7 @@ export function Dashboard() { const entityNameMap = useMemo(() => { const map = new Map(); - for (const i of issues ?? []) map.set(`issue:${i.id}`, i.title); + for (const i of issues ?? []) map.set(`issue:${i.id}`, i.identifier ?? i.id.slice(0, 8)); for (const a of agents ?? []) map.set(`agent:${a.id}`, a.name); for (const p of projects ?? []) map.set(`project:${p.id}`, p.name); return map;