diff --git a/.changeset/petite-ideas-grab.md b/.changeset/petite-ideas-grab.md new file mode 100644 index 00000000..6ed231d5 --- /dev/null +++ b/.changeset/petite-ideas-grab.md @@ -0,0 +1,5 @@ +--- +"task-master-ai": patch +--- + +Fix Claude Code settings validation for pathToClaudeCodeExecutable diff --git a/scripts/modules/config-manager.js b/scripts/modules/config-manager.js index 95a9f284..c8a5033e 100644 --- a/scripts/modules/config-manager.js +++ b/scripts/modules/config-manager.js @@ -310,6 +310,7 @@ function validateProviderModelCombination(providerName, modelId) { function validateClaudeCodeSettings(settings) { // Define the base settings schema without commandSpecific first const BaseSettingsSchema = z.object({ + pathToClaudeCodeExecutable: z.string().optional(), maxTurns: z.number().int().positive().optional(), customSystemPrompt: z.string().optional(), appendSystemPrompt: z.string().optional(), diff --git a/src/profiles/roo.js b/src/profiles/roo.js index a73944c2..2c23f933 100644 --- a/src/profiles/roo.js +++ b/src/profiles/roo.js @@ -14,20 +14,23 @@ function enhanceRooMCPConfiguration(mcpPath) { log('warn', `[Roo] MCP configuration file not found at ${mcpPath}`); return; } - + try { // Read the existing configuration const mcpConfig = JSON.parse(fs.readFileSync(mcpPath, 'utf8')); - + if (mcpConfig.mcpServers && mcpConfig.mcpServers['task-master-ai']) { const server = mcpConfig.mcpServers['task-master-ai']; - + // Add Roo-specific timeout enhancement for long-running AI operations server.timeout = 300; - + // Write the enhanced configuration back fs.writeFileSync(mcpPath, formatJSONWithTabs(mcpConfig) + '\n'); - log('debug', `[Roo] Enhanced MCP configuration with timeout at ${mcpPath}`); + log( + 'debug', + `[Roo] Enhanced MCP configuration with timeout at ${mcpPath}` + ); } else { log('warn', `[Roo] task-master-ai server not found in MCP configuration`); }