Summary
Supacode’s default worktree base-directory identity is not unique across repositories. It derives from repository basename, so different repos with the same folder name can collide.
User-visible problems
- Two different repos can map to the same
~/.supacode/repos/<name> base directory.
- Worktrees from unrelated repos can be mixed under the same parent.
- Worktree creation/listing/removal can become ambiguous or behave unexpectedly.
Reproduction
- Have two different git repositories with the same last path component, e.g.:
/Users/me/src/org-a/app
/Users/me/src/org-b/app
- Add both repositories to Supacode.
- Create worktrees in each repository.
- Observe both repos targeting the same Supacode base path under
~/.supacode/repos/app.
Expected
- Different repository roots should always map to different Supacode worktree base directories by default.
- No manual configuration should be required to avoid collisions.
Actual
- Default naming is basename-based, so repos that share a basename collide.
- Current manual
repositoryName override can work around this, but default behavior remains collision-prone.
Why this matters
This breaks common worktree layouts (including bare-repo + .bare setups) and makes repository identity fragile in real-world monorepo/multi-org directory structures.
Suggested direction
Use a deterministic unique default directory identity derived from repository root (or remote identity), while keeping a separate user-facing display name.
Summary
Supacode’s default worktree base-directory identity is not unique across repositories. It derives from repository basename, so different repos with the same folder name can collide.
User-visible problems
~/.supacode/repos/<name>base directory.Reproduction
/Users/me/src/org-a/app/Users/me/src/org-b/app~/.supacode/repos/app.Expected
Actual
repositoryNameoverride can work around this, but default behavior remains collision-prone.Why this matters
This breaks common worktree layouts (including bare-repo +
.baresetups) and makes repository identity fragile in real-world monorepo/multi-org directory structures.Suggested direction
Use a deterministic unique default directory identity derived from repository root (or remote identity), while keeping a separate user-facing display name.