feat: show sub-agent activity cards in chat stream

Display compact status cards in the chat transcript showing each
sub-agent's name, current activity (Thinking, Using grep, etc.),
and elapsed time. Cards appear while sub-agents are running and
clear when the session goes idle.

- Extend SessionEventRecord with description, error, toolCallId,
  and model fields for subagent events
- Forward additional subagent fields in handleTurnScopedEvent
- Add subagentTracker reducer to derive active subagent state from
  session events, including agent-activity correlation
- Create SubagentActivityCard component with spinner, status icon,
  agent name, activity label, and live elapsed timer
- Wire activeSubagents state in App.tsx and pass to ChatPane
- Add 16 unit tests for the subagent tracker

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Kaya
2026-03-29 00:04:05 +01:00
co-authored by Copilot
parent 7921b6648f
commit 21f0ccb184
7 changed files with 528 additions and 0 deletions
+4
View File
@@ -40,6 +40,10 @@ export interface SessionEventRecord {
subagentEventKind?: SubagentEventKind;
customAgentName?: string;
customAgentDisplayName?: string;
customAgentDescription?: string;
subagentError?: string;
subagentToolCallId?: string;
subagentModel?: string;
// Skill invoked fields
skillName?: string;