Skip to content

feat: setup/teardown commands and configurable symlink dirs in project settings#23

Open
linniksa wants to merge 3 commits intojohannesjo:mainfrom
linniksa:feature/setup-and-terdown
Open

feat: setup/teardown commands and configurable symlink dirs in project settings#23
linniksa wants to merge 3 commits intojohannesjo:mainfrom
linniksa:feature/setup-and-terdown

Conversation

@linniksa
Copy link

Add per-project setup and teardown commands that run automatically when worktrees are created or removed. This lets users configure things
like npm install, environment setup, or cleanup scripts that execute in the context of each task's worktree.

Setup/teardown commands:

  • Configurable in Edit Project dialog via a reusable CommandListEditor component
  • $PROJECT_ROOT and $WORKTREE variable substitution in commands
  • Setup runs after worktree creation, before the agent starts; teardown runs before worktree removal
  • Live output displayed in a SetupBanner above the terminal with retry/skip on failure
  • Initial prompt is stashed during setup to prevent the agent from acting before setup completes

Configurable symlink directories:

  • Replace hardcoded symlink candidate list with per-project defaultSymlinkDirs setting
  • New PathSelector component with autocomplete backed by ListProjectEntries IPC (Tab to navigate into subdirectories, supports nested
    paths)
  • New-task dialog pre-fills symlink dirs from project defaults instead of scanning gitignored entries

Replace hardcoded symlink candidate list with a generic directory
browser backed by a new ListProjectEntries IPC call. The component
provides autocomplete with Tab navigation into subdirectories.
Allow configuring shell commands that run automatically in each new
worktree (setup) and before worktree removal (teardown). Commands
support $PROJECT_ROOT and $WORKTREE variable substitution. A banner
in TaskPanel shows live output and allows retry/skip on failure.
Replace checkbox-based SymlinkDirPicker with PathSelector in the
new-task dialog. Symlink dirs now come from project defaults
(defaultSymlinkDirs) instead of a hardcoded candidate list.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant