[FEATURE] BULLSHIT feature of worktree - who genius developed it?
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
- Diverged git histories
Each session creates a branch like claude/random-name. After 12+ sessions, you end up with 12+ diverged branches that are nearly impossible to merge back cleanly — --allow-unrelated-histories, rebase conflicts, force pushes become the only way out.
- Lost work
Files created in a worktree are invisible from the main project directory. If the worktree gets cleaned up, those files are gone. I lost important project documents this way — they were committed to a worktree branch but never visible in my actual project folder.
- Context loss across sessions
Key decisions and artifacts from one session live in a worktree branch. Starting a new session creates a fresh worktree that doesn't have those changes. You have to manually merge between sessions just to maintain continuity.
- No user control
There is no setting, flag, or config to disable this behavior in the Desktop app. The CLI works fine without worktrees (claude without -w), but Desktop forces it.
Proposed Solution
Add a setting in Claude Code Desktop to disable automatic worktree creation, so sessions work directly in the main project directory — the same behavior as the CLI without -w.
This should be a simple toggle: Settings → "Use git worktrees for session isolation" → OFF.
Alternative Solutions
_No response_
Priority
High - Significant impact on productivity
Feature Category
Configuration and settings
Use Case Example
Over multiple sessions, I worked with Claude to develop foundational design principles for my project — core rules that govern how the entire system reasons and operates. The session where we developed these committed the file to a worktree branch (claude/magical-moser). Session ended, I moved on.
Weeks later, the file was gone. Not in my project directory, not on main, not anywhere visible. The worktree had been cleaned up. After extensive searching through 12 session transcripts, I found the original discussion buried in a JSONL log and had to reconstruct the file manually.
If that transcript had been compacted or lost, foundational project IP would have been permanently destroyed.
Additional Context
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗