-
Notifications
You must be signed in to change notification settings - Fork 711
Chat cleanup: remove participant and convert some tools to skills #8502
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR removes the bespoke githubpr chat participant implementation and migrates several chat-driven behaviors from VS Code LM “tools” into declarative “skills”, while also simplifying tool registration and adding a new labels-fetching tool to support search-query formation.
Changes:
- Removed the
githubprchat participant and its prompt/state plumbing; updated extension activation to only register LM tools. - Converted issue/notification summarization, issue fix suggestion, and search-result rendering behaviors from tools into
chatSkillsmarkdown definitions. - Added a new
FetchLabelsTooland updated tool registration +package.jsontool contributions accordingly.
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/notifications/notificationsFeatureRegistar.ts | Removes @githubpr mention from the chat prompt used for notification summarization. |
| src/lm/tools/toolsUtils.ts | Removes participant-state dependency from tool base classes / constructors. |
| src/lm/tools/tools.ts | Updates tool registration (removes summarization/suggest-fix/render tools; adds labels fetch). |
| src/lm/tools/summarizeNotificationsTool.ts | Deleted (functionality moved to a skill). |
| src/lm/tools/summarizeIssueTool.ts | Deleted (functionality moved to a skill). |
| src/lm/tools/suggestFixTool.ts | Deleted (functionality moved to a skill). |
| src/lm/tools/searchTools.ts | Removes ConvertToSearchSyntaxTool implementation (query formation moved to a skill). |
| src/lm/tools/fetchLabelsTool.ts | New LM tool to fetch repo labels for search-query formation. |
| src/lm/tools/displayIssuesTool.ts | Deleted (rendering moved to a skill). |
| src/lm/skills/summarize-github-issue-pr-notification/SKILL.md | New summarization skill definition. |
| src/lm/skills/suggest-fix-issue/SKILL.md | New “suggest fix” skill definition. |
| src/lm/skills/show-github-search-result/SKILL.md | New skill for rendering search results in a markdown table. |
| src/lm/skills/form-github-search-query/SKILL.md | New skill for forming GitHub search queries (replacing prior tool). |
| src/lm/participantsPrompt.ts | Deleted (participant removed). |
| src/lm/participants.ts | Deleted (participant removed). |
| src/issues/issueFeatureRegistrar.ts | Updates chat command strings and attempts to reveal the chat UI after creating a new chat. |
| src/extension.ts | Removes participant initialization; registers tools directly when chat is enabled. |
| src/common/executeCommands.ts | Adds SHOW_CHAT constant (currently problematic). |
| package.nls.json | Adds display name for the new labels-fetch tool. |
| package.json | Removes chatParticipants, adds chatSkills, and updates LM tool contributions (adds labels fetch; removes several tools). |
Comments suppressed due to low confidence (1)
src/issues/issueFeatureRegistrar.ts:588
- Same issue here: executing
commands.SHOW_CHAT(currently'workbench.panel.chat') is unlikely to work since it isn't a command. Usecommands.OPEN_CHATor a proper focus command to reveal the chat UI after starting a new chat.
commands.executeCommand(commands.NEW_CHAT, { inputValue: vscode.l10n.t('Find a fix for issue {0}/{1}#{2}', issue.remote.owner, issue.remote.repositoryName, issue.number) });
commands.executeCommand(commands.SHOW_CHAT);
| export namespace commands { | ||
| export const OPEN_CHAT = 'workbench.action.chat.open'; | ||
| export const NEW_CHAT = 'workbench.action.chat.newChat'; | ||
| export const SHOW_CHAT = 'workbench.panel.chat'; |
Copilot
AI
Feb 10, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
commands.SHOW_CHAT is set to 'workbench.panel.chat', which is a view/container id rather than a command id in VS Code. Executing it via vscode.commands.executeCommand is likely to fail at runtime. Prefer using the existing commands.OPEN_CHAT (workbench.action.chat.open) or a dedicated focus command (e.g. commands.focusView('workbench.panel.chat') if that's the intent) instead of introducing SHOW_CHAT as an executable command.
| export const SHOW_CHAT = 'workbench.panel.chat'; | |
| export const SHOW_CHAT = 'workbench.action.chat.open'; |
| commands.executeCommand(commands.NEW_CHAT, { inputValue: vscode.l10n.t('Summarize issue {0}/{1}#{2}', issue.remote.owner, issue.remote.repositoryName, issue.number) }); | ||
| commands.executeCommand(commands.SHOW_CHAT); | ||
| } else { | ||
| const pullRequestModel = issue.pullRequestModel; | ||
| const remote = pullRequestModel.githubRepository.remote; | ||
| commands.executeCommand(commands.NEW_CHAT, { inputValue: vscode.l10n.t('@githubpr Summarize pull request {0}/{1}#{2}', remote.owner, remote.repositoryName, pullRequestModel.number) }); | ||
| commands.executeCommand(commands.NEW_CHAT, { inputValue: vscode.l10n.t('Summarize pull request {0}/{1}#{2}', remote.owner, remote.repositoryName, pullRequestModel.number) }); | ||
| commands.executeCommand(commands.SHOW_CHAT); |
Copilot
AI
Feb 10, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This calls commands.SHOW_CHAT after commands.NEW_CHAT, but SHOW_CHAT is defined as 'workbench.panel.chat' (a view id) and is not an executable command. To reliably reveal the chat UI, use commands.OPEN_CHAT (as done elsewhere, e.g. pr.applySuggestionWithCopilot) or focus the view via the .focus command instead.
This issue also appears on line 587 of the same file.
No description provided.