From 30f792dcd9955b92be1f0e4c5d7fc87584558147 Mon Sep 17 00:00:00 2001 From: Roo Code Date: Wed, 27 Aug 2025 00:23:42 +0000 Subject: [PATCH] fix: display current LLM model in task header UI - Added model display in both collapsed and expanded task header views - Shows model name next to token count in collapsed view - Added dedicated Model row in expanded task details table - Added localization support for "Model" label in chat.json Fixes #7438 --- webview-ui/src/components/chat/TaskHeader.tsx | 108 +++++++++++------- webview-ui/src/i18n/locales/en/chat.json | 1 + 2 files changed, 66 insertions(+), 43 deletions(-) diff --git a/webview-ui/src/components/chat/TaskHeader.tsx b/webview-ui/src/components/chat/TaskHeader.tsx index 41826bc048..d9e640aafa 100644 --- a/webview-ui/src/components/chat/TaskHeader.tsx +++ b/webview-ui/src/components/chat/TaskHeader.tsx @@ -120,51 +120,61 @@ const TaskHeader = ({ - {!isTaskExpanded && contextWindow > 0 && ( + {!isTaskExpanded && (
e.stopPropagation()}> - -
- {t("chat:tokenProgress.tokensUsed", { - used: formatLargeNumber(contextTokens || 0), - total: formatLargeNumber(contextWindow), - })} -
- {(() => { - const maxTokens = model - ? getModelMaxOutputTokens({ modelId, model, settings: apiConfiguration }) - : 0 - const reservedForOutput = maxTokens || 0 - const availableSpace = contextWindow - (contextTokens || 0) - reservedForOutput + {/* Model display */} + {modelId && {modelId}} + {/* Token progress */} + {contextWindow > 0 && ( + +
+ {t("chat:tokenProgress.tokensUsed", { + used: formatLargeNumber(contextTokens || 0), + total: formatLargeNumber(contextWindow), + })} +
+ {(() => { + const maxTokens = model + ? getModelMaxOutputTokens({ + modelId, + model, + settings: apiConfiguration, + }) + : 0 + const reservedForOutput = maxTokens || 0 + const availableSpace = + contextWindow - (contextTokens || 0) - reservedForOutput - return ( - <> - {reservedForOutput > 0 && ( -
- {t("chat:tokenProgress.reservedForResponse", { - amount: formatLargeNumber(reservedForOutput), - })} -
- )} - {availableSpace > 0 && ( -
- {t("chat:tokenProgress.availableSpace", { - amount: formatLargeNumber(availableSpace), - })} -
- )} - - ) - })()} -
- } - side="top" - sideOffset={8}> - - {formatLargeNumber(contextTokens || 0)} / {formatLargeNumber(contextWindow)} - - + return ( + <> + {reservedForOutput > 0 && ( +
+ {t("chat:tokenProgress.reservedForResponse", { + amount: formatLargeNumber(reservedForOutput), + })} +
+ )} + {availableSpace > 0 && ( +
+ {t("chat:tokenProgress.availableSpace", { + amount: formatLargeNumber(availableSpace), + })} +
+ )} + + ) + })()} + + } + side="top" + sideOffset={8}> + + {formatLargeNumber(contextTokens || 0)} / {formatLargeNumber(contextWindow)} + + + )} {!!totalCost && ${totalCost.toFixed(2)}} )} @@ -190,6 +200,18 @@ const TaskHeader = ({
+ {/* Model row */} + {modelId && ( + + + + + )} + {contextWindow > 0 && (
+ {t("chat:task.model")} + + {modelId} +