Windows: project registry double-registers every repo (picker path vs git-derived path), duplicating branch-changes cards

Resolved 💬 2 comments Opened Jul 8, 2026 by zaynelov Closed Jul 8, 2026

Environment

  • Claude Code desktop app on Windows 11 Enterprise (10.0.26200)

Bug
The projects map in ~/.claude.json is keyed by the raw path string. The folder picker registers C:\src\X (backslashes); the app's git layer registers C:/src/X (forward slashes), because git-for-Windows returns forward-slash paths (git rev-parse --show-toplevel, git worktree list). Every repo used on the machine ends up with both entries (verified on 6 different repos), and the UI renders the branch-vs-default-branch card once per entry - two identical +N -M | Commit changes rows for the same repo.

Verification

  • The card's diff numbers exactly match git diff master...HEAD (confirmed twice at different branch states).
  • Removing the duplicate key from ~/.claude.json (with every Claude process closed) does not stick - the app re-creates the forward-slash entry within seconds of the next launch.
  • The duplication survives: deleting sessions, app restarts, deleting and re-creating the local branch, and a full re-clone of the repository.

Expected
Normalize project keys (path separators + drive-letter case) before insert/lookup, or match keys separator-/case-insensitively on Windows.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗