From 391c34c7af0369250101c46b8a109e39f3d933bd Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 3 Mar 2026 12:11:33 +0100 Subject: [PATCH 1/6] fix - add title rendering for session hover --- .../contrib/chat/browser/agentSessions/agentSessionsViewer.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts b/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts index eb1748803f0385..5908693008f7cc 100644 --- a/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts +++ b/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts @@ -364,6 +364,7 @@ export class AgentSessionRenderer extends Disposable implements ICompressibleTre private renderHover(session: ITreeNode, template: IAgentSessionItemTemplate): void { if (this.options.disableHover) { + template.element.title = renderAsPlaintext(new MarkdownString(session.element.label)); return; } From 2d06f9fd2551d5fd367da73651295dfad90dc49e Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 3 Mar 2026 12:15:57 +0100 Subject: [PATCH 2/6] fix - update hover title rendering logic --- .../contrib/chat/browser/agentSessions/agentSessionsViewer.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts b/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts index 5908693008f7cc..8f0e2e6c9c720a 100644 --- a/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts +++ b/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts @@ -364,7 +364,8 @@ export class AgentSessionRenderer extends Disposable implements ICompressibleTre private renderHover(session: ITreeNode, template: IAgentSessionItemTemplate): void { if (this.options.disableHover) { - template.element.title = renderAsPlaintext(new MarkdownString(session.element.label)); + const title = renderAsPlaintext(new MarkdownString(session.element.label)); + template.elementDisposable.add(this.hoverService.setupDelayedHover(template.element, { content: title, position: { hoverPosition: this.options.getHoverPosition() } })); return; } From 6415775c23568bc9d5c5c01b0a77f85fd7ba769e Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 3 Mar 2026 12:18:26 +0100 Subject: [PATCH 3/6] fix - update hover persistence for session rendering --- .../contrib/chat/browser/agentSessions/agentSessionsViewer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts b/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts index 8f0e2e6c9c720a..f3629a4d7157ee 100644 --- a/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts +++ b/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts @@ -365,7 +365,7 @@ export class AgentSessionRenderer extends Disposable implements ICompressibleTre private renderHover(session: ITreeNode, template: IAgentSessionItemTemplate): void { if (this.options.disableHover) { const title = renderAsPlaintext(new MarkdownString(session.element.label)); - template.elementDisposable.add(this.hoverService.setupDelayedHover(template.element, { content: title, position: { hoverPosition: this.options.getHoverPosition() } })); + template.elementDisposable.add(this.hoverService.setupDelayedHover(template.element, { content: title, persistence: { sticky: true }, position: { hoverPosition: this.options.getHoverPosition() } })); return; } From 15cc32d23203985b4add3099e9166049ac1d44b6 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 3 Mar 2026 12:22:41 +0100 Subject: [PATCH 4/6] fix - update hover setup for agent sessions --- .../contrib/chat/browser/agentSessions/agentSessionsViewer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts b/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts index f3629a4d7157ee..d8badfdd58ff8b 100644 --- a/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts +++ b/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts @@ -365,7 +365,7 @@ export class AgentSessionRenderer extends Disposable implements ICompressibleTre private renderHover(session: ITreeNode, template: IAgentSessionItemTemplate): void { if (this.options.disableHover) { const title = renderAsPlaintext(new MarkdownString(session.element.label)); - template.elementDisposable.add(this.hoverService.setupDelayedHover(template.element, { content: title, persistence: { sticky: true }, position: { hoverPosition: this.options.getHoverPosition() } })); + template.elementDisposable.add(this.hoverService.setupDelayedHover(template.element, { content: title, position: { hoverPosition: this.options.getHoverPosition() } }, { groupId: 'agent.sessions' })); return; } From b4e4fb1e3e93b3876175efc2f2da0dd953ced7b4 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 3 Mar 2026 13:50:35 +0100 Subject: [PATCH 5/6] fix - update hover handling in `agentSessions` --- src/vs/sessions/contrib/sessions/browser/sessionsViewPane.ts | 2 +- .../chat/browser/agentSessions/agentSessionsControl.ts | 2 +- .../contrib/chat/browser/agentSessions/agentSessionsViewer.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vs/sessions/contrib/sessions/browser/sessionsViewPane.ts b/src/vs/sessions/contrib/sessions/browser/sessionsViewPane.ts index d4c0b5dbfc7fe5..c2227124c19de0 100644 --- a/src/vs/sessions/contrib/sessions/browser/sessionsViewPane.ts +++ b/src/vs/sessions/contrib/sessions/browser/sessionsViewPane.ts @@ -143,7 +143,7 @@ export class AgenticSessionsViewPane extends ViewPane { source: 'agentSessionsViewPane', filter: sessionsFilter, overrideStyles: this.getLocationBasedColors().listOverrideStyles, - disableHover: true, + useSimpleHover: true, getHoverPosition: () => this.getSessionHoverPosition(), trackActiveEditorSession: () => true, collapseOlderSections: () => true, diff --git a/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.ts b/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.ts index 384baff52d4e37..797ddaf7faae80 100644 --- a/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.ts +++ b/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.ts @@ -40,7 +40,7 @@ export interface IAgentSessionsControlOptions extends IAgentSessionsSorterOption readonly overrideStyles: IStyleOverride; readonly filter: IAgentSessionsFilter; readonly source: string; - readonly disableHover?: boolean; + readonly useSimpleHover?: boolean; getHoverPosition(): HoverPosition; trackActiveEditorSession(): boolean; diff --git a/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts b/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts index d8badfdd58ff8b..14a80a3971fc81 100644 --- a/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts +++ b/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts @@ -76,7 +76,7 @@ interface IAgentSessionItemTemplate { } export interface IAgentSessionRendererOptions { - readonly disableHover?: boolean; + readonly useSimpleHover?: boolean; getHoverPosition(): HoverPosition; } @@ -363,7 +363,7 @@ export class AgentSessionRenderer extends Disposable implements ICompressibleTre } private renderHover(session: ITreeNode, template: IAgentSessionItemTemplate): void { - if (this.options.disableHover) { + if (this.options.useSimpleHover) { const title = renderAsPlaintext(new MarkdownString(session.element.label)); template.elementDisposable.add(this.hoverService.setupDelayedHover(template.element, { content: title, position: { hoverPosition: this.options.getHoverPosition() } }, { groupId: 'agent.sessions' })); return; From 6ed9361c7a53eaf2e1e466161664434a668882bb Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 3 Mar 2026 14:12:25 +0100 Subject: [PATCH 6/6] fix ci --- .../browser/componentFixtures/agentSessionsViewer.fixture.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/test/browser/componentFixtures/agentSessionsViewer.fixture.ts b/src/vs/workbench/test/browser/componentFixtures/agentSessionsViewer.fixture.ts index f88f88719f43f3..90ff4a6f730d36 100644 --- a/src/vs/workbench/test/browser/componentFixtures/agentSessionsViewer.fixture.ts +++ b/src/vs/workbench/test/browser/componentFixtures/agentSessionsViewer.fixture.ts @@ -68,7 +68,7 @@ function wrapAsTreeNode(element: T): ITreeNode { } const rendererOptions: IAgentSessionRendererOptions = { - disableHover: true, + useSimpleHover: true, getHoverPosition: () => HoverPosition.BELOW, };