Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Support displaying hooks by target, compat refactor#298798

Open
pwang347 wants to merge 9 commits intomainfrom
pawang/hooksCompatRefactor
Open

Support displaying hooks by target, compat refactor#298798
pwang347 wants to merge 9 commits intomainfrom
pawang/hooksCompatRefactor

Conversation

@pwang347
Copy link
Member

@pwang347 pwang347 commented Mar 2, 2026

Fixes #298769

image

Copilot AI review requested due to automatic review settings March 2, 2026 20:21
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors hook-related types to support displaying/configuring hooks per target (VS Code vs GitHub Copilot/Copilot CLI vs Claude), and updates the hook configuration UX and hook discovery plumbing across workbench + ext host.

Changes:

  • Introduces hookTypes.ts as the shared source of truth for HookType, per-target hook name mappings, and localized hook metadata.
  • Moves Target enum to promptTypes.ts and updates imports across prompt parsing, UI, and tests.
  • Updates hook collection and hook configuration UI to use the new types and enables filtering hook types by target.

Reviewed changes

Copilot reviewed 46 out of 46 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/vs/workbench/contrib/chat/test/common/tools/builtinTools/runSubagentTool.test.ts Updates Target import location.
src/vs/workbench/contrib/chat/test/common/promptSyntax/service/promptsService.test.ts Updates Target + HookType imports for new module split.
src/vs/workbench/contrib/chat/test/common/promptSyntax/hookCompatibility.test.ts Updates HookType import to hookTypes.
src/vs/workbench/contrib/chat/test/common/promptSyntax/hookClaudeCompat.test.ts Updates HookType import to hookTypes.
src/vs/workbench/contrib/chat/test/common/mockChatSessionsService.ts Updates Target import to promptTypes.
src/vs/workbench/contrib/chat/test/common/chatModeService.test.ts Updates Target import to promptTypes.
src/vs/workbench/contrib/chat/test/browser/promptSyntax/languageProviders/promptValidator.test.ts Updates Target import to promptTypes.
src/vs/workbench/contrib/chat/test/browser/promptSyntax/languageProviders/promptHovers.test.ts Adjusts imports for moved Target (but currently misses PromptsType/getLanguageIdForPromptsType).
src/vs/workbench/contrib/chat/test/browser/promptSyntax/languageProviders/promptHeaderAutocompletion.test.ts Adjusts imports for moved Target (but currently misses PromptsType/getLanguageIdForPromptsType).
src/vs/workbench/contrib/chat/common/tools/builtinTools/runSubagentTool.ts Renames hook type usage to ChatRequestHooks.
src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.ts Switches hook aggregation to Map and adopts HookType/ChatRequestHooks split.
src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.ts Removes Target enum from service layer; uses ChatRequestHooks type.
src/vs/workbench/contrib/chat/common/promptSyntax/promptTypes.ts Adds Target enum to prompt type module.
src/vs/workbench/contrib/chat/common/promptSyntax/promptFileParser.ts Updates Target import source.
src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptValidator.ts Updates Target import source.
src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.ts Updates Target import source.
src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.ts Updates Target import source.
src/vs/workbench/contrib/chat/common/promptSyntax/hookTypes.ts New: centralizes hook types, per-target maps, and localized metadata.
src/vs/workbench/contrib/chat/common/promptSyntax/hookSchema.ts Rebuilds hook schema properties from per-target hook maps + metadata; introduces ChatRequestHooks mapped type.
src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.ts Derives Copilot CLI hook name mapping from HOOKS_BY_TARGET.
src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.ts Updates HookType import source.
src/vs/workbench/contrib/chat/common/promptSyntax/hookClaudeCompat.ts Derives Claude hook name mapping from HOOKS_BY_TARGET.
src/vs/workbench/contrib/chat/common/plugins/agentPluginService.ts Updates HookType import source.
src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.ts Updates Target import source.
src/vs/workbench/contrib/chat/common/participants/chatAgents.ts Updates hook request type to ChatRequestHooks.
src/vs/workbench/contrib/chat/common/chatSessionsService.ts Updates Target import source.
src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.ts Updates hook request type to ChatRequestHooks.
src/vs/workbench/contrib/chat/common/chatService/chatService.ts Updates HookTypeValue import to hookTypes.
src/vs/workbench/contrib/chat/common/chatModes.ts Updates Target import source.
src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.ts Updates Target import source.
src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.ts Updates Target import source.
src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.ts Updates Target import source.
src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.ts Updates HookType import source.
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.ts Switches hook label lookup to HOOK_METADATA.
src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.ts Updates HookType import source.
src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.ts Updates Target import source.
src/vs/workbench/contrib/chat/browser/promptSyntax/newPromptFileActions.ts Updates Target import source.
src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.ts Switches hook metadata lookup to HOOK_METADATA.
src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.ts Adds target filtering for hook types; refactors quick-pick options (but new-file creation currently doesn’t honor Copilot CLI format).
src/vs/workbench/contrib/chat/browser/chatSlashCommands.ts Updates Target import source.
src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.ts Updates Target import source.
src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.ts Uses showConfigureHooksQuickPick with target filtering (VS Code vs GitHub Copilot).
src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.ts Switches hook metadata lookup to HOOK_METADATA.
src/vs/workbench/api/common/extHostTypes.ts Updates HookTypeValue import source.
src/vs/workbench/api/common/extHostTypeConverters.ts Updates hook request type to ChatRequestHooks.
src/vs/workbench/api/common/extHostChatAgents2.ts Updates hook request type to ChatRequestHooks.

@pwang347 pwang347 marked this pull request as ready for review March 2, 2026 22:49
@vs-code-engineering vs-code-engineering bot added this to the March 2026 milestone Mar 2, 2026
@pwang347 pwang347 enabled auto-merge (squash) March 2, 2026 23:05
@pwang347 pwang347 disabled auto-merge March 2, 2026 23:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hooks show no session end entry

3 participants