Skip to content

fix(app): tell apart projects whose folders share a name - #398

Merged
iamnbutler merged 2 commits into
mainfrom
project-names
Oct 15, 2026
Merged

iamnbutler merged 2 commits into
mainfrom
project-names

Conversation

@iamnbutler

Copy link
Copy Markdown
Contributor

Fixes #395.

Projects that would show the same label now get the fewest trailing parent folders that tell them apart, VS Code-style (ace2 — code, ace2 — foo, ace2 — bar). A GitHub project adds its owner instead, because its checkout isn't its identity. A unique name stays the bare folder name. projects() computes the label once over the full merged project list (AppProject.label), after Git worktrees have joined their main checkout and GitHub checkouts have merged by repository, so only distinct projects can collide. Every surface reads that label: the project picker (rows and trigger), the sidebar header, All Projects sections and teammates' sections, Cmd+K palette groups and "New Channel in …", the dashboard, the GitHub sidebars, and the setup and init prompts. The picker shows each checkout's full path on hover (path on host for another host's checkout).

Grouping worktrees under their repository is still an open design question and isn't part of this change.

Smoke-tested with a source ace serve --loopback host (own ACE_HOME, stub tailscale) that had projects in …/code/ace2, …/wt/foo/ace2, …/wt/bar/ace2 and …/other/solo. In headless Chromium, the picker, All Projects sidebar and palette showed ace2 — code / ace2 — foo / ace2 — bar / solo, each with its full path as the hover title.

Built in Ace

No — built with Claude Code outside Ace by an overnight issue watcher, because this Mac's Ace Canary is a participant in the running two-person study (#218); dogfooding gap tracked in #5.

Projects that would show the same label now add the fewest trailing parent
folders that distinguish them (a GitHub project adds its owner), computed once
over the full project list, and the picker shows each checkout's full path on
hover. The picker, sidebar header, All Projects sections, palette groups,
dashboard and setup dialogs all read the same label.

Why: apps/app/src/projects.ts#function disambiguate | labels are computed over the full merged project list so every surface shows the same distinct name
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.

Projects with the same folder name are indistinguishable in the picker

1 participant