diff --git a/packages/ui/src/components/chat/MessageList.tsx b/packages/ui/src/components/chat/MessageList.tsx
index 56bf01de..5a12b3a0 100644
--- a/packages/ui/src/components/chat/MessageList.tsx
+++ b/packages/ui/src/components/chat/MessageList.tsx
@@ -700,6 +700,7 @@ const TurnBlock = React.memo(({
const isFirstAssistant = assistantIndex === 0;
const isLastAssistant = assistantIndex === visibleAssistantMessages.length - 1;
const isActivityOwner = Boolean(activityOwnerMessageId) && message.info.id === activityOwnerMessageId;
+ const hasAnchoredActivitySegment = visibleActivitySegments.some((segment) => segment.anchorMessageId === message.info.id);
const shouldAttachFullTurnContext = chatRenderMode === 'sorted'
? isAssistantMessage
: (isActivityOwner || isFirstAssistant || isLastAssistant);
@@ -722,7 +723,11 @@ const TurnBlock = React.memo(({
activityOwnerMessageId,
isFirstAssistantInTurn: isFirstAssistant,
isLastAssistantInTurn: isLastAssistant,
- isWorking: isLastTurn && sessionIsWorking && message.info.id === streamingAssistantMessageId,
+ isWorking: isLastTurn && sessionIsWorking && (
+ chatRenderMode === 'sorted'
+ ? hasAnchoredActivitySegment
+ : message.info.id === streamingAssistantMessageId
+ ),
hasTools: turn.hasTools,
hasReasoning: turn.hasReasoning,
...(shouldAttachFullTurnContext ? {
@@ -777,6 +782,7 @@ const TurnBlock = React.memo(({
activeStreamingPhase,
visibleAssistantMessages,
visibleAssistantIds,
+ visibleActivitySegments,
activityOwnerMessageId,
shouldAnimateUserMessage,
onUserAnimationConsumed,
diff --git a/packages/ui/src/components/chat/message/parts/ProgressiveGroup.tsx b/packages/ui/src/components/chat/message/parts/ProgressiveGroup.tsx
index 7ec819df..6bfacdb8 100644
--- a/packages/ui/src/components/chat/message/parts/ProgressiveGroup.tsx
+++ b/packages/ui/src/components/chat/message/parts/ProgressiveGroup.tsx
@@ -242,18 +242,19 @@ const getRelativePathFromDirectory = (filePath: string, currentDirectory: string
return normalizedPath;
};
-const renderReadFilePath = (displayPath: string) => {
+const renderReadFilePath = (displayPath: string, animate = true) => {
const lastSlash = displayPath.lastIndexOf('/');
if (lastSlash === -1) {
return (
-
{displayPath}
-
+
);
}
@@ -277,7 +278,13 @@ const renderReadFilePath = (displayPath: string) => {
{displayDir}
/
- {name}
+
+ {name}
+
);
};
@@ -682,7 +689,7 @@ const StaticToolRowInner: React.FC<{
title={entry.offset ? `${entry.displayPath}:${entry.offset}` : entry.displayPath}
>
{showToolFileIcons ? : null}
- {renderReadFilePath(entry.displayPath)}
+ {renderReadFilePath(entry.displayPath, animateTailText)}
))
: null}
diff --git a/packages/ui/src/components/chat/message/parts/ToolPart.tsx b/packages/ui/src/components/chat/message/parts/ToolPart.tsx
index d74f6d70..77274067 100644
--- a/packages/ui/src/components/chat/message/parts/ToolPart.tsx
+++ b/packages/ui/src/components/chat/message/parts/ToolPart.tsx
@@ -1359,20 +1359,20 @@ const renderPathLikeGitChanges = (path: string, grow = true) => {
);
};
-const renderAnimatedPathWithIcon = (path: string, _animate = true, grow = true, showFileIcons = true) => {
- void _animate;
+const renderAnimatedPathWithIcon = (path: string, animate = true, grow = true, showFileIcons = true) => {
const lastSlash = path.lastIndexOf('/');
if (lastSlash === -1) {
return (
{showFileIcons ? : null}
-
{path}
-
+
);
}
@@ -1399,9 +1399,13 @@ const renderAnimatedPathWithIcon = (path: string, _animate = true, grow = true,
{displayDir}
/
-
+
{name}
-
+
);