Initial framework of Claude sessions in the Agents app#311532
Merged
TylerLeonhardt merged 2 commits intomainfrom Apr 21, 2026
Merged
Initial framework of Claude sessions in the Agents app#311532TylerLeonhardt merged 2 commits intomainfrom
TylerLeonhardt merged 2 commits intomainfrom
Conversation
Contributor
Screenshot ChangesBase: Changed (26) |
Contributor
There was a problem hiding this comment.
Pull request overview
Introduces an initial, setting-gated integration of Claude Code sessions into the Agents app’s default sessions provider (default-copilot), including UI wiring for a Claude-specific permission-mode picker and metadata needed for correct session grouping.
Changes:
- Add a new
ClaudeCodeSessionType(claude-code) and gate Claude session availability behindsessions.chatSessions.claude.enabled. - Extend
CopilotChatSessionsProviderto expose/handle Claude sessions (listing, creation, rename routing) and add a Claude permission-mode picker for the new-session controls. - Ensure Claude extension session items provide
metadata.workingDirectoryPath(when available) so sessions group under the correct workspace instead of “Unknown”; add/extend tests accordingly.
Show a summary per file
| File | Description |
|---|---|
| src/vs/sessions/services/sessions/common/session.ts | Adds claude-code session type definition and icon/label metadata. |
| src/vs/sessions/contrib/copilotChatSessions/browser/copilotChatSessionsProvider.ts | Adds Claude enablement setting, Claude new-session implementation, session type exposure, session filtering, and rename support. |
| src/vs/sessions/contrib/copilotChatSessions/browser/copilotChatSessionsActions.ts | Registers a Claude permission-mode picker action for the new-session control toolbar. |
| src/vs/sessions/contrib/copilotChatSessions/browser/copilotChatSessions.contribution.ts | Registers the Claude enablement setting in configuration. |
| src/vs/sessions/contrib/copilotChatSessions/browser/claudePermissionModePicker.ts | Adds a new-session permission-mode picker UI for Claude (writes session options pre-send). |
| src/vs/sessions/contrib/copilotChatSessions/test/browser/copilotChatSessionsProvider.test.ts | Extends provider tests for Claude gating, session types, filtering, and rename behavior. |
| src/vs/sessions/contrib/copilotChatSessions/test/browser/claudePermissionModePicker.test.ts | Adds unit tests for the Claude permission-mode picker UI behavior. |
| src/vs/sessions/contrib/copilotChatSessions/COPILOT_CHAT_SESSIONS_PROVIDER.md | Updates provider documentation to include Claude session type and picker contribution model. |
| src/vs/sessions/SESSIONS_PROVIDER.md | Documents how workspace grouping works and the metadata keys needed for correct grouping. |
| extensions/copilot/src/extension/chatSessions/vscode-node/claudeChatSessionContentProvider.ts | Sets item.metadata.workingDirectoryPath from Claude session cwd for grouping/working directory behavior. |
| extensions/copilot/src/extension/chatSessions/vscode-node/test/claudeChatSessionContentProvider.spec.ts | Adds tests covering metadata emission when cwd is present/absent. |
Copilot's findings
- Files reviewed: 11/11 changed files
- Comments generated: 1
roblourens
approved these changes
Apr 20, 2026
roblourens
previously approved these changes
Apr 20, 2026
This is barely functional, but it _is_ possible to chat with Claude through it. Bugs: First sent message from the welcome chat behavior is VERY strange. The chat is shown completely blank. Then I see the chat under "Unknown" section in the sessions list. I click it, it disappears after a second and reappears in the "Unknown" section. I click it again, it re-appears in the correct place... then I can start chatting with it. Secondly, no dropdowns show in the existing chat so you can't change the permission mode once you start. I put all of this behind a setting since it's not really ready yet.. but I wanted to get more eyes on these bugs. Co-authored-by: Copilot <copilot@github.com>
b16dc79 to
b636374
Compare
justschen
approved these changes
Apr 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is barely functional, but it is possible to chat with Claude through it.
I don't love the direction with this PR... I don't like that Claude is contributed as part of CopilotChatSessionsProvider but the problem is, CopilotChatSessionsProvider is what contributes the
browseActionsin order to target a local folder.In other words, basically all session types need to go through this class. I think the API design should change to separate Claude out of Copilot CLI stuff... but in an effort to start playing with it, and pressure to get it out, this was the best option forward.
Features enabled:
Features not yet enabled:
Bugs:
First sent message from the welcome chat behavior is VERY strange. The chat is shown completely blank. Then I see the chat under "Unknown" section in the sessions list. I click it, it disappears after a second and reappears in the "Unknown" section. I click it again, it re-appears in the correct place... then I can start chatting with it.
Secondly, no dropdowns show in the existing chat so you can't change the permission mode once you start.
I put all of this behind a setting since it's not really ready yet.. but I wanted to get more eyes on these bugs.
Co-authored-by: Copilot copilot@github.com