Skip to content

fix(host): group worktree channels under their repository's project - #111

Merged
iamnbutler merged 1 commit into
mainfrom
glad-fjord/project-identity
Oct 5, 2026
Merged

iamnbutler merged 1 commit into
mainfrom
glad-fjord/project-identity

Conversation

@iamnbutler

Copy link
Copy Markdown
Contributor

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.

@iamnbutler
iamnbutler merged commit 26351c0 into main Oct 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant