@@ -148,8 +148,41 @@ class LocalChatSessionsProvider extends Disposable implements IChatSessionItemPr
148
148
'viewId' in widget . viewContext &&
149
149
widget . viewContext . viewId === LocalChatSessionsProvider . CHAT_WIDGET_VIEW_ID ) {
150
150
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 ) ;
151
159
}
152
160
} ) ) ;
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
+ }
153
186
}
154
187
155
188
private initializeCurrentEditorSet ( ) : void {
0 commit comments