Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
3ab5516
Refactor code structure for improved readability and maintainability
osortega Mar 24, 2026
fa98436
Refactor code structure for improved readability and maintainability
osortega Mar 24, 2026
44497f3
Add "Show less" functionality for agent sessions and update related c…
osortega Mar 24, 2026
76dd8d3
Update "Show more" label format for agent sessions
osortega Mar 24, 2026
b0d93e1
Refactor code structure for improved readability and maintainability
osortega Mar 24, 2026
1d1076e
Add prototype images for group hover and no-hover states
osortega Mar 24, 2026
e5e43a4
Enhance agent sessions viewer with new styling and options for sessio…
osortega Mar 24, 2026
6e8eabe
Refactor show-more/show-less styles for improved visibility and hover…
osortega Mar 24, 2026
e2226f7
Refactor agent session show-more styles for improved animation and vi…
osortega Mar 25, 2026
07489f9
Add compact show-more option for improved session viewer layout
osortega Mar 25, 2026
ac75cb2
Refactor agent sessions viewer to simplify show-more functionality an…
osortega Mar 25, 2026
61a2511
Refactor agent sessions viewer to support compact show-more option an…
osortega Mar 25, 2026
ea88714
Refactor agent sessions viewer to remove compact show-more option and…
osortega Mar 25, 2026
4e34dc0
Refactor agent sessions viewer to implement compact show-more option …
osortega Mar 25, 2026
21739da
Refactor agent sessions viewer styles to improve show-more functional…
osortega Mar 25, 2026
13b519d
Refactor agent sessions viewer to enhance show-more functionality and…
osortega Mar 25, 2026
f321872
Refactor agent sessions viewer to implement compact show-more functio…
osortega Mar 25, 2026
1eeb413
Refactor agent sessions viewer to pass compact show-more option to li…
osortega Mar 25, 2026
cf9bfd8
Fix show-more height adjustment for compact option in AgentSessionsLi…
osortega Mar 25, 2026
219c7f6
Refactor show-more height change events to include height parameter i…
osortega Mar 25, 2026
f652161
Enhance compact mode functionality for show-more/show-less items with…
osortega Mar 25, 2026
934a7b4
Improve section label determination for agent session hover interactions
osortega Mar 25, 2026
8a841f4
Add debug logging for show-more interactions in agent sessions control
osortega Mar 25, 2026
aad823e
Improve show-more/show-less section retrieval by traversing tree nodes
osortega Mar 25, 2026
f78e576
Refactor show-more section retrieval to traverse root node children f…
osortega Mar 25, 2026
10c0065
Enhance compact mode for show-more items by updating class states on …
osortega Mar 25, 2026
0d3b896
Refactor show-more section handling to improve label mapping and expa…
osortega Mar 25, 2026
0fe94be
Add pull request status icons to agent session renderer
osortega Mar 25, 2026
adfcb01
Add foreground colors for open and merged pull request indicators in …
osortega Mar 25, 2026
53ffddc
Refactor show-more and show-less renderers to remove compact mode han…
osortega Mar 25, 2026
25d01d9
Refactor show-more section styles for improved visibility control and…
osortega Mar 25, 2026
9191c69
Refactor show-more section comments and structure for clarity and imp…
osortega Mar 25, 2026
0687599
Add transition effect for agent session show-more rows
osortega Mar 25, 2026
c7ab91e
Implement height animation for show-more/collapse functionality in ag…
osortega Mar 25, 2026
390041d
Improve hover behavior in agent sessions control to prevent unintende…
osortega Mar 25, 2026
bc23ca3
Remove unused time label styles and transitions in agent session items
osortega Mar 25, 2026
bdfe93b
Enhance PR status icon detection by checking badge text for indicators
osortega Mar 25, 2026
274a1ac
refactor: remove unused log files and optimize agent sessions rendering
osortega Mar 25, 2026
fda9afb
refactor: consolidate agent session styles and improve PR status icon…
osortega Mar 25, 2026
8953494
Improve hover behavior in agent sessions control to delay collapse on…
osortega Mar 25, 2026
d006b5f
refactor: simplify collapse behavior in agent sessions control by rem…
osortega Mar 25, 2026
31880b9
fix: ensure data-section-label is removed when repository name is not…
osortega Mar 25, 2026
3f5842a
fix: remove unnecessary data-section-label removal logic in AgentSess…
osortega Mar 25, 2026
29f9bf2
fix: reset expanded elements on tree model changes to prevent invalid…
osortega Mar 25, 2026
23694a8
fix: improve handling of expanded elements on tree model changes to m…
osortega Mar 25, 2026
fade5c6
fix: prevent re-entrancy during tree model updates in AgentSessionsCo…
osortega Mar 25, 2026
2a7d6f4
fix: address PR review feedback for sessions list redesign
osortega Mar 25, 2026
b8fc726
fix: remove empty sessionsViewer.css that was causing CI hygiene failure
osortega Mar 25, 2026
99ab288
Merge pull request #304637 from microsoft/copilot/foreign-takin
osortega Mar 25, 2026
0b84fd1
Add 'Mark as Done' button for session archiving (#304473)
mrleemurray Mar 25, 2026
ed2356f
sessions - focus app when launching from protocol link (#304682)
bpasero Mar 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/vs/code/electron-main/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -916,6 +916,7 @@ export class CodeApplication extends Disposable {
// Ensure sessions window is open to receive the URL
const windows = await windowsMainService.openSessionsWindow({ context: OpenContext.LINK, contextWindowId: undefined });
const window = windows.at(0);
window?.focus();
await window?.ready();

// Return false to let subsequent handlers (e.g., URLHandlerChannelClient) forward the URL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
flex-wrap: nowrap;
align-items: center;
justify-content: flex-start;
padding: 0 16px;
padding-left: 16px;
height: 22px;
border-radius: 4px;
-webkit-app-region: no-drag;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,3 +96,44 @@
overflow: hidden;
}
}

/* Sessions-app-specific overrides for the agent sessions viewer.
* These styles only apply within the agent-sessions-workbench context. */

.agent-sessions-workbench {

/*
* Show-more / show-less: content always rendered, list row height
* controls visibility (1px = clipped, 26px = visible).
* Height animation is driven by JS (requestAnimationFrame) since
* the virtualized list uses absolute positioning.
*/
.agent-session-show-more {
justify-content: center;
align-items: center;
padding: 0 6px;
font-size: 11px;
color: var(--vscode-descriptionForeground);
min-height: 26px;

.agent-session-show-more-label {
padding: 0 6px;
flex-shrink: 0;
white-space: nowrap;
}

/* Lines on both sides of the text as flex items */
&::before,
&::after {
content: '';
flex: 1;
height: 1px;
background: var(--vscode-widget-border, var(--vscode-contrastBorder));
}
}

/* Brighter text on direct hover */
.monaco-list-row:hover .agent-session-show-more:hover {
color: var(--vscode-foreground);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,18 @@ import { registerWorkbenchContribution2, WorkbenchPhase } from '../../../../work
import { InstantiationType, registerSingleton } from '../../../../platform/instantiation/common/extensions.js';
import { SessionsTitleBarContribution } from './sessionsTitleBarWidget.js';
import { AgenticSessionsViewPane, SessionsViewId } from './sessionsViewPane.js';
import { SessionsManagementService, ISessionsManagementService } from './sessionsManagementService.js';
import { SessionsManagementService, ISessionsManagementService, IsNewChatSessionContext } from './sessionsManagementService.js';
import { Action2, MenuId, registerAction2 } from '../../../../platform/actions/common/actions.js';
import { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';
import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
import { AgentSessionSection, IAgentSessionSection, isAgentSessionSection } from '../../../../workbench/contrib/chat/browser/agentSessions/agentSessionsModel.js';
import { ChatContextKeys } from '../../../../workbench/contrib/chat/common/actions/chatContextKeys.js';
import { IAgentSessionsService } from '../../../../workbench/contrib/chat/browser/agentSessions/agentSessionsService.js';
import { IViewsService } from '../../../../workbench/services/views/common/viewsService.js';
import { IsAuxiliaryWindowContext } from '../../../../workbench/common/contextkeys.js';
import { SessionsWelcomeVisibleContext } from '../../../common/contextkeys.js';
import { NewChatViewPane, SessionsViewId as NewChatViewId } from '../../chat/browser/newChatViewPane.js';
import { Menus } from '../../../browser/menus.js';

const agentSessionsViewIcon = registerIcon('chat-sessions-icon', Codicon.commentDiscussionSparkle, localize('agentSessionsViewIcon', 'Icon for Agent Sessions View'));
const AGENT_SESSIONS_VIEW_TITLE = localize2('agentSessions.view.label', "Sessions");
Expand Down Expand Up @@ -55,6 +60,43 @@ registerWorkbenchContribution2(SessionsTitleBarContribution.ID, SessionsTitleBar

registerSingleton(ISessionsManagementService, SessionsManagementService, InstantiationType.Delayed);

registerAction2(class MarkSessionAsDoneAction extends Action2 {

constructor() {
super({
id: 'agentSession.markAsDone',
title: localize2('markAsDone', "Mark as Done"),
icon: Codicon.check,
menu: [{
id: Menus.CommandCenter,
order: 102,
when: ContextKeyExpr.and(
IsAuxiliaryWindowContext.negate(),
SessionsWelcomeVisibleContext.negate(),
IsNewChatSessionContext.negate()
)
}]
});
}

async run(accessor: ServicesAccessor): Promise<void> {
const sessionsManagementService = accessor.get(ISessionsManagementService);
const agentSessionsService = accessor.get(IAgentSessionsService);

const activeSession = sessionsManagementService.getActiveSession();
if (!activeSession || activeSession.isUntitled) {
return;
}

const agentSession = agentSessionsService.getSession(activeSession.resource);
if (!agentSession || agentSession.isArchived()) {
return;
}

agentSession.setArchived(true);
}
});

registerAction2(class NewSessionForRepositoryAction extends Action2 {

constructor() {
Expand Down
4 changes: 4 additions & 0 deletions src/vs/sessions/contrib/sessions/browser/sessionsViewPane.ts
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,10 @@ export class AgenticSessionsViewPane extends ViewPane {
disableHover: true,
enableApprovalRow: true,
repositoryGroupLimit: AgentSessionsDataSource.REPOSITORY_GROUP_LIMIT,
hideSectionCount: true,
hideSessionBadge: true,
useStatusOnlyIcons: true,
compactShowMore: true,
getHoverPosition: () => this.getSessionHoverPosition(),
trackActiveEditorSession: () => true,
collapseOlderSections: () => true,
Expand Down
Loading
Loading