From 0b190b717c862d8e96e830a8f17c262c15d8ab23 Mon Sep 17 00:00:00 2001 From: oudecheng <13802883547@139.com> Date: Fri, 12 Jun 2026 16:12:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20merge=E6=A8=A1=E5=BC=8F=E4=B8=8B?= =?UTF-8?q?=E6=96=B0item=E6=8E=A5=E5=8F=97=E4=BB=BB=E6=84=8Fstatus?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E5=86=8D=E9=99=90=E5=88=B6pending/in=5Fprogr?= =?UTF-8?q?ess?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 全量替换模式保持原有限制。merge语义就是信任agent传入的状态。 Co-Authored-By: Claude Opus 4.8 --- src/tools/todo_write.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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