From f6da384d3f4c3aecbc5c562c9198cd6f44fe034f Mon Sep 17 00:00:00 2001 From: Megan Rogge Date: Fri, 10 Jul 2026 16:16:41 -0400 Subject: [PATCH] Don't let voice-controls init break the new-session picker render (#325346) --- .../sessions/contrib/chat/browser/newChatInput.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/vs/sessions/contrib/chat/browser/newChatInput.ts b/src/vs/sessions/contrib/chat/browser/newChatInput.ts index 19ec49aee26..146bbd06684 100644 --- a/src/vs/sessions/contrib/chat/browser/newChatInput.ts +++ b/src/vs/sessions/contrib/chat/browser/newChatInput.ts @@ -680,12 +680,17 @@ export class NewChatInputWidget extends Disposable implements IHistoryNavigation // Voice controls (mic/stop/settings/disconnect). The hand-built toolbar // can't use the shared `MenuId.ChatExecute`, so a dedicated menu is used. + // Keep the session picker usable when optional voice initialization fails. const voiceContainer = dom.append(toolbar, dom.$('.sessions-chat-voice-toolbar')); - this._register(this.instantiationService.createInstance(NewChatVoiceController, { - toolbarContainer: voiceContainer, - inputContainer: container, - composer: this, - })); + try { + this._register(this.instantiationService.createInstance(NewChatVoiceController, { + toolbarContainer: voiceContainer, + inputContainer: container, + composer: this, + })); + } catch (error) { + this.logService.error('Failed to create new-session voice controls:', error); + } this._loadingSpinner = dom.append(toolbar, dom.$('.sessions-chat-loading-spinner')); const loadingIcon = dom.append(this._loadingSpinner, renderIcon(ThemeIcon.modify(Codicon.loading, 'spin')));