fix(hooks): thread startWorkConfig into auto-slash-command executor
The auto-slash-command executor called loadBuiltinCommands() with no config, so the startWorkConfig?.worktree ?? true fallback always fired, ignoring the user's start_work.worktree setting. Thread startWorkConfig through ExecutorOptions -> AutoSlashCommandHookOptions -> createSkillHooks so the user's config is respected when /start-work is invoked via the slash-command path. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -102,6 +102,7 @@ export interface ExecutorOptions {
|
|||||||
skills?: LoadedSkill[]
|
skills?: LoadedSkill[]
|
||||||
pluginsEnabled?: boolean
|
pluginsEnabled?: boolean
|
||||||
enabledPluginsOverride?: Record<string, boolean>
|
enabledPluginsOverride?: Record<string, boolean>
|
||||||
|
startWorkConfig?: { worktree?: boolean }
|
||||||
}
|
}
|
||||||
|
|
||||||
function discoverPluginCommands(options?: ExecutorOptions): CommandInfo[] {
|
function discoverPluginCommands(options?: ExecutorOptions): CommandInfo[] {
|
||||||
@@ -132,7 +133,7 @@ async function discoverAllCommands(options?: ExecutorOptions): Promise<CommandIn
|
|||||||
const opencodeGlobalCommands = discoverCommandsFromDir(opencodeGlobalDir, "opencode")
|
const opencodeGlobalCommands = discoverCommandsFromDir(opencodeGlobalDir, "opencode")
|
||||||
const projectCommands = discoverCommandsFromDir(projectCommandsDir, "project")
|
const projectCommands = discoverCommandsFromDir(projectCommandsDir, "project")
|
||||||
const opencodeProjectCommands = discoverCommandsFromDir(opencodeProjectDir, "opencode-project")
|
const opencodeProjectCommands = discoverCommandsFromDir(opencodeProjectDir, "opencode-project")
|
||||||
const builtinCommandsMap = loadBuiltinCommands()
|
const builtinCommandsMap = loadBuiltinCommands(undefined, options?.startWorkConfig)
|
||||||
const builtinCommands: CommandInfo[] = Object.values(builtinCommandsMap).map(cmd => ({
|
const builtinCommands: CommandInfo[] = Object.values(builtinCommandsMap).map(cmd => ({
|
||||||
name: cmd.name,
|
name: cmd.name,
|
||||||
metadata: {
|
metadata: {
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ export interface AutoSlashCommandHookOptions {
|
|||||||
skills?: LoadedSkill[]
|
skills?: LoadedSkill[]
|
||||||
pluginsEnabled?: boolean
|
pluginsEnabled?: boolean
|
||||||
enabledPluginsOverride?: Record<string, boolean>
|
enabledPluginsOverride?: Record<string, boolean>
|
||||||
|
startWorkConfig?: { worktree?: boolean }
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createAutoSlashCommandHook(options?: AutoSlashCommandHookOptions) {
|
export function createAutoSlashCommandHook(options?: AutoSlashCommandHookOptions) {
|
||||||
@@ -31,6 +32,7 @@ export function createAutoSlashCommandHook(options?: AutoSlashCommandHookOptions
|
|||||||
skills: options?.skills,
|
skills: options?.skills,
|
||||||
pluginsEnabled: options?.pluginsEnabled,
|
pluginsEnabled: options?.pluginsEnabled,
|
||||||
enabledPluginsOverride: options?.enabledPluginsOverride,
|
enabledPluginsOverride: options?.enabledPluginsOverride,
|
||||||
|
startWorkConfig: options?.startWorkConfig,
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ export function createSkillHooks(args: {
|
|||||||
skills: mergedSkills,
|
skills: mergedSkills,
|
||||||
pluginsEnabled: pluginConfig.claude_code?.plugins ?? true,
|
pluginsEnabled: pluginConfig.claude_code?.plugins ?? true,
|
||||||
enabledPluginsOverride: pluginConfig.claude_code?.plugins_override,
|
enabledPluginsOverride: pluginConfig.claude_code?.plugins_override,
|
||||||
|
startWorkConfig: pluginConfig.start_work,
|
||||||
}))
|
}))
|
||||||
: null
|
: null
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user