claude-code
claude-code copied to clipboard
[BUG] TodoWrite Tool Overwrites Entire Todo List Instead of Updating Individual Items
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:
- Have an existing todo list with multiple items
- Use TodoWrite to mark one item as completed or add a new item
- Tool overwrites entire list instead of updating specific items
- 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.