feat(ui): show issue title alongside identifier in activity feed

Activity rows now display the issue title after the identifier
(e.g. "CodexCoder commented on PAP-111 — fix login bug") for
better context at a glance.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Forgotten
2026-02-23 20:06:16 -06:00
parent 5af5e4f302
commit f4698b73de
2 changed files with 12 additions and 1 deletions

View File

@@ -81,10 +81,11 @@ interface ActivityRowProps {
event: ActivityEvent;
agentMap: Map<string, Agent>;
entityNameMap: Map<string, string>;
entityTitleMap?: Map<string, string>;
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
/>
<span className="text-muted-foreground ml-1">{verb} </span>
{name && <span className="font-medium">{name}</span>}
{entityTitle && <span className="text-muted-foreground ml-1"> {entityTitle}</span>}
</p>
<span className="text-xs text-muted-foreground shrink-0 pt-0.5">{timeAgo(event.createdAt)}</span>
</div>

View File

@@ -74,6 +74,12 @@ export function Activity() {
return map;
}, [issues, agents, projects, goals]);
const entityTitleMap = useMemo(() => {
const map = new Map<string, string>();
for (const i of issues ?? []) map.set(`issue:${i.id}`, i.title);
return map;
}, [issues]);
if (!selectedCompanyId) {
return <EmptyState icon={History} message="Select a company to view activity." />;
}
@@ -120,6 +126,7 @@ export function Activity() {
event={event}
agentMap={agentMap}
entityNameMap={entityNameMap}
entityTitleMap={entityTitleMap}
/>
))}
</div>