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[]
|
||||
pluginsEnabled?: boolean
|
||||
enabledPluginsOverride?: Record<string, boolean>
|
||||
startWorkConfig?: { worktree?: boolean }
|
||||
}
|
||||
|
||||
function discoverPluginCommands(options?: ExecutorOptions): CommandInfo[] {
|
||||
@@ -132,7 +133,7 @@ async function discoverAllCommands(options?: ExecutorOptions): Promise<CommandIn
|
||||
const opencodeGlobalCommands = discoverCommandsFromDir(opencodeGlobalDir, "opencode")
|
||||
const projectCommands = discoverCommandsFromDir(projectCommandsDir, "project")
|
||||
const opencodeProjectCommands = discoverCommandsFromDir(opencodeProjectDir, "opencode-project")
|
||||
const builtinCommandsMap = loadBuiltinCommands()
|
||||
const builtinCommandsMap = loadBuiltinCommands(undefined, options?.startWorkConfig)
|
||||
const builtinCommands: CommandInfo[] = Object.values(builtinCommandsMap).map(cmd => ({
|
||||
name: cmd.name,
|
||||
metadata: {
|
||||
|
||||
@@ -24,6 +24,7 @@ export interface AutoSlashCommandHookOptions {
|
||||
skills?: LoadedSkill[]
|
||||
pluginsEnabled?: boolean
|
||||
enabledPluginsOverride?: Record<string, boolean>
|
||||
startWorkConfig?: { worktree?: boolean }
|
||||
}
|
||||
|
||||
export function createAutoSlashCommandHook(options?: AutoSlashCommandHookOptions) {
|
||||
@@ -31,6 +32,7 @@ export function createAutoSlashCommandHook(options?: AutoSlashCommandHookOptions
|
||||
skills: options?.skills,
|
||||
pluginsEnabled: options?.pluginsEnabled,
|
||||
enabledPluginsOverride: options?.enabledPluginsOverride,
|
||||
startWorkConfig: options?.startWorkConfig,
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
@@ -42,6 +42,7 @@ export function createSkillHooks(args: {
|
||||
skills: mergedSkills,
|
||||
pluginsEnabled: pluginConfig.claude_code?.plugins ?? true,
|
||||
enabledPluginsOverride: pluginConfig.claude_code?.plugins_override,
|
||||
startWorkConfig: pluginConfig.start_work,
|
||||
}))
|
||||
: null
|
||||
|
||||
|
||||
Reference in New Issue
Block a user