Skip to content

"Worktree Folder" project setting exists in code but is not visible/reachable in the Settings UI #340

Description

@agarwalvaibhav0211

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

  1. Open an existing saved project in Pane.
  2. Open that project's Settings.
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions