diff --git a/.beads/bd.sock.startlock b/.beads/bd.sock.startlock index 7cbf78a..6bc3942 100644 --- a/.beads/bd.sock.startlock +++ b/.beads/bd.sock.startlock @@ -1 +1 @@ -95088 +97492 diff --git a/src/components/activity/activity-panel.tsx b/src/components/activity/activity-panel.tsx index f15a74b..309f8e7 100644 --- a/src/components/activity/activity-panel.tsx +++ b/src/components/activity/activity-panel.tsx @@ -53,11 +53,13 @@ function extractAgentName(issue: BeadIssue): string | null { // Build agent roster - filter out dead agents unless none are active function buildAgentRoster(issues: BeadIssue[]): AgentRosterEntry[] { const agentIssues = issues.filter(issue => - issue.labels.includes(AGENT_LABEL) || issue.labels.some(l => l.startsWith('gt:agent')) + issue.labels.includes(AGENT_LABEL) || + issue.labels.some(l => l.startsWith('gt:agent')) || + issue.labels.includes('agent') ); const roster = agentIssues.map(issue => { - const name = extractAgentName(issue) || issue.id; + const name = extractAgentName(issue) || issue.title.replace('Agent: ', '') || issue.id; const status = deriveAgentStatus(issue.updated_at); return { @@ -71,16 +73,8 @@ function buildAgentRoster(issues: BeadIssue[]): AgentRosterEntry[] { return statusOrder[a.status] - statusOrder[b.status]; }); - // Filter: if there are active agents, show only active + stale (max 5) - // If no active, show stale + stuck (max 3) - // Dead agents never show unless it's the only thing - const activeCount = roster.filter(a => a.status === 'active').length; - - if (activeCount > 0) { - return roster.filter(a => a.status !== 'dead').slice(0, 5); - } else { - return roster.filter(a => a.status !== 'dead').slice(0, 3); - } + // Show all non-dead agents, or at least the most recent ones + return roster.filter(a => a.status !== 'dead' || a.lastSeen).slice(0, 10); } // Format relative time diff --git a/src/components/shared/left-panel.tsx b/src/components/shared/left-panel.tsx index a73c70b..b7a5d81 100644 --- a/src/components/shared/left-panel.tsx +++ b/src/components/shared/left-panel.tsx @@ -61,18 +61,14 @@ export function LeftPanel({ }; const handleEpicClick = (epicId: string) => { - onEpicSelect?.(epicId); + onEpicSelect?.(epicId === selectedEpicId ? null : epicId); // Toggle selection toggleEpic(epicId); }; if (isTablet) { return (
NO_CHANNELS