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
- 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