@@ -50,7 +50,6 @@ import { ChatWidget } from '../../widget/chatWidget.js';
5050import { ChatViewWelcomeController , IViewWelcomeDelegate } from '../../viewsWelcome/chatViewWelcomeController.js' ;
5151import { IWorkbenchLayoutService , LayoutSettings , Position } from '../../../../../services/layout/browser/layoutService.js' ;
5252import { AgentSessionsViewerOrientation , AgentSessionsViewerPosition } from '../../agentSessions/agentSessions.js' ;
53- import { Link } from '../../../../../../platform/opener/browser/link.js' ;
5453import { IProgressService } from '../../../../../../platform/progress/common/progress.js' ;
5554import { ChatViewId } from '../../chat.js' ;
5655import { disposableTimeout } from '../../../../../../base/common/async.js' ;
@@ -63,7 +62,6 @@ import { IChatEntitlementService } from '../../../../../services/chat/common/cha
6362interface IChatViewPaneState extends Partial < IChatModelInputState > {
6463 sessionId ?: string ;
6564
66- sessionsViewerLimited ?: boolean ;
6765 sessionsSidebarWidth ?: number ;
6866}
6967
@@ -123,7 +121,7 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate {
123121 ) {
124122 this . viewState . sessionId = undefined ; // clear persisted session on fresh start
125123 }
126- this . sessionsViewerLimited = this . viewState . sessionsViewerLimited ?? true ;
124+ this . sessionsViewerLimited = this . configurationService . getValue < boolean > ( ChatConfiguration . ChatViewSessionsShowRecentOnly ) ?? false ;
127125 this . sessionsViewerVisible = false ; // will be updated from layout code
128126 this . sessionsViewerSidebarWidth = Math . max ( ChatViewPane . SESSIONS_SIDEBAR_MIN_WIDTH , this . viewState . sessionsSidebarWidth ?? ChatViewPane . SESSIONS_SIDEBAR_DEFAULT_WIDTH ) ;
129127
@@ -214,6 +212,22 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate {
214212 return e . affectsConfiguration ( LayoutSettings . ACTIVITY_BAR_LOCATION ) ;
215213 } ) ( ( ) => this . updateViewPaneClasses ( true ) ) ) ;
216214
215+ // Sessions viewer limited setting changes
216+ this . _register ( Event . filter ( this . configurationService . onDidChangeConfiguration , e => {
217+ return e . affectsConfiguration ( ChatConfiguration . ChatViewSessionsShowRecentOnly ) ;
218+ } ) ( ( ) => {
219+ const oldSessionsViewerLimited = this . sessionsViewerLimited ;
220+ if ( this . sessionsViewerOrientation === AgentSessionsViewerOrientation . SideBySide ) {
221+ this . sessionsViewerLimited = false ; // side by side always shows all
222+ } else {
223+ this . sessionsViewerLimited = this . configurationService . getValue < boolean > ( ChatConfiguration . ChatViewSessionsShowRecentOnly ) ?? false ;
224+ }
225+
226+ if ( oldSessionsViewerLimited !== this . sessionsViewerLimited ) {
227+ this . notifySessionsControlLimitedChanged ( true /* layout */ , true /* update */ ) ;
228+ }
229+ } ) ) ;
230+
217231 // Entitlement changes
218232 this . _register ( this . chatEntitlementService . onDidChangeSentiment ( ( ) => {
219233 this . updateViewPaneClasses ( true ) ;
@@ -305,8 +319,6 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate {
305319 private sessionsTitle : HTMLElement | undefined ;
306320 private sessionsControlContainer : HTMLElement | undefined ;
307321 private sessionsControl : AgentSessionsControl | undefined ;
308- private sessionsLinkContainer : HTMLElement | undefined ;
309- private sessionsLink : Link | undefined ;
310322 private sessionsCount = 0 ;
311323 private sessionsViewerLimited : boolean ;
312324 private sessionsViewerVisible : boolean ;
@@ -401,22 +413,6 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate {
401413
402414 sessionsToolbar . context = sessionsControl ;
403415
404- // Link to Sessions View
405- this . sessionsLinkContainer = append ( sessionsContainer , $ ( '.agent-sessions-link-container' ) ) ;
406- this . sessionsLink = this . _register ( this . instantiationService . createInstance ( Link , this . sessionsLinkContainer , {
407- label : this . sessionsViewerLimited ? localize ( 'showAllSessions' , "Show More" ) : localize ( 'showRecentSessions' , "Show Less" ) ,
408- href : '' ,
409- } , {
410- opener : ( ) => {
411- this . sessionsViewerLimited = ! this . sessionsViewerLimited ;
412- this . viewState . sessionsViewerLimited = this . sessionsViewerLimited ;
413-
414- this . notifySessionsControlLimitedChanged ( true /* layout */ , true /* update */ ) ;
415-
416- sessionsControl . focus ( ) ;
417- }
418- } ) ) ;
419-
420416 // Deal with orientation configuration
421417 this . _register ( Event . runAndSubscribe ( Event . filter ( this . configurationService . onDidChangeConfiguration , e => e . affectsConfiguration ( ChatConfiguration . ChatViewSessionsOrientation ) ) , e => {
422418 const newSessionsViewerOrientationConfiguration = this . configurationService . getValue < 'stacked' | 'sideBySide' | unknown > ( ChatConfiguration . ChatViewSessionsOrientation ) ;
@@ -463,13 +459,6 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate {
463459
464460 this . updateSessionsControlTitle ( ) ;
465461
466- if ( this . sessionsLink ) {
467- this . sessionsLink . link = {
468- label : this . sessionsViewerLimited ? localize ( 'showAllSessions' , "Show More" ) : localize ( 'showRecentSessions' , "Show Less" ) ,
469- href : ''
470- } ;
471- }
472-
473462 const updatePromise = triggerUpdate ? this . sessionsControl ?. update ( ) : undefined ;
474463
475464 if ( triggerLayout ) {
@@ -850,7 +839,7 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate {
850839 let heightReduction = 0 ;
851840 let widthReduction = 0 ;
852841
853- if ( ! this . sessionsContainer || ! this . sessionsControlContainer || ! this . sessionsControl || ! this . viewPaneContainer || ! this . sessionsTitleContainer || ! this . sessionsLinkContainer || ! this . sessionsTitle || ! this . sessionsLink ) {
842+ if ( ! this . sessionsContainer || ! this . sessionsControlContainer || ! this . sessionsControl || ! this . viewPaneContainer || ! this . sessionsTitleContainer || ! this . sessionsTitle ) {
854843 return { heightReduction, widthReduction } ;
855844 }
856845
@@ -894,7 +883,7 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate {
894883 if ( this . sessionsViewerOrientation === AgentSessionsViewerOrientation . SideBySide ) {
895884 this . sessionsViewerLimited = false ; // side by side always shows all
896885 } else {
897- this . sessionsViewerLimited = this . viewState . sessionsViewerLimited ?? true ;
886+ this . sessionsViewerLimited = this . configurationService . getValue < boolean > ( ChatConfiguration . ChatViewSessionsShowRecentOnly ) ?? false ;
898887 }
899888
900889 let updatePromise : Promise < void > ;
@@ -932,7 +921,7 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate {
932921 return { heightReduction : 0 , widthReduction : 0 } ;
933922 }
934923
935- let availableSessionsHeight = height - this . sessionsTitleContainer . offsetHeight - this . sessionsLinkContainer . offsetHeight ;
924+ let availableSessionsHeight = height - this . sessionsTitleContainer . offsetHeight ;
936925 if ( this . sessionsViewerOrientation === AgentSessionsViewerOrientation . Stacked ) {
937926 availableSessionsHeight -= Math . max ( ChatViewPane . MIN_CHAT_WIDGET_HEIGHT , this . _widget ?. input ?. contentHeight ?? 0 ) ;
938927 }
0 commit comments