Collection new-session flow treats parent folder as a Git repository
- Dominant language
- No language data
- Stars
- 2.1k
- Forks
- 153
- PR merge metrics
- No merged PRs in 30d
Description
## Affected version
GitHub Copilot app 1.1.14 on macOS 26.6.2.
## What happened?
A parent folder with no `.git` directory contains three direct child Git repositories, all on `main`. After adding the parent through **Projects -> + -> Open folder**, the app correctly registers it as a collection.
Opening **New session** for the collection shows generic single-repository controls (Project: collection name, Workspace: New worktree, Branch: main). The child repositories are not listed, so their branches and checkout modes cannot be selected.
Logs show the branch resolver targeting the non-Git parent:
```
Failed to get current branch path=~/gitrepos/spec-forge-all
error=git ["symbolic-ref", "HEAD"] failed:
fatal: not a git repository (or any of the parent directories): .git
```
The same failure occurs for `git worktree list`, `for-each-ref`, and `git fetch` against the parent.
## Steps to reproduce
1. Create a parent folder containing multiple direct child Git repositories, with no `.git` at the parent.
2. Add the parent using **Projects -> + -> Open folder**.
3. Click **New session** for the collection.
4. Observe one branch selector for the parent and no child-repository list.
## Expected behavior
Enumerate collection members and allow branch/checkout selection for each child. Run Git branch commands against each child, not the parent folder.
## Additional context
**Local repository** is a partial workaround but does not restore isolated multi-repository worktrees or per-repository branch selection. Related but narrower: #786 covers per-repository default branches.
Contributor guide
Research direction
Start by tracing the New session flow for a collection and the branch resolver shown in the logs, then reproduce with a parent folder containing three direct child repositories and no parent .git directory. Done means the child repositories are listed with per-repository branch and checkout choices, and Git branch, worktree, ref, and fetch commands run against each child rather than the parent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git
- Domain
- desktop, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100