feat(desktop): base-branch picker for new worktree dialog

The sidebar "New worktree" button branched off whatever HEAD you were
on — now a filterable Popover+Command combobox lets you pick any local
or remote-tracking branch as the base, defaulting to origin/HEAD.

Backend listBaseBranches() queries refs/heads + refs/remotes via
for-each-ref, flags origin/HEAD (falling back to the local default for
no-remote repos). Mirrored on the Python REST API side
(base_branch_list + /api/git/base-branches route).
This commit is contained in:
ethernet 2026-07-10 13:40:23 -04:00
parent 2627933f33
commit 6f7ee72be5
16 changed files with 390 additions and 19 deletions

View file

@ -2333,6 +2333,11 @@ async def git_branches_route(path: str):
return {"branches": await _git_op(_web_git.branch_list, _git_path(path))}
@app.get("/api/git/base-branches")
async def git_base_branches_route(path: str):
return {"branches": await _git_op(_web_git.base_branch_list, _git_path(path))}
@app.get("/api/git/review/list")
async def git_review_list_route(path: str, scope: str = "uncommitted", base: Optional[str] = None):
return await _git_op(_web_git.review_list, _git_path(path), scope, base)