diff --git a/src/renderer/components/chat/ChatHistory.tsx b/src/renderer/components/chat/ChatHistory.tsx index 45929946..57ffdf99 100644 --- a/src/renderer/components/chat/ChatHistory.tsx +++ b/src/renderer/components/chat/ChatHistory.tsx @@ -102,6 +102,14 @@ export const ChatHistory = ({ tabId }: ChatHistoryProps): JSX.Element => { sessionDetail, } = tabData; + // Compute combined subagent cost from process metrics + const subagentCostUsd = useMemo(() => { + const processes = sessionDetail?.processes; + if (!processes || processes.length === 0) return undefined; + const total = processes.reduce((sum, p) => sum + (p.metrics.costUsd ?? 0), 0); + return total > 0 ? total : undefined; + }, [sessionDetail?.processes]); + // State for Context button hover (local state OK - doesn't need per-tab isolation) const [isContextButtonHovered, setIsContextButtonHovered] = useState(false); @@ -874,6 +882,7 @@ export const ChatHistory = ({ tabId }: ChatHistoryProps): JSX.Element => { onNavigateToUserGroup={handleNavigateToUserGroup} totalSessionTokens={lastAiGroupTotalTokens} sessionMetrics={sessionDetail?.metrics} + subagentCostUsd={subagentCostUsd} onViewReport={effectiveTabId ? () => openSessionReport(effectiveTabId) : undefined} phaseInfo={sessionPhaseInfo ?? undefined} selectedPhase={selectedContextPhase} diff --git a/src/renderer/components/chat/SessionContextPanel/components/SessionContextHeader.tsx b/src/renderer/components/chat/SessionContextPanel/components/SessionContextHeader.tsx index 0c5cd0dd..0879452a 100644 --- a/src/renderer/components/chat/SessionContextPanel/components/SessionContextHeader.tsx +++ b/src/renderer/components/chat/SessionContextPanel/components/SessionContextHeader.tsx @@ -28,6 +28,7 @@ interface SessionContextHeaderProps { totalTokens: number; totalSessionTokens?: number; sessionMetrics?: SessionMetrics; + subagentCostUsd?: number; onClose?: () => void; onViewReport?: () => void; phaseInfo?: ContextPhaseInfo; @@ -42,6 +43,7 @@ export const SessionContextHeader = ({ totalTokens, totalSessionTokens, sessionMetrics, + subagentCostUsd, onClose, onViewReport, phaseInfo, @@ -132,24 +134,30 @@ export const SessionContextHeader = ({