* 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
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>
* changes to ensure all the network requests are passed through proxy
* changes to ensure all the network requests are passed through proxy
* changes to quote shell arguments passed to sandbox
* updates to default paths
* chat: add symbol paste provider
Adds PasteSymbolProvider to automatically convert copied symbol
identifiers into chat symbol variable references (@sym:identifier) when
pasting into the chat input.
- Adds ResolvedSymbolReference interface to represent a resolved symbol
with location, icon, and metadata
- Implements CopyTextProvider.prepareDocumentPaste to prime a symbol
reference cache when copying from code editors
- Adds resolveSymbolReference function that uses language definition
providers and document outline to resolve copied identifiers to their
definitions and determine appropriate icons
- Adds symbol reference cache with TTL-based expiration to avoid
repeatedly resolving the same symbols
- Implements PasteSymbolProvider.provideDocumentPasteEdits to detect
when an identifier is pasted into chat input and convert it to a
symbol variable reference
- Registers PasteSymbolProvider alongside other paste providers in
ChatPasteProvidersFeature
(Commit message generated by Copilot)
* comment