diff --git a/pkg/workflow/action_mode.go b/pkg/workflow/action_mode.go index 6a28805281..c5ed584b27 100644 --- a/pkg/workflow/action_mode.go +++ b/pkg/workflow/action_mode.go @@ -102,3 +102,11 @@ func DetectActionMode(version string) ActionMode { actionModeLog.Printf("Detected dev mode (default): isRelease=%v, ref=%s", IsRelease(), githubRef) return ActionModeDev } + +// GetActionModeFromWorkflowData extracts the ActionMode from WorkflowData, defaulting to dev mode if nil +func GetActionModeFromWorkflowData(workflowData *WorkflowData) ActionMode { + if workflowData != nil { + return workflowData.ActionMode + } + return ActionModeDev +} diff --git a/pkg/workflow/claude_mcp.go b/pkg/workflow/claude_mcp.go index 3ba217956a..dad5045940 100644 --- a/pkg/workflow/claude_mcp.go +++ b/pkg/workflow/claude_mcp.go @@ -15,16 +15,12 @@ func (e *ClaudeEngine) RenderMCPConfig(yaml *strings.Builder, tools map[string]a // Create unified renderer with Claude-specific options // Claude uses JSON format without Copilot-specific fields and multi-line args createRenderer := func(isLast bool) *MCPConfigRendererUnified { - actionMode := ActionModeDev // Default to dev mode - if workflowData != nil { - actionMode = workflowData.ActionMode - } return NewMCPConfigRenderer(MCPRendererOptions{ IncludeCopilotFields: false, // Claude doesn't use "type" and "tools" fields InlineArgs: false, // Claude uses multi-line args format Format: "json", IsLast: isLast, - ActionMode: actionMode, + ActionMode: GetActionModeFromWorkflowData(workflowData), }) } diff --git a/pkg/workflow/codex_mcp.go b/pkg/workflow/codex_mcp.go index 26a119b936..3f094e71f1 100644 --- a/pkg/workflow/codex_mcp.go +++ b/pkg/workflow/codex_mcp.go @@ -18,16 +18,12 @@ func (e *CodexEngine) RenderMCPConfig(yaml *strings.Builder, tools map[string]an // Create unified renderer with Codex-specific options // Codex uses TOML format without Copilot-specific fields and multi-line args createRenderer := func(isLast bool) *MCPConfigRendererUnified { - actionMode := ActionModeDev // Default to dev mode - if workflowData != nil { - actionMode = workflowData.ActionMode - } return NewMCPConfigRenderer(MCPRendererOptions{ IncludeCopilotFields: false, // Codex doesn't use "type" and "tools" fields InlineArgs: false, // Codex uses multi-line args format Format: "toml", IsLast: isLast, - ActionMode: actionMode, + ActionMode: GetActionModeFromWorkflowData(workflowData), }) } diff --git a/pkg/workflow/copilot_mcp.go b/pkg/workflow/copilot_mcp.go index 2840ce6906..cfb5fb1d9d 100644 --- a/pkg/workflow/copilot_mcp.go +++ b/pkg/workflow/copilot_mcp.go @@ -18,16 +18,12 @@ func (e *CopilotEngine) RenderMCPConfig(yaml *strings.Builder, tools map[string] // Create unified renderer with Copilot-specific options // Copilot uses JSON format with type and tools fields, and inline args createRenderer := func(isLast bool) *MCPConfigRendererUnified { - actionMode := ActionModeDev // Default to dev mode - if workflowData != nil { - actionMode = workflowData.ActionMode - } return NewMCPConfigRenderer(MCPRendererOptions{ IncludeCopilotFields: true, // Copilot uses "type" and "tools" fields InlineArgs: true, // Copilot uses inline args format Format: "json", IsLast: isLast, - ActionMode: actionMode, + ActionMode: GetActionModeFromWorkflowData(workflowData), }) } diff --git a/pkg/workflow/custom_engine.go b/pkg/workflow/custom_engine.go index bcd46ceeb4..f938409a83 100644 --- a/pkg/workflow/custom_engine.go +++ b/pkg/workflow/custom_engine.go @@ -253,16 +253,12 @@ func (e *CustomEngine) RenderMCPConfig(yaml *strings.Builder, tools map[string]a // Create unified renderer with Custom engine-specific options // Custom engine uses JSON format without Copilot-specific fields and multi-line args (like Claude) createRenderer := func(isLast bool) *MCPConfigRendererUnified { - actionMode := ActionModeDev // Default to dev mode - if workflowData != nil { - actionMode = workflowData.ActionMode - } return NewMCPConfigRenderer(MCPRendererOptions{ IncludeCopilotFields: false, // Custom engine doesn't use "type" and "tools" fields InlineArgs: false, // Custom engine uses multi-line args format Format: "json", IsLast: isLast, - ActionMode: actionMode, + ActionMode: GetActionModeFromWorkflowData(workflowData), }) }