* Enhance quick suggestions behavior with inline completions: allow triggering when inline provider returns no results
* Improve inline completions handling: suppress suggestions when inline completions are active
* CCR
* mcp: move to askquestions for elicitations
This reuses the askquestions UI to make elicitation requests. This is a
nicer UX than the quickpick flow.
It adds data validation to askquestions, as required by MCP, and also
switches the answer types from `unknown` to `IChatQuestionAnswerValue`
which is a bit more predictable to manage.
* fic tests
* pr comments
* test: add multiline PTY write test for macOS 1024-byte buffer bug
Adds a test that sends multiline commands of varying sizes (10, 20, 30 lines)
through TerminalProcess.input() and verifies the data arrives intact at the
shell. On macOS, multiline commands exceeding ~1024 bytes corrupt due to PTY
canonical-mode input buffer backpressure.
Reproduces: #296955
* fix: chunk multiline PTY writes on macOS to avoid 1024-byte buffer corruption
macOS PTY has a ~1024-byte canonical-mode input buffer. When multiline data
(containing CR characters) exceeds this threshold, the shell's line editor
echoes characters back, creating backpressure that corrupts the write.
Write multiline PTY input in 512-byte chunks with 5ms pauses between them
to allow the echo buffer to drain. Non-macOS platforms and single-line
writes are unaffected.
Fixes#296955
* test: increase large multiline test to 500 lines (~32KB)
refresh() re-resolves all sessions from providers (network calls).
update() just re-renders the tree with existing data, which is all
that is needed when changing the grouping mode.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add AgentSessionSection.Repository enum value and use it for all repo
group sections. Differentiate repo sections via the identity provider
which now includes the label in the section ID.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep IAgentSessionSection.section as AgentSessionSection (not string).
Revert all changes to agentSessionsControl.ts and agentSessionsModel.ts.
Use type assertion for dynamic repo section IDs in the viewer instead.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The filter should work the same regardless of grouping mode. Moved all
grouping state management (storage, context key, toggle) to the sessions
view pane, which owns it. The filter just receives the current grouping
via its existing groupResults option callback.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Simplify GROUPING_STORAGE_KEY to a static constant instead of per-instance
scoped key. The grouping override is guarded by supportsGroupingOverride
(only enabled when options.groupResults is configured), which is sufficient
to prevent unintended interference.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Scope grouping storage key per filter instance (filterMenuId) to avoid
cross-instance interference; only enable grouping override when a default
grouping is configured
- Add isStoringGrouping guard to prevent duplicate onDidChange events
when setGrouping writes to storage
- Use full owner/repo as section ID for unique grouping; display short
repo name as section label
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace plain spans with getIconClasses() with proper ResourceLabels
and label.setFile() for attachment pills, matching how core chat
attachments render file icons via the monaco-icon-label system.
Add CSS for .monaco-icon-label inside pills to ensure correct sizing
and layout of file icon theme ::before pseudo-elements.
Keep getIconClasses for QuickPick file items where the QuickPick's
internal IconLabel handles rendering.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* plugins/mcp: allow disabling/enabling similar to extensions
Introduces an EnablementModel which is used to allow users to enable and disable both plugins and MCP at both a workspace and global level. Accessible on the mcp/plugins editors, inline within the marketplace view, and in the chat customizations view.
* comments
No sure what this method was doing on the sessions service. Really should be deleted entirely but moving to a better home on the chat service as a first step
Exclude Claude hook file paths from sessions app
Disable the Claude-specific hook file locations (.claude/settings.json,
.claude/settings.local.json, ~/.claude/settings.json) in the sessions
window by setting them to false in the chat.hookFilesLocations config
default. This uses the existing PromptsConfig mechanism for disabling
individual default paths.
Fixesmicrosoft/vscode#300138
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>