From a505378d79ec915a8bdfae03be6340a653bd23f1 Mon Sep 17 00:00:00 2001 From: Henry Moran Date: Fri, 27 Feb 2026 16:18:04 -0800 Subject: [PATCH] feat(chat): show dynamic subagent type in task tool button (#545) Display the actual subagent type (e.g., 'general', 'build') instead of hardcoded 'subAgent' in the task tool button. Changes 'session' to 'subtask' for consistency. - Add input prop to TaskToolSummary component - Extract subagent_type from task input - Capitalize agent type and update button text format --- .../ui/src/components/chat/message/parts/ToolPart.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/ui/src/components/chat/message/parts/ToolPart.tsx b/packages/ui/src/components/chat/message/parts/ToolPart.tsx index a308ee16..0b006639 100644 --- a/packages/ui/src/components/chat/message/parts/ToolPart.tsx +++ b/packages/ui/src/components/chat/message/parts/ToolPart.tsx @@ -554,7 +554,8 @@ const TaskToolSummary: React.FC<{ output?: string; sessionId?: string; onShowPopup?: (content: ToolPopupContent) => void; -}> = ({ entries, isExpanded, hasPrevTool, hasNextTool, output, sessionId, onShowPopup }) => { + input?: Record; +}> = ({ entries, isExpanded, hasPrevTool, hasNextTool, output, sessionId, onShowPopup, input }) => { const setCurrentSession = useSessionStore((state) => state.setCurrentSession); const displayEntries = React.useMemo(() => { const nonPending = entries.filter((entry) => entry.state?.status !== 'pending'); @@ -574,6 +575,10 @@ const TaskToolSummary: React.FC<{ } }; + const agentType = typeof input?.subagent_type === 'string' + ? input.subagent_type + : 'subagent'; + if (displayEntries.length === 0 && !hasOutput && !sessionId) { return null; } @@ -627,7 +632,7 @@ const TaskToolSummary: React.FC<{ onClick={handleOpenSession} > - Open subAgent session + Open {agentType.charAt(0).toUpperCase() + agentType.slice(1)} subtask )} @@ -1683,6 +1688,7 @@ const ToolPart: React.FC = ({ output={taskOutputString} sessionId={taskSessionId} onShowPopup={onShowPopup} + input={input} /> ) : null}