@@ -13,7 +13,6 @@ import { IListElementRenderDetails, IListVirtualDelegate } from '../../../../bas
1313import { ITreeNode , ITreeRenderer } from '../../../../base/browser/ui/tree/tree.js' ;
1414import { IAction } from '../../../../base/common/actions.js' ;
1515import { coalesce , distinct } from '../../../../base/common/arrays.js' ;
16- import { findLast } from '../../../../base/common/arraysFind.js' ;
1716import { Codicon } from '../../../../base/common/codicons.js' ;
1817import { toErrorMessage } from '../../../../base/common/errorMessage.js' ;
1918import { Emitter , Event } from '../../../../base/common/event.js' ;
@@ -50,7 +49,7 @@ import { ChatContextKeys } from '../common/chatContextKeys.js';
5049import { IChatTextEditGroup } from '../common/chatModel.js' ;
5150import { chatSubcommandLeader } from '../common/chatParserTypes.js' ;
5251import { ChatAgentVoteDirection , ChatAgentVoteDownReason , ChatErrorLevel , IChatChangesSummary , IChatConfirmation , IChatContentReference , IChatElicitationRequest , IChatExtensionsContent , IChatFollowup , IChatMarkdownContent , IChatPullRequestContent , IChatMultiDiffData , IChatTask , IChatTaskSerialized , IChatToolInvocation , IChatToolInvocationSerialized , IChatTreeData , IChatUndoStop , IChatThinkingPart } from '../common/chatService.js' ;
53- import { IChatChangesSummaryPart , IChatCodeCitations , IChatErrorDetailsPart , IChatReferences , IChatRendererContent , IChatRequestViewModel , IChatResponseViewModel , IChatViewModel , IChatWorkingProgress , isRequestVM , isResponseVM } from '../common/chatViewModel.js' ;
52+ import { IChatChangesSummaryPart , IChatCodeCitations , IChatErrorDetailsPart , IChatReferences , IChatRendererContent , IChatRequestViewModel , IChatResponseViewModel , IChatViewModel , isRequestVM , isResponseVM } from '../common/chatViewModel.js' ;
5453import { getNWords } from '../common/chatWordCounter.js' ;
5554import { CodeBlockModelCollection } from '../common/codeBlockModelCollection.js' ;
5655import { ChatAgentLocation , ChatConfiguration , ChatModeKind } from '../common/constants.js' ;
@@ -66,7 +65,7 @@ import { IChatContentPart, IChatContentPartRenderContext } from './chatContentPa
6665import { ChatErrorConfirmationContentPart } from './chatContentParts/chatErrorConfirmationPart.js' ;
6766import { ChatExtensionsContentPart } from './chatContentParts/chatExtensionsContentPart.js' ;
6867import { ChatMarkdownContentPart , EditorPool } from './chatContentParts/chatMarkdownContentPart.js' ;
69- import { ChatProgressContentPart , ChatWorkingProgressContentPart } from './chatContentParts/chatProgressContentPart.js' ;
68+ import { ChatProgressContentPart } from './chatContentParts/chatProgressContentPart.js' ;
7069import { ChatQuotaExceededPart } from './chatContentParts/chatQuotaExceededPart.js' ;
7170import { ChatCollapsibleListContentPart , ChatUsedReferencesListContentPart , CollapsibleListPool } from './chatContentParts/chatReferencesContentPart.js' ;
7271import { ChatTaskContentPart } from './chatContentParts/chatTaskContentPart.js' ;
@@ -254,7 +253,7 @@ export class ChatListItemRenderer extends Disposable implements ITreeRenderer<Ch
254253 const minAfterComplete = 80 ;
255254
256255 const rate = element . contentUpdateTimings ?. impliedWordLoadRate ;
257- if ( element . isComplete || element . isPaused . get ( ) ) {
256+ if ( element . isComplete ) {
258257 if ( typeof rate === 'number' ) {
259258 return clamp ( rate , minAfterComplete , Rate . Max ) ;
260259 } else {
@@ -540,7 +539,7 @@ export class ChatListItemRenderer extends Disposable implements ITreeRenderer<Ch
540539 templateData . rowContainer . classList . toggle ( 'interactive-request' , isRequestVM ( element ) ) ;
541540 templateData . rowContainer . classList . toggle ( 'interactive-response' , isResponseVM ( element ) ) ;
542541 const progressMessageAtBottomOfResponse = checkModeOption ( this . delegate . currentChatMode ( ) , this . rendererOptions . progressMessageAtBottomOfResponse ) ;
543- templateData . rowContainer . classList . toggle ( 'show-detail-progress' , isResponseVM ( element ) && ! element . isComplete && ! element . progressMessages . length && ! element . model . isPaused . get ( ) && ! progressMessageAtBottomOfResponse ) ;
542+ templateData . rowContainer . classList . toggle ( 'show-detail-progress' , isResponseVM ( element ) && ! element . isComplete && ! element . progressMessages . length && ! progressMessageAtBottomOfResponse ) ;
544543 if ( ! this . rendererOptions . noHeader ) {
545544 this . renderAvatar ( element , templateData ) ;
546545 }
@@ -643,11 +642,7 @@ export class ChatListItemRenderer extends Disposable implements ITreeRenderer<Ch
643642 } , $ ( 'span.agentOrSlashCommandDetected' ) ) ) ;
644643
645644 } else if ( this . rendererOptions . renderStyle !== 'minimal' && ! element . isComplete && ! checkModeOption ( this . delegate . currentChatMode ( ) , this . rendererOptions . progressMessageAtBottomOfResponse ) ) {
646- if ( element . model . isPaused . get ( ) ) {
647- templateData . detail . textContent = localize ( 'paused' , "Paused" ) ;
648- } else {
649- templateData . detail . textContent = localize ( 'working' , "Working" ) ;
650- }
645+ templateData . detail . textContent = localize ( 'working' , "Working" ) ;
651646 }
652647 }
653648
@@ -1038,10 +1033,6 @@ export class ChatListItemRenderer extends Disposable implements ITreeRenderer<Ch
10381033 element . renderData = { lastRenderTime : Date . now ( ) , renderedWordCount : newRenderedWordCount , renderedParts : partsToRender } ;
10391034 }
10401035
1041- if ( this . shouldShowWorkingProgress ( element , partsToRender ) ) {
1042- const isPaused = element . model . isPaused . get ( ) ;
1043- partsToRender . push ( { kind : 'working' , isPaused, setPaused : p => element . model . setPaused ( p ) } ) ;
1044- }
10451036 const fileChangesSummaryPart = this . getChatFileChangesSummaryPart ( element ) ;
10461037 if ( fileChangesSummaryPart ) {
10471038 partsToRender . push ( fileChangesSummaryPart ) ;
@@ -1054,30 +1045,6 @@ export class ChatListItemRenderer extends Disposable implements ITreeRenderer<Ch
10541045 return element . isComplete && this . configService . getValue < boolean > ( 'chat.checkpoints.showFileChanges' ) ;
10551046 }
10561047
1057- private shouldShowWorkingProgress ( element : IChatResponseViewModel , partsToRender : IChatRendererContent [ ] ) : boolean {
1058- if ( element . agentOrSlashCommandDetected || this . rendererOptions . renderStyle === 'minimal' || element . isComplete || ! checkModeOption ( this . delegate . currentChatMode ( ) , this . rendererOptions . progressMessageAtBottomOfResponse ) ) {
1059- return false ;
1060- }
1061-
1062- if ( element . model . isPaused . get ( ) ) {
1063- return true ;
1064- }
1065-
1066- // Show if no content, only "used references", ends with a complete tool call, or ends with complete text edits and there is no incomplete tool call (edits are still being applied some time after they are all generated)
1067- const lastPart = findLast ( partsToRender , part => part . kind !== 'markdownContent' || part . content . value . trim ( ) . length > 0 ) ;
1068- if (
1069- ! lastPart ||
1070- lastPart . kind === 'references' ||
1071- ( lastPart . kind === 'toolInvocation' && ( lastPart . isComplete || lastPart . presentation === 'hidden' ) ) ||
1072- ( ( lastPart . kind === 'textEditGroup' || lastPart . kind === 'notebookEditGroup' ) && lastPart . done && ! partsToRender . some ( part => part . kind === 'toolInvocation' && ! part . isComplete ) ) ||
1073- ( lastPart . kind === 'progressTask' && lastPart . deferred . isSettled ) ||
1074- lastPart . kind === 'prepareToolInvocation'
1075- ) {
1076- return true ;
1077- }
1078-
1079- return false ;
1080- }
10811048
10821049 private getDataForProgressiveRender ( element : IChatResponseViewModel ) {
10831050 const renderData = element . renderData ?? { lastRenderTime : 0 , renderedWordCount : 0 } ;
@@ -1142,8 +1109,6 @@ export class ChatListItemRenderer extends Disposable implements ITreeRenderer<Ch
11421109 return this . renderExtensionsContent ( content , context , templateData ) ;
11431110 } else if ( content . kind === 'pullRequest' ) {
11441111 return this . renderPullRequestContent ( content , context , templateData ) ;
1145- } else if ( content . kind === 'working' ) {
1146- return this . renderWorkingProgress ( content , context ) ;
11471112 } else if ( content . kind === 'undoStop' ) {
11481113 return this . renderUndoStop ( content ) ;
11491114 } else if ( content . kind === 'errorDetails' ) {
@@ -1333,9 +1298,6 @@ export class ChatListItemRenderer extends Disposable implements ITreeRenderer<Ch
13331298 return taskPart ;
13341299 }
13351300
1336- private renderWorkingProgress ( workingProgress : IChatWorkingProgress , context : IChatContentPartRenderContext ) : IChatContentPart | undefined {
1337- return this . instantiationService . createInstance ( ChatWorkingProgressContentPart , workingProgress , this . renderer , context ) ;
1338- }
13391301
13401302 private renderConfirmation ( context : IChatContentPartRenderContext , confirmation : IChatConfirmation , templateData : IChatListItemTemplate ) : IChatContentPart {
13411303 const part = this . instantiationService . createInstance ( ChatConfirmationContentPart , confirmation , context ) ;
0 commit comments