fix: use issue shortname (identifier) in activity feed instead of title

Activity feed and dashboard now display issue identifiers like PAP-32
instead of issue titles for entity names. Also uses identifier-based
URLs for issue links in the activity feed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Forgotten
2026-02-21 08:25:08 -06:00
parent fe63c10d69
commit 3392f4dbfa
3 changed files with 5 additions and 5 deletions

View File

@@ -66,9 +66,9 @@ function formatVerb(action: string, details?: Record<string, unknown> | 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;

View File

@@ -67,7 +67,7 @@ export function Activity() {
const entityNameMap = useMemo(() => {
const map = new Map<string, string>();
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);

View File

@@ -137,7 +137,7 @@ export function Dashboard() {
const entityNameMap = useMemo(() => {
const map = new Map<string, string>();
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;