Skip to content

Commit 9865271

Browse files
authored
Fix for constantly disposing copilot status dashboard (microsoft#264804)
1 parent 16ce893 commit 9865271

1 file changed

Lines changed: 5 additions & 10 deletions

File tree

src/vs/workbench/contrib/chat/browser/chatStatus.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,10 @@ export class ChatStatusBarEntry extends Disposable implements IWorkbenchContribu
134134
if (!sentiment.hidden) {
135135
const props = this.getEntryProps();
136136
if (this.entry) {
137-
this.entry.dispose();
137+
this.entry.update(props);
138+
} else {
139+
this.entry = this.statusbarService.addEntry(props, 'chat.statusBarEntry', StatusbarAlignment.RIGHT, { location: { id: 'status.editor.mode', priority: 100.1 }, alignment: StatusbarAlignment.RIGHT });
138140
}
139-
this.entry = this.statusbarService.addEntry(props, 'chat.statusBarEntry', StatusbarAlignment.RIGHT, { location: { id: 'status.editor.mode', priority: 100.1 }, alignment: StatusbarAlignment.RIGHT });
140141
} else {
141142
this.entry?.dispose();
142143
this.entry = undefined;
@@ -177,7 +178,6 @@ export class ChatStatusBarEntry extends Disposable implements IWorkbenchContribu
177178
let text = '$(copilot)';
178179
let ariaLabel = localize('chatStatus', "Copilot Status");
179180
let kind: StatusbarEntryKind | undefined;
180-
let showProgress: boolean | 'loading' | 'syncing' | undefined;
181181

182182
// Check if there are any chat sessions in progress
183183
const inProgress = this.chatSessionsService.getInProgress();
@@ -249,7 +249,7 @@ export class ChatStatusBarEntry extends Disposable implements IWorkbenchContribu
249249

250250
// Show progress indicator when chat sessions are in progress
251251
if (hasInProgressSessions) {
252-
showProgress = 'loading';
252+
text = `$(loading~spin)\u00A0${text}`;
253253
// Update aria label to include progress information
254254
const sessionCount = inProgress.reduce((total, item) => total + item.count, 0);
255255
ariaLabel = `${ariaLabel}, ${sessionCount} chat session${sessionCount === 1 ? '' : 's'} in progress`;
@@ -265,12 +265,7 @@ export class ChatStatusBarEntry extends Disposable implements IWorkbenchContribu
265265
tooltip: { element: (token: CancellationToken) => this.dashboard.value.show(token) }
266266
};
267267

268-
// Only add showProgress if we have sessions in progress
269-
const result = hasInProgressSessions
270-
? { ...baseResult, showProgress }
271-
: baseResult;
272-
273-
return result;
268+
return baseResult;
274269
}
275270

276271
override dispose(): void {

0 commit comments

Comments
 (0)