claude-code icon indicating copy to clipboard operation
claude-code copied to clipboard

[BUG] TodoWrite Tool Overwrites Entire Todo List Instead of Updating Individual Items

Open DwayneSmurdon opened this issue 7 months ago • 0 comments

Summary: The TodoWrite tool consistently overwrites the entire todo list when making updates, causing loss of existing todos that users may not know how to recover.

Impact: Critical - Users lose work tracking data and may not know how to locate/restore the JSON file

Steps to Reproduce:

  1. Have an existing todo list with multiple items
  2. Use TodoWrite to mark one item as completed or add a new item
  3. Tool overwrites entire list instead of updating specific items
  4. Previous todos are lost unless user manually restores from JSON file

Expected Behavior:

  • TodoWrite should update only specific items being modified
  • Should preserve all existing todos
  • Should append new items without affecting existing ones

Actual Behavior:

  • Entire todo list gets replaced with limited subset
  • Existing todos are lost
  • Users must manually restore from JSON file at ~/.claude/todos/[session-id].json

User Impact:

  • Many users may not know how to find the todo JSON file to restore lost todos
  • Critical workflow tracking information gets lost
  • Reduces confidence in using the todo system for important work

Suggested Fix:

  • Modify TodoWrite to accept partial updates (specific item changes)
  • Add an updateTodos() method that preserves existing items
  • Add clear documentation about todo recovery if this happens

Recovery Information for Users: If you experience this bug, your todos may be recoverable from: ~/.claude/todos/[session-id]-agent-[agent-id].json

This bug has been observed multiple times during parameter chain tracking and documentation work, indicating it's a systematic issue with the TodoWrite tool implementation.

DwayneSmurdon avatar Jun 18 '25 11:06 DwayneSmurdon