Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 3 additions & 0 deletions .github/CODENOTIFY
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ src/vs/base/browser/ui/tree/** @joaomoreno @benibenj
src/vs/platform/browserView/** @kycutler @jruales
src/vs/platform/quickinput/** @TylerLeonhardt
src/vs/platform/secrets/** @TylerLeonhardt
src/vs/platform/terminal/common/** @anthonykim1
src/vs/platform/terminal/electron-main/** @anthonykim1
src/vs/platform/terminal/node/** @anthonykim1

Expand All @@ -36,6 +37,8 @@ src/vs/workbench/contrib/chat/browser/chatListRenderer.ts @roblourens
src/vs/workbench/contrib/localization/** @TylerLeonhardt
src/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.ts @TylerLeonhardt
src/vs/workbench/contrib/scm/** @lszomoru
src/vs/workbench/contrib/terminal/** @anthonykim1
src/vs/workbench/contrib/terminalContrib/** @anthonykim1
src/vs/workbench/contrib/update/browser/releaseNotesEditor.ts @alexr00 @joaomoreno
src/vs/workbench/contrib/preferences/** @rzhao271

Expand Down
2 changes: 1 addition & 1 deletion .vscode/notebooks/endgame.github-issues
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$MILESTONE=milestone:\"1.121.0\"\n\n$TPI_CREATION=2026-03-23 // Used to find fixes that need to be verified"
"value": "$MILESTONE=milestone:\"1.122.0\"\n\n$TPI_CREATION=2026-03-23 // Used to find fixes that need to be verified"
},
{
"kind": 1,
Expand Down
2 changes: 1 addition & 1 deletion .vscode/notebooks/my-endgame.github-issues
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$MILESTONE=milestone:\"1.121.0\"\n\n$MINE=assignee:@me"
"value": "$MILESTONE=milestone:\"1.122.0\"\n\n$MINE=assignee:@me"
},
{
"kind": 2,
Expand Down
27 changes: 27 additions & 0 deletions src/vs/sessions/browser/dnd.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

import { URI } from '../../base/common/uri.js';

/**
* Code data transfer mime types specific to the Agents window.
*/
export const SessionsDataTransfers = {
/** Mime type used to identify a session being dragged within the application. */
SESSION: 'application/vnd.code.session',
};

/**
* Identifier used to track a session being dragged via
* {@link LocalSelectionTransfer}. Mirrors the editor's
* {@link DraggedEditorIdentifier} pattern.
*/
export class DraggedSessionIdentifier {

constructor(
readonly sessionId: string,
readonly resource: URI,
) { }
}
12 changes: 6 additions & 6 deletions src/vs/sessions/browser/layoutPolicy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export interface IPartVisibilityDefaults {
readonly sidebar: boolean;
readonly auxiliaryBar: boolean;
readonly panel: boolean;
readonly chatBar: boolean;
readonly sessions: boolean;
readonly editor: boolean;
}

Expand All @@ -26,7 +26,7 @@ export interface IPartSizeDefaults {
readonly sideBarSize: number;
readonly auxiliaryBarSize: number;
readonly panelSize: number;
readonly chatBarWidth: number;
readonly sessionsWidth: number;
}

const PHONE_MAX_WIDTH = 640;
Expand Down Expand Up @@ -118,12 +118,12 @@ export class SessionsLayoutPolicy extends Disposable {
const vc = viewportClass ?? this._viewportClass.get();
switch (vc) {
case 'phone':
return { sidebar: false, auxiliaryBar: false, panel: false, chatBar: true, editor: false };
return { sidebar: false, auxiliaryBar: false, panel: false, sessions: true, editor: false };
case 'tablet':
case 'desktop':
// Tablet and desktop share the standard multi-part workbench defaults.
// A dedicated tablet layout has not been designed yet.
return { sidebar: true, auxiliaryBar: true, panel: false, chatBar: true, editor: false };
return { sidebar: true, auxiliaryBar: true, panel: false, sessions: true, editor: false };
}
}

Expand All @@ -143,7 +143,7 @@ export class SessionsLayoutPolicy extends Disposable {
sideBarSize: 0,
auxiliaryBarSize: 0,
panelSize: 0,
chatBarWidth: width,
sessionsWidth: width,
};
case 'tablet':
case 'desktop':
Expand All @@ -152,7 +152,7 @@ export class SessionsLayoutPolicy extends Disposable {
sideBarSize: 300,
auxiliaryBarSize: 340,
panelSize: 300,
chatBarWidth: width - 300,
sessionsWidth: width - 300,
};
}
}
Expand Down
36 changes: 18 additions & 18 deletions src/vs/sessions/browser/media/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -140,19 +140,19 @@
background: var(--vscode-agents-background) !important;
}

.agent-sessions-workbench .part.chatbar {
.agent-sessions-workbench .part.sessionspart {
margin: 0 5px 5px 10px;
background: var(--part-background);
border: 1px solid var(--part-border-color, transparent);
border-radius: 8px;
box-sizing: border-box;
}

.agent-sessions-workbench.nopanel .part.chatbar {
.agent-sessions-workbench.nopanel .part.sessionspart {
margin-bottom: 0;
}

.agent-sessions-workbench.noauxiliarybar .part.chatbar {
.agent-sessions-workbench.noauxiliarybar .part.sessionspart {
margin-right: 0;
}

Expand Down Expand Up @@ -353,7 +353,7 @@
display: none !important;
}

.agent-sessions-workbench:not(.nosidebar) .part.chatbar {
.agent-sessions-workbench:not(.nosidebar) .part.sessionspart {
margin-left: 0;
}

Expand Down Expand Up @@ -448,7 +448,7 @@
background: var(--vscode-scrollbarSlider-activeBackground);
}

.monaco-workbench.vs.agent-sessions-workbench .part.chatbar,
.monaco-workbench.vs.agent-sessions-workbench .part.sessionspart,
.monaco-workbench.vs.agent-sessions-workbench .part.auxiliarybar,
.monaco-workbench.vs.agent-sessions-workbench .part.panel {
border-color: var(--vscode-editorWidget-border, var(--vscode-widget-border, transparent));
Expand All @@ -461,16 +461,16 @@
max-width: none;
}

.monaco-workbench.vs.agent-sessions-workbench .part.chatbar .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows {
.monaco-workbench.vs.agent-sessions-workbench .part.sessionspart .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows {
background: transparent !important;
}

.monaco-workbench.vs.agent-sessions-workbench .part.chatbar .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.request:hover,
.monaco-workbench.vs.agent-sessions-workbench .part.chatbar .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.response:hover,
.monaco-workbench.vs.agent-sessions-workbench .part.chatbar .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.focused.request,
.monaco-workbench.vs.agent-sessions-workbench .part.chatbar .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.focused.response,
.monaco-workbench.vs.agent-sessions-workbench .part.chatbar .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.selected.request,
.monaco-workbench.vs.agent-sessions-workbench .part.chatbar .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.selected.response {
.monaco-workbench.vs.agent-sessions-workbench .part.sessionspart .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.request:hover,
.monaco-workbench.vs.agent-sessions-workbench .part.sessionspart .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.response:hover,
.monaco-workbench.vs.agent-sessions-workbench .part.sessionspart .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.focused.request,
.monaco-workbench.vs.agent-sessions-workbench .part.sessionspart .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.focused.response,
.monaco-workbench.vs.agent-sessions-workbench .part.sessionspart .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.selected.request,
.monaco-workbench.vs.agent-sessions-workbench .part.sessionspart .interactive-list > .monaco-list > .monaco-scrollable-element > .monaco-list-rows > .monaco-list-row.selected.response {
background: transparent !important;
}

Expand All @@ -495,7 +495,7 @@

/* Top fade overlay: dims content scrolled near the top edge of the chat bar card.
* Use the Monaco scroll shadow element, which is only shown when scrollTop > 0. */
.agent-sessions-workbench .part.chatbar .monaco-scrollable-element > .shadow.top {
.agent-sessions-workbench .part.sessionspart .monaco-scrollable-element > .shadow.top {
height: 16px;
background: linear-gradient(to bottom, var(--part-background), transparent);
box-shadow: none;
Expand Down Expand Up @@ -671,7 +671,7 @@

.agent-sessions-workbench .part.auxiliarybar,
.agent-sessions-workbench .part.panel,
.agent-sessions-workbench .part.chatbar {
.agent-sessions-workbench .part.sessionspart {
transition:
opacity 250ms ease-out,
margin-top 250ms ease-out,
Expand All @@ -690,15 +690,15 @@
/* Shared starting values */
.agent-sessions-workbench .part.auxiliarybar,
.agent-sessions-workbench .part.panel,
.agent-sessions-workbench .part.chatbar {
.agent-sessions-workbench .part.sessionspart {
opacity: 0;
border-color: transparent;
}

/* Card parts: blend from surrounding background */
.agent-sessions-workbench .part.auxiliarybar,
.agent-sessions-workbench .part.panel,
.agent-sessions-workbench .part.chatbar {
.agent-sessions-workbench .part.sessionspart {
background: color-mix(in srgb, var(--part-background) 60%, var(--vscode-sideBar-background));
}

Expand All @@ -718,7 +718,7 @@
}

/* Chat bar (center-bottom): slides up from 6px below → margin: 0 10px 0px 10px */
.agent-sessions-workbench .part.chatbar {
.agent-sessions-workbench .part.sessionspart {
margin: 6px 16px 0px 16px;
}
}
Expand All @@ -727,7 +727,7 @@

.agent-sessions-workbench .part.auxiliarybar,
.agent-sessions-workbench .part.panel,
.agent-sessions-workbench .part.chatbar {
.agent-sessions-workbench .part.sessionspart {
transition: none;
}

Expand Down
4 changes: 3 additions & 1 deletion src/vs/sessions/browser/menus.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { MenuId } from '../../platform/actions/common/actions.js';
* Menu IDs for the Agent Sessions workbench layout.
*/
export const Menus = {
ChatBarTitle: new MenuId('ChatBarTitle'),
SessionsTitle: new MenuId('SessionsTitle'),
CommandCenter: new MenuId('SessionsCommandCenter'),
CommandCenterCenter: new MenuId('SessionsCommandCenterCenter'),
TitleBarContext: new MenuId('SessionsTitleBarContext'),
Expand All @@ -33,4 +33,6 @@ export const Menus = {
NewSessionControl: new MenuId('NewSessions.SessionControlMenu'),
NewSessionRepositoryConfig: new MenuId('NewSessions.RepositoryConfigMenu'),
SessionWorkspaceManage: new MenuId('Sessions.SessionWorkspaceManage'),
SessionBarToolbar: new MenuId('SessionsSessionBarToolbar'),
SessionBarInlineToolbar: new MenuId('SessionsSessionBarInlineToolbar'),
} as const;
3 changes: 0 additions & 3 deletions src/vs/sessions/browser/paneCompositePartService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,9 @@ import { SINGLE_WINDOW_PARTS } from '../../workbench/services/layout/browser/lay
import { PanelPart } from './parts/panelPart.js';
import { SidebarPart } from './parts/sidebarPart.js';
import { AuxiliaryBarPart } from './parts/auxiliaryBarPart.js';
import { ChatBarPart } from './parts/chatBarPart.js';
import { MobilePanelPart } from './parts/mobile/mobilePanelPart.js';
import { MobileSidebarPart } from './parts/mobile/mobileSidebarPart.js';
import { MobileAuxiliaryBarPart } from './parts/mobile/mobileAuxiliaryBarPart.js';
import { MobileChatBarPart } from './parts/mobile/mobileChatBarPart.js';
import { getClientArea } from '../../base/browser/dom.js';
import { mainWindow } from '../../base/browser/window.js';
import { InstantiationType, registerSingleton } from '../../platform/instantiation/common/extensions.js';
Expand Down Expand Up @@ -49,7 +47,6 @@ export class AgenticPaneCompositePartService extends Disposable implements IPane
this.registerPart(ViewContainerLocation.Panel, instantiationService.createInstance(isPhoneLayout ? MobilePanelPart : PanelPart));
this.registerPart(ViewContainerLocation.Sidebar, instantiationService.createInstance(isPhoneLayout ? MobileSidebarPart : SidebarPart));
this.registerPart(ViewContainerLocation.AuxiliaryBar, instantiationService.createInstance(isPhoneLayout ? MobileAuxiliaryBarPart : AuxiliaryBarPart));
this.registerPart(ViewContainerLocation.ChatBar, instantiationService.createInstance(isPhoneLayout ? MobileChatBarPart : ChatBarPart));
}

private registerPart(location: ViewContainerLocation, part: IPaneCompositePart): void {
Expand Down
Loading
Loading