Where does the bug appear (feature/product)?
Cursor CLI
Describe the Bug
- Bug 1 (history overwrite): Creating a new plan in the same session overwrites the previous file while keeping the old filename — impossible to access previous versions.
 - Bug 2 (TODO duplicates): Building from new plans introduces duplicate TODOs, including already completed tasks that should stay done.
 
Steps to Reproduce
Current Behavior
- When user creates Plan A, then Plan B in the same chat → file 
.cursor/plans/cursor-{id}.plan.mdgets overwritten with Plan B content, but keeps the original filename/ID from Plan A. - When Building from a new plan that contains similar tasks to a previous plan → TODO list shows duplicates; completed tasks reappear as pending.
 
Expected Behavior
Expected Behavior
- Each plan version should be saved as a separate file with unique timestamp.
 - Building should merge TODOs intelligently: no duplicates, preserve completion status.
 
Operating System
Windows 10/11
Current Cursor Version (Menu → About Cursor → Copy)
Version: 1.7.52 (system setup)
VSCode Version: 1.99.3
Commit: 9675251a06b1314d50ff34b0cbe5109b78f848c0
Additional Information
Impact
- High: Users lose access to previous plans; manual cleanup of duplicate TODOs is time-consuming and error-prone.
 
Requirements to Fix
BUG-1: Plan History Preservation
- BUG-1.1: Save each new plan as 
.cursor/plans/{YYYYMMDD_hhmmss}_{slug}.plan.md. - BUG-1.2: Add frontmatter fields: 
plan_id(UUID),session_id(chat ID),created_utc,slug,schema_version. - BUG-1.3: Provide “Plan History” UI: list all versions per session, show date/slug/TODO count/progress.
 - BUG-1.4: Support version comparison (diff by sections and TODOs: added/changed/removed).
 - BUG-1.5: Maintain 
latestsymlink/alias pointing to most recent plan. 
BUG-2: TODO Deduplication on Building
- BUG-2.1: Implement merge by key: 
todo_id(if exists) orsha256(normalized_text + tags + scope + source_path). - BUG-2.2: On key match, merge statuses by priority: 
done>in_progress>pending. - BUG-2.3: Never revive 
donetasks in active lists; hide/merge duplicates. - BUG-2.4: When match confidence is low (text significantly changed), prompt user for confirmation.
 - BUG-2.5: Show counter in Building dialog: “merged X, hidden Y, added Z”.
 
Data Model
- Identifiers: 
plan_id,todo_id— UUID v4;session_id— chat identifier. - TODO text normalization for hash: trim, lowercase, collapse whitespace, remove technical suffixes (e.g., status markers in parentheses).
 - Schema version: 
schema_version: 1. 
UX for Bug Fixes
- UX-BUG-1: “Plan History” screen with list, search, diff view, actions: “Open”, “Compare”, “Make Current”.
 - UX-BUG-2: Building dialog with “TODO Deduplication” toggle and merge results preview.
 - UX-BUG-3: TODO list shows only unique active tasks; duplicates accessible via “Show Merged” filter.
 
Acceptance Criteria
- AC-BUG-1: Creating 3 consecutive plans saves 3 separate files; 
latestpoints to most recent; all accessible in history. - AC-BUG-2: Repeated Building adds zero duplicates of previously completed/identical tasks; counter reflects actual merge results.
 - AC-BUG-3: Version diff correctly shows added/removed/modified TODOs between any two versions.
 
Does this stop you from using Cursor
No - Cursor works, but with this issue