Add worktree session creation to the agents overview (#45276)

## What changed

- Add a configurable `new_worktree` action, bound to `w`, for local sessions with worktree support enabled.
- Create the worktree from the cached project default branch, preferring remote `HEAD` and falling back to conventional `main` or `master` refs without fetching. Preserve the selected subdirectory and source checkout edits.
- Start and bind a blank session in the new worktree, preserving the selected approval reviewer without sending an initial turn.
- Show creation progress, pause conflicting actions, clean up unclaimed clean worktrees, and report retained checkout paths when session startup fails. Clear pending creation state on reconnect.

## Testing

Add coverage for default-branch selection, source checkout preservation, session ownership and approval settings, cleanup, startup failures, reconnect state, and busy-state rendering. Extend Git environment isolation coverage and test unrelated non-UTF-8 refs.

GitOrigin-RevId: 771ddc12d04dbf0d12e77e9c96c8386cf31e67c5
This commit is contained in:
Eric Traut authored and copyberry committed 2026-09-13 18:53:06 +00:00
1 parent 44b9011611
commit 6f39a47bb3
49 files changed
+734 -57

No files matched your search

+10
View File
@@ -4090,6 +4090,7 @@
"delete": null,
"hide": null,
"new_task": null,
"new_worktree": null,
"rename": null,
"resume": null,
"search": null,
@@ -4431,6 +4432,14 @@
],
"description": "Open a new session in the selected checkout."
},
"new_worktree": {
"allOf": [
{
"$ref": "#/definitions/KeybindingsSpec"
}
],
"description": "Open a new session in a worktree from the project default branch."
},
"rename": {
"allOf": [
{
@@ -4932,6 +4941,7 @@
"delete": null,
"hide": null,
"new_task": null,
"new_worktree": null,
"rename": null,
"resume": null,
"search": null,