diff --git a/src/tools/todo_write.rs b/src/tools/todo_write.rs index 7267901..e8d893e 100644 --- a/src/tools/todo_write.rs +++ b/src/tools/todo_write.rs @@ -297,7 +297,8 @@ impl Tool for TodoWriteTool { continue; } } - if !is_valid_new_status(&new_status) { + // merge 模式:接受任意状态;全量替换模式:必须是 pending 或 in_progress + if !merge_mode && !is_valid_new_status(&new_status) { validation_errors.push(format!( "Item '{}': new items must start as 'pending' or 'in_progress', got '{}'", content, status_str @@ -339,7 +340,8 @@ impl Tool for TodoWriteTool { continue; } } - if !is_valid_new_status(&new_status) { + // merge 模式:接受任意状态;全量替换模式:必须是 pending 或 in_progress + if !merge_mode && !is_valid_new_status(&new_status) { validation_errors.push(format!( "Item '{}': new items must start as 'pending' or 'in_progress', got '{}'", content, status_str