diff --git a/src/vs/sessions/LAYOUT.md b/src/vs/sessions/LAYOUT.md index a6801e423ba39..202985474a686 100644 --- a/src/vs/sessions/LAYOUT.md +++ b/src/vs/sessions/LAYOUT.md @@ -84,6 +84,8 @@ The Agent Sessions titlebar includes a command center with a custom title bar wi The widget: - Extends `BaseActionViewItem` and renders a clickable label showing the active session title - Shows kind icon (provider type icon), session title, repository folder name, and the active git branch/worktree name in parentheses when available, plus the changes summary (+insertions -deletions) +- Uses spacing between titlebar groups instead of vertical separator bars, and shows the session title metadata without the previous dot separator before the folder/worktree label +- Keeps the command center focused on the session picker widget itself, without an adjacent "Mark as Done" action button - Truncates the repository/worktree metadata with ellipsis before truncating the primary AI-generated session title when command center space is constrained - On click, opens the `AgentSessionsPicker` quick pick to switch between sessions - Gets the active session label from `IActiveSessionService.getActiveSession()` and the live model title from `IChatService`, falling back to "New Session" if no active session is found @@ -665,6 +667,9 @@ interface IPartVisibilityState { | 2026-04-22 | Added a sessions-workbench notification offset override so the shared notification controllers no longer push top-right notifications down to `42px`; sessions now reapply a fixed `40px` top offset for top-right notification center/toast placement. | | 2026-04-22 | Generalized the auxiliary bar snap-close prevention to trigger whenever the main editor part is visible (any editor type), so the behavior now applies automatically without maintaining an editor-type allowlist. | | 2026-04-22 | Updated the sessions auxiliary bar sizing rules so attached diff editors and integrated browser editors keep the normal 270px auxiliary-bar minimum width while disabling sash snap-to-close in that state, and the titlebar toggle continues to hide/show the secondary sidebar normally. | +| 2026-04-21 | Renamed the command-center "Add Chat" titlebar action to "New Sub-Session" so the plus-button tooltip matches the sub-session workflow. | +| 2026-04-21 | Removed the remaining left-margin spacing after the titlebar's VS Code and session-picker items, and dropped the command-center "Mark as Done" checkmark button next to the active session title. | +| 2026-04-21 | Removed the titlebar's vertical separator bars in favor of spacing-only group separation, and removed the dot separator between the active session title and its folder/worktree metadata. | | 2026-04-21 | Updated the sessions chat composite bar tabs to preserve each chat title's original casing instead of applying per-word capitalization. | | 2026-04-21 | Moved the sessions-only default notification placement to bottom-right and documented the sessions-specific notification center offsets: `15px` from the bottom/right or bottom/left edges, and `top: 40px; right: 15px;` for top-right placement. | | 2026-04-17 | Added a subtle 1px titlebar-token border around the sessions account widget's GitHub profile image, including the inactive-window variant, and documented the avatar chrome in the layout spec. | diff --git a/src/vs/sessions/browser/parts/media/titlebarpart.css b/src/vs/sessions/browser/parts/media/titlebarpart.css index f3e6ee55a0e65..db6da32ee33c2 100644 --- a/src/vs/sessions/browser/parts/media/titlebarpart.css +++ b/src/vs/sessions/browser/parts/media/titlebarpart.css @@ -63,13 +63,9 @@ align-items: center; } -/* Separator before right layout toolbar (only when session actions toolbar also has actions) */ -.monaco-workbench .part.titlebar > .sessions-titlebar-container > .titlebar-right > .titlebar-session-actions-container:not(.has-no-actions) + .titlebar-right-layout-container:not(.has-no-actions)::before { - content: ''; - width: 1px; - height: 16px; - margin: 0 8px; - background-color: var(--vscode-disabledForeground); +/* Add spacing between the session action group and the right layout actions. */ +.monaco-workbench .part.titlebar > .sessions-titlebar-container > .titlebar-right > .titlebar-session-actions-container:not(.has-no-actions) + .titlebar-right-layout-container:not(.has-no-actions) { + margin-left: 8px; } /* Toggled action buttons in session actions toolbar */ diff --git a/src/vs/sessions/contrib/changes/browser/media/changesTitleBarWidget.css b/src/vs/sessions/contrib/changes/browser/media/changesTitleBarWidget.css index c77b454718e1a..1754de1cce6f7 100644 --- a/src/vs/sessions/contrib/changes/browser/media/changesTitleBarWidget.css +++ b/src/vs/sessions/contrib/changes/browser/media/changesTitleBarWidget.css @@ -5,19 +5,8 @@ /* ---- Changes titlebar action spacing ---- */ -/* Separator between local-session actions (Run, VS Code) and fixed toggles (Terminal, Changes). +/* Remove leftover spacing between local-session actions (Run, VS Code) and fixed toggles (Terminal, Changes). * Targets the action following the VS Code icon (any Codicon.vscode variant). */ .agent-sessions-workbench .titlebar-session-actions-container .monaco-action-bar .actions-container > .action-item:has(.codicon[class*="codicon-vscode"]) + .action-item { - position: relative; - margin-left: 17px; -} - -.agent-sessions-workbench .titlebar-session-actions-container .monaco-action-bar .actions-container > .action-item:has(.codicon[class*="codicon-vscode"]) + .action-item::before { - content: ''; - position: absolute; - left: -9px; - top: 3px; - width: 1px; - height: 16px; - background-color: var(--vscode-disabledForeground); + margin-left: 0; } diff --git a/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css b/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css index 0dc25732d0fe9..4736ced69aaeb 100644 --- a/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css +++ b/src/vs/sessions/contrib/sessions/browser/media/sessionsTitleBarWidget.css @@ -10,21 +10,7 @@ } .agent-sessions-workbench .command-center .monaco-action-bar .actions-container > .action-item.agent-sessions-titlebar-container + .action-item { - position: relative; - margin-left: 8px; - padding-left: 12px; -} - -.agent-sessions-workbench .command-center .monaco-action-bar .actions-container > .action-item.agent-sessions-titlebar-container + .action-item::before { - content: ''; - position: absolute; - left: 0; - top: 50%; - width: 1px; - height: 16px; - transform: translateY(-50%); - background-color: var(--vscode-commandCenter-border); - pointer-events: none; + margin-left: 0; } .command-center .agent-sessions-titlebar-container { @@ -121,12 +107,6 @@ opacity: 0.7; } -/* Dot separator */ -.command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-separator { - opacity: 0.5; - flex-shrink: 0; -} - /* Provider label (shown for untitled sessions) */ .command-center .agent-sessions-titlebar-container .agent-sessions-titlebar-provider { display: flex; diff --git a/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.ts b/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.ts index bcdb4f70dba4e..beb6c441354eb 100644 --- a/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.ts +++ b/src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.ts @@ -131,7 +131,7 @@ export class SessionsTitleBarWidget extends BaseActionViewItem { const icon = this._getActiveSessionIcon(); const repoLabel = this._getRepositoryLabel(); const repoDetailLabel = this._getRepositoryDetailLabel(); - const pillLabel = repoLabel ? `${label} \u00B7 ${repoLabel}${repoDetailLabel ? ` (${repoDetailLabel})` : ''}` : label; + const pillLabel = repoLabel ? `${label} ${repoLabel}${repoDetailLabel ? ` (${repoDetailLabel})` : ''}` : label; // Build a render-state key from all displayed data const renderState = `${icon?.id ?? ''}|${label}|${repoLabel ?? ''}|${repoDetailLabel ?? ''}`; @@ -171,11 +171,6 @@ export class SessionsTitleBarWidget extends BaseActionViewItem { if (repoLabel) { const detailsEl = $('span.agent-sessions-titlebar-details'); - const separator1 = $('span.agent-sessions-titlebar-separator'); - separator1.textContent = '\u00B7'; - separator1.setAttribute('aria-hidden', 'true'); - detailsEl.appendChild(separator1); - const repoEl = $('span.agent-sessions-titlebar-repo'); repoEl.textContent = repoDetailLabel ? `${repoLabel} (${repoDetailLabel})` : repoLabel; detailsEl.appendChild(repoEl); diff --git a/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.ts b/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.ts index 8bb4d36db1f2f..5618a6f90a0de 100644 --- a/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.ts +++ b/src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.ts @@ -701,16 +701,6 @@ registerAction2(class MarkSessionAsDoneAction extends Action2 { icon: Codicon.check, precondition: ChatContextKeys.requestInProgress.negate(), menu: [{ - id: Menus.CommandCenter, - order: 103, - when: ContextKeyExpr.and( - IsAuxiliaryWindowContext.negate(), - SessionsWelcomeVisibleContext.negate(), - IsNewChatSessionContext.negate(), - IsActiveSessionArchivedContext.negate() - ) - }, - { id: MenuId.ChatEditingSessionChangesToolbar, group: 'navigation', order: 1, @@ -750,7 +740,7 @@ registerAction2(class AddChatAction extends Action2 { constructor() { super({ id: 'agentSession.addChat', - title: localize2('addChat', "Add Chat"), + title: localize2('addChat', "New Sub-Session"), icon: Codicon.plus, menu: [{ id: Menus.CommandCenter,