Desktop (Code tab): 'Change directory' for a session is only reachable via the uncommitted-changes bar — unreachable for non-git folders and clean repos
Environment
- Claude Desktop for Windows 1.25927.0 (Microsoft Store / MSIX), Code tab
- Bundled Claude Code CLI 2.1.221
- Windows 11 Pro (build 26200)
Summary
The session "Change directory" action (the new working-directory mover) is only reachable through the uncommitted-changes bar above the composer (<folder> <branch> +N −M | Commit changes). That bar only renders when the session folder is a git repository with uncommitted changes. As a result:
- Sessions whose folder is not a git repo can never reach the action — the bar never renders.
- Sessions in a clean git repo can't reach it either, until something dirties the working tree.
- The action appears and disappears as the repo gets dirty/clean (e.g. an hourly automation writing a log file makes it pop in and out), which reads as random to the user.
The action itself has no git requirement — moving a session works perfectly fine once triggered — so this looks like an entry-point visibility issue, not an intended constraint.
Steps to reproduce
- Start a local session in a folder that is not a git repository (or a clean repo). Observe there is no UI affordance anywhere (session header, sidebar context menu) to change the session's working directory.
- In that folder, run
git initand create any file (any uncommitted change). - The bar
<folder> <branch> +N −0 | Commit changesappears above the composer. - Click the folder name in the bar → menu appears: Show in Explorer / Copy path / Change directory / Open in terminal.
- Change directory opens a folder picker and works correctly: toast "Session moved to
<dir>", sidebar regroups the session, the CLI transcript is relocated to the new project directory.
Step 2 is the absurd part: users should not need to git init a folder to unlock moving a session out of it.
Expected
The Working directory menu (or at least Change directory) should be reachable regardless of git state — e.g. from the session title area or the sidebar session context menu — with the commit controls remaining conditional on dirty state as they are today.
Additional observations
main.logconfirms the underlying operation is git-agnostic:LocalSessions.changeCwd: sessionId=..., cwd=...→[CCD] Session ... moved from <old> to <new>, including trust handling for the target folder and transcript relocation.- In the renderer bundle, the change-directory hook only requires a local session, the desktop bridge (
changeCwd/browseFolder), and no desktop worktree; the git-dirty condition belongs to the changes-bar component the menu happens to be mounted on. - Reproduced consistently on multiple sessions (non-git folder: option unreachable; same folder after
git init+ 1 file: option available and working).