Skip to content

Commit 8c4a711

Browse files
authored
Fix for completing response if needed (#282336)
1 parent d3f0c00 commit 8c4a711

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/vs/workbench/contrib/chat/common/chatModel.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,6 +1077,12 @@ export class ChatResponseModel extends Disposable implements IChatResponseModel
10771077
this._onDidChange.fire({ reason: 'completedRequest' });
10781078
}
10791079

1080+
completeResponseIfNeeded() {
1081+
if (!this.isComplete) {
1082+
this.complete();
1083+
}
1084+
}
1085+
10801086
cancel(): void {
10811087
this._modelState.set({ value: ResponseModelState.Cancelled, completedAt: Date.now() }, undefined);
10821088
this._onDidChange.fire({ reason: 'completedRequest' });

src/vs/workbench/contrib/chat/common/chatServiceImpl.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -656,7 +656,7 @@ export class ChatService extends Disposable implements IChatService {
656656
for (const message of providedSession.history) {
657657
if (message.type === 'request') {
658658
if (lastRequest) {
659-
lastRequest.response?.complete();
659+
lastRequest.response?.completeResponseIfNeeded();
660660
}
661661

662662
const requestText = message.prompt;
@@ -698,7 +698,7 @@ export class ChatService extends Disposable implements IChatService {
698698
}
699699

700700
if (providedSession.isCompleteObs?.get()) {
701-
lastRequest?.response?.complete();
701+
lastRequest?.response?.completeResponseIfNeeded();
702702
}
703703

704704
if (providedSession.progressObs && lastRequest && providedSession.interruptActiveResponseCallback) {
@@ -737,15 +737,15 @@ export class ChatService extends Disposable implements IChatService {
737737

738738
// Handle completion
739739
if (isComplete) {
740-
lastRequest.response?.complete();
740+
lastRequest.response?.completeResponseIfNeeded();
741741
cancellationListener.clear();
742742
}
743743
}));
744744
} else {
745745
if (lastRequest && model.editingSession) {
746746
// wait for timeline to load so that a 'changes' part is added when the response completes
747747
await chatEditingSessionIsReady(model.editingSession);
748-
lastRequest.response?.complete();
748+
lastRequest.response?.completeResponseIfNeeded();
749749
}
750750
}
751751

0 commit comments

Comments
 (0)