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:
acamq
2026-03-11 19:17:55 -06:00
parent 3c5278fafb
commit f9c83cfb93
3 changed files with 5 additions and 1 deletions
+2 -1
View File
@@ -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: {
+2
View File
@@ -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 {
+1
View File
@@ -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