fix(expand): Fix tag corruption in expand command - Fix tag parameter passing through MCP expand-task flow - Add tag parameter to direct function and tool registration - Fix contextGatherer method name from _buildDependencyContext to _buildDependencyGraphs - Add comprehensive test coverage for tag handling in expand-task - Ensures tagged task structure is preserved during expansion - Prevents corruption when tag is undefined. Fixes expand command causing tag corruption in tagged task lists. All existing tests pass and new test coverage added.

This commit is contained in:
Parththipan Thaniperumkarunai
2025-06-18 19:57:55 +02:00
committed by Ralph Khreish
parent 415b1835d4
commit 554c1247f2
4 changed files with 900 additions and 7 deletions

View File

@@ -26,6 +26,7 @@ import { createLogWrapper } from '../../tools/utils.js';
* @param {string} [args.prompt] - Additional context to guide subtask generation.
* @param {boolean} [args.force] - Force expansion even if subtasks exist.
* @param {string} [args.projectRoot] - Project root directory.
* @param {string} [args.tag] - Tag for the task
* @param {Object} log - Logger object
* @param {Object} context - Context object containing session
* @param {Object} [context.session] - MCP Session object
@@ -34,7 +35,8 @@ import { createLogWrapper } from '../../tools/utils.js';
export async function expandTaskDirect(args, log, context = {}) {
const { session } = context; // Extract session
// Destructure expected args, including projectRoot
const { tasksJsonPath, id, num, research, prompt, force, projectRoot } = args;
const { tasksJsonPath, id, num, research, prompt, force, projectRoot, tag } =
args;
// Log session root data for debugging
log.info(
@@ -194,7 +196,8 @@ export async function expandTaskDirect(args, log, context = {}) {
session,
projectRoot,
commandName: 'expand-task',
outputType: 'mcp'
outputType: 'mcp',
tag
},
forceFlag
);

View File

@@ -45,7 +45,8 @@ export function registerExpandTaskTool(server) {
.boolean()
.optional()
.default(false)
.describe('Force expansion even if subtasks exist')
.describe('Force expansion even if subtasks exist'),
tag: z.string().optional().describe('Tag context to operate on')
}),
execute: withNormalizedProjectRoot(async (args, { log, session }) => {
try {
@@ -73,7 +74,8 @@ export function registerExpandTaskTool(server) {
research: args.research,
prompt: args.prompt,
force: args.force,
projectRoot: args.projectRoot
projectRoot: args.projectRoot,
tag: args.tag || 'master'
},
log,
{ session }