@@ -148,8 +148,41 @@ class LocalChatSessionsProvider extends Disposable implements IChatSessionItemPr
148148 'viewId' in widget . viewContext &&
149149 widget . viewContext . viewId === LocalChatSessionsProvider . CHAT_WIDGET_VIEW_ID ) {
150150 this . _onDidChange . fire ( ) ;
151+
152+ // Listen for view model changes on this widget
153+ this . _register ( widget . onDidChangeViewModel ( ( ) => {
154+ this . _onDidChange . fire ( ) ;
155+ } ) ) ;
156+
157+ // Listen for title changes on the current model
158+ this . registerModelTitleListener ( widget ) ;
151159 }
152160 } ) ) ;
161+
162+ // Check for existing chat widgets and register listeners
163+ const existingWidgets = this . chatWidgetService . getWidgetsByLocations ( ChatAgentLocation . Panel )
164+ . filter ( widget => typeof widget . viewContext === 'object' && 'viewId' in widget . viewContext && widget . viewContext . viewId === LocalChatSessionsProvider . CHAT_WIDGET_VIEW_ID ) ;
165+
166+ existingWidgets . forEach ( widget => {
167+ this . _register ( widget . onDidChangeViewModel ( ( ) => {
168+ this . _onDidChange . fire ( ) ;
169+ this . registerModelTitleListener ( widget ) ;
170+ } ) ) ;
171+
172+ // Register title listener for existing widget
173+ this . registerModelTitleListener ( widget ) ;
174+ } ) ;
175+ }
176+
177+ private registerModelTitleListener ( widget : IChatWidget ) : void {
178+ const model = widget . viewModel ?. model ;
179+ if ( model ) {
180+ // Listen for model changes to detect title changes
181+ // Since setCustomTitle doesn't fire an event, we listen to general model changes
182+ this . _register ( model . onDidChange ( ( ) => {
183+ this . _onDidChange . fire ( ) ;
184+ } ) ) ;
185+ }
153186 }
154187
155188 private initializeCurrentEditorSet ( ) : void {
0 commit comments