Repository navigation
v1.6.0 — Git Worktree Isolation
What's New
Git Worktree Isolation
The agent now works in an isolated git worktree instead of switching your working branch. This means you stay on main (or wherever you are) while the agent implements in .para-worktrees/{task-name}/.
Key Changes
-
/para:executenow runsgit fetch origin main && git worktree add .para-worktrees/{task-name} -b para/{task-name} origin/maininstead ofgit checkout -b. The worktree path is recorded incontext/context.mdJSON metadata asworktree_path. -
/para:archiveautomatically removes worktrees on cleanup (git worktree remove+git worktree prune). Requires uncommitted changes to be committed or stashed first — no force-remove. -
/para:summarizereads diffs from the worktree usinggit -C {worktree_path} diff main...HEADinstead of the main working tree. -
/para:statusshows worktree health: active, stale reference, or orphaned. Detects and warns on out-of-sync states. -
/para:initadds.para-worktrees/to.gitignoreautomatically. -
Session hook shows active worktree count in the status line when worktrees are present.
-
--no-worktreeescape hatch falls back to the legacygit checkout -bbehavior for workflows that don't need isolation.
JSON Schema Update
worktree_path is now a first-class field in context/context.md:
{
"execution_branch": "para/task-name",
"worktree_path": ".para-worktrees/task-name",
...
}For phased plans, each phase entry also tracks branch and worktree_path (set to null until the phase is executed; cleared back to null after the phase worktree is removed).
Why Worktrees?
Previously the agent had to git checkout to a new branch, disrupting your working directory. With worktrees, the agent works in a separate directory on its own branch while your main working tree stays untouched — you can keep editing, reviewing, or running the app on main while the agent implements in the background.