Summary
The project settings modal is supposed to include a "Worktree Folder" field (backed by projects.worktree_folder in the
DB, wired through the projects:update command) that lets a user override where a project's git worktrees are created —
either nested at /worktrees/ (default) or at a custom absolute path. This field is present in the bundled
frontend code but I could not locate it anywhere in the actual running Settings UI.
Environment
- Pane version: 2.4.28
- Platform: linux (packaged AppImage)
- Daemon mode: headless (--daemon-headless), no display attached
- Project affected: existing saved repo, monorepo with a package manager workspace setup (yarn), no prior
worktree_folder value set
Steps to reproduce
- Open an existing saved project in Pane.
- Open that project's Settings.
- Look for a way to change where new worktrees for this project are created (e.g. a "Worktree Folder" input, similar to
the Run Script / Build Script / Archive Script / Open IDE Command fields already in that modal).
Expected behavior
A "Worktree Folder" text input (with a "Browse" button opening an OS folder picker titled "Select Worktree Directory")
should appear in the project settings modal, allowing the user to set an absolute path that overrides the default
/worktrees/ location for that project's future worktrees.
Actual behavior
No such field is visible in the Settings UI. There is no apparent way to set or clear worktree_folder through the app.
Impact
This is not just a missing-preference inconvenience — the default location actively breaks dependency installs in the
main repo.
Because Pane's default worktree_folder nests new worktrees inside the repo itself (/worktrees/), each
worktree ends up sitting under the main repo's own directory tree. For a yarn/workspace-based monorepo, this means every
worktree — which is itself a checkout of the same package.json files — gets picked up by yarn's workspace globbing
(e.g. packages/*, or in this case anything under the repo root) as if it were an additional workspace package.
The practical result: running yarn install (or equivalent) in the main repo fails or produces duplicate package name
errors, because yarn now sees the same package name declared twice — once from the real source tree, and once from the
nested worktree copy sitting a few directories down (/worktrees//package.json, etc). This breaks
installs in the main repo any time a worktree exists under it with the default settings, which is the out-of-the-box
behavior for every project until this field is used to relocate worktrees outside the repo tree (e.g. to ~/worktrees or
/tmp/worktrees).
Since the UI control for changing this default is missing/unreachable, there is no supported way to avoid this failure
mode without directly editing the SQLite database.
Summary
The project settings modal is supposed to include a "Worktree Folder" field (backed by projects.worktree_folder in the
DB, wired through the projects:update command) that lets a user override where a project's git worktrees are created —
either nested at /worktrees/ (default) or at a custom absolute path. This field is present in the bundled
frontend code but I could not locate it anywhere in the actual running Settings UI.
Environment
worktree_folder value set
Steps to reproduce
the Run Script / Build Script / Archive Script / Open IDE Command fields already in that modal).
Expected behavior
A "Worktree Folder" text input (with a "Browse" button opening an OS folder picker titled "Select Worktree Directory")
should appear in the project settings modal, allowing the user to set an absolute path that overrides the default
/worktrees/ location for that project's future worktrees.
Actual behavior
No such field is visible in the Settings UI. There is no apparent way to set or clear worktree_folder through the app.
Impact
This is not just a missing-preference inconvenience — the default location actively breaks dependency installs in the
main repo.
Because Pane's default worktree_folder nests new worktrees inside the repo itself (/worktrees/), each
worktree ends up sitting under the main repo's own directory tree. For a yarn/workspace-based monorepo, this means every
worktree — which is itself a checkout of the same package.json files — gets picked up by yarn's workspace globbing
(e.g. packages/*, or in this case anything under the repo root) as if it were an additional workspace package.
The practical result: running yarn install (or equivalent) in the main repo fails or produces duplicate package name
errors, because yarn now sees the same package name declared twice — once from the real source tree, and once from the
nested worktree copy sitting a few directories down (/worktrees//package.json, etc). This breaks
installs in the main repo any time a worktree exists under it with the default settings, which is the out-of-the-box
behavior for every project until this field is used to relocate worktrees outside the repo tree (e.g. to ~/worktrees or
/tmp/worktrees).
Since the UI control for changing this default is missing/unreachable, there is no supported way to avoid this failure
mode without directly editing the SQLite database.