sessions: fix title bar context menu and session icons
- Fix Unpin action missing from title bar context menu by looking up
actual pinned state via SessionsView instead of hardcoding false
- Remove context menu for new/unsent sessions where actions like
delete, pin, and archive don't apply
- Use session type icons (Codicon.copilot, Codicon.cloud) for
AgentSessionAdapter instead of provider-level icons
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* quickinput: expose alignment observable, keep Command Center visible when Quick Pick is dragged
When the Quick Pick is dragged away from its default top position, the
Command Center in the title bar no longer hides. Previously it always
hid on Quick Pick show, even when the widget was in a custom position
where it wouldn't overlap.
Changes:
- Add QuickInputAlignment type ('top' | 'center' | 'custom') and
alignment observable to IQuickInputService
- DnD controller tracks alignment via _setAlignmentState() helper that
updates both the context key and the observable
- Each service layer has a stable observableValue mirrored via autorun
(avoids breaking subscriptions on lazy controller creation)
- Command Center uses autorun to reactively show/hide based on alignment
- Fix onShowEmitter.fire() timing (moved after layoutContainer so
alignment is settled before listeners fire)
- Fix top===0 truthiness bugs in layoutContainer and updateLayout
- Fix double-click reset not updating alignment state
Fixes#306138
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* quickinput: handle anchored inputs and partial state in alignment
- Set alignment to 'custom' for anchored quick inputs (positioned near
a DOM element, not at the top)
- Re-sync alignment from DnD controller on non-anchored show to prevent
stale 'custom' value after an anchored input closes
- Guard setAlignment() to no-op while an anchored input is visible
- DnD alignment typed as IObservable<QuickInputAlignment> (read-only)
- Require both top and left in persisted state before marking as custom
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: scope editor service in window title to own editor groups container
The main window's WindowTitle used the global IEditorService which
tracks editor groups across all windows including auxiliary windows.
When a terminal was moved to a new window, the auxiliary window's
active editor change propagated to the main window's title, causing
it to incorrectly display the terminal name instead of the open file.
Scope the editor service used by WindowTitle to the window's own
editor groups container so each window title only reflects editors
within that window.
Closes#267538
* scope entire instantiator
* compile
* polish
---------
Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com>
* comments: add disposeElement to prevent disposable accumulation on template reuse
* split template vs element disposables per review feedback
* retrigger CI
* Use disposable store
---------
Co-authored-by: Alex Ross <38270282+alexr00@users.noreply.github.com>
sessions: gate rerun button on valid run ID and add tests
Only show the Rerun Check action when the check's detailsUrl contains
a parseable GitHub Actions workflow run ID. Export parseWorkflowRunId
for reuse.
Add unit tests for rerunFailedJobs endpoint and parseWorkflowRunId.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a per-check rerun button for failed CI checks in the changes view.
Uses the GitHub Actions rerun-failed-jobs API, extracting the workflow
run ID from the check's detailsUrl.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: fix multi-select context menu to operate on all selected items
Context menu actions in the sessions list previously only operated on the
right-clicked item, ignoring other selected items. Now the context menu
collects the tree selection and passes all selected sessions to actions.
Changes:
- sessionsList.ts: Pass selected sessions array as arg to context menu actions
- sessionsViewActions.ts: Update all 7 item actions to accept ISession | ISession[]
- copilotChatSessionsActions.ts: Update bridge commands to handle session arrays
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ensure right-clicked element is first in multi-selection
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Rename sandbox setting to chat.agent.sandbox (#303421)
Rename the top-level sandbox setting from `chat.tools.terminal.sandbox.enabled`
to `chat.agent.sandbox` to reflect that sandboxing is a general agent concept,
not terminal-specific.
- Update setting ID value to `chat.agent.sandbox`
- Update description to be more general
- Deprecate old `chat.tools.terminal.sandbox.enabled` setting
- Update telemetry event name
Fixes#303421
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* updating terminal sandbox to agent sandbox
* removed allowTrustedDomains
* correcting the settings keys for sandboxing
* correcting the settings keys for sandboxing
* Explicit notification for blocked domains before running the command
* Fix terminal sandbox follow-ups
* main merge
* fixing tests
* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Revert "Update src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.ts"
This reverts commit b956dfa719.
* removing local files
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
The submenu header (e.g. 'Thinking effort') was incorrectly shown as the
description of the first action item instead of as a proper section header.
Regression from f6218ecb33 which replaced ActionListItemKind.Header items
with inline description on the first child action.
Restore proper Header rendering for SubmenuAction groups that have a label.
For the sessions workspace picker, move the provider label to the first
child action's tooltip so it renders as a description instead of a header.
Fixes#306250
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* feat: add getFinalResponse method to IResponse and implement CopyFinalResponseAction
* feat: add context key for response view model in ChatListWidget
* Unify agentHost server-side dispatch: remove IProtocolSideEffectHandler
Eliminate the IProtocolSideEffectHandler interface and make
ProtocolServerHandler talk to IAgentService directly. This removes
the duplicate adapter layer between the WebSocket protocol server
and the real service implementation.
Changes:
- ProtocolServerHandler now takes IAgentService + SessionStateManager +
IProtocolServerConfig instead of IProtocolSideEffectHandler
- Deleted ~40-line inline adapter in agentHostMain.ts
- agentHostServerMain.ts now uses AgentService instead of manually
wiring SessionStateManager + AgentSideEffects
- Removed implements IProtocolSideEffectHandler from AgentSideEffects
- Removed dead methods from AgentSideEffects that were only needed
by the deleted interface (handleCreateSession, handleDisposeSession,
handleListSessions, handleGetResourceMetadata, handleAuthenticate,
getDefaultDirectory)
- Type conversions (URI<->string, IAgentSessionMetadata<->ISessionSummary)
now happen at the protocol boundary in ProtocolServerHandler
- Fixed dispatchAction double-dispatch: WS path previously dispatched
to stateManager AND called handleAction (which dispatched again)
- Extension methods (getResourceMetadata, authenticate, etc.) now call
IAgentService directly instead of untyped fallbacks
(Written by Copilot)
* comments
Co-authored-by: Copilot <copilot@github.com>
* Simplify further
Co-authored-by: Copilot <copilot@github.com>
---------
Co-authored-by: Copilot <copilot@github.com>