Expose parentTaskNumber in task_update and task_patch #245
Description
MCP surface for #243. Depends on #244.
Re-read TaskTools.cs before editing. It was being rewritten in parallel when this was planned — proposal wiring, plus explanation and review parameters appended to the very signatures this task changes. A stale read already cost one failed attempt.
Work
task_update:int? parentTaskNumberwith no default, placed before every defaulted parameter so the MCP schema marks it required. Note the ordering conflict: the parallel work appends optional parameters to the same list.task_patch: parseparentTaskNumberinParsePatch— acceptnullor a positive integer, reject everything else with a clear message. ExtendParsedTaskPatch.- Resolve the number to an id through a shared helper;
task_createcan reuse it. - Return the new parent:
ProjectTaskView.ParentTaskNumberis stale after a move in both tools, so the response would otherwise report the old parent.
Tool descriptions
Both need to state the new contract — required and echoed for task_update, null means top level for task_patch.
McpDiscoveryTests.cs:60 pins three phrases in the task_patch description that must survive the rewrite: "Omitted fields are preserved", "assignee null clears", "task_update remains the full replacement".