fix(host): group worktree channels under their repository's project #111
- IA
The project picker listed one project per checkout path. Every Codex worktree (`~/.codex/worktrees/*/ace2`) and Ace lane that had a channel or an opened folder showed up as another `ace2` or as the lane name. All of them are the same repository.
- The host resolves each checkout to its repository's main checkout (`git worktree list`) and its GitHub remote. It caches the result for the life of the process. - `projects` returns one project per main checkout, with `repo` (owner/name). Channel listings carry `root` and `repo`, so the app groups worktree channels under that project and puts the project under its GitHub owner in the picker (`githubnext` › `ace2`). - Opening a worktree adds its main checkout. - Channel records stay as they are. A channel's `project` is still the checkout it works in (agent cwd and lane base), so existing channels made from worktrees keep working on the same code.
Part of #15. Projects are still keyed per host, so a teammate's checkout of the same repository is still a separate project.
Smoke test: against the canary catalog (29 channels across 10 checkout paths), `projects.list()` returns a single `/Users/natebutler/code/ace2` project with `repo: githubnext/ace2`. Opening `~/.codex/worktrees/desktop-actions/ace2/apps` in a scratch `ACE_HOME` saves `/Users/natebutler/code/ace2`. I didn't check the picker UI visually because the dev app couldn't connect: an older dev helper is still running on port 4141.
### Built in Ace
Yes. Made entirely in an Ace channel.
iamnbutlermerged 26351c0d8654last month on GitHub
iamnbutlerreferenced this in chore(desktop): release canary 0.0.13 #115last month on GitHub