Summary
The GitHub repo browser compares repo names against local filesystem paths, so the "Registered" state is effectively wrong.
Evidence
- src/components/RepoList.tsx lines 26-29 build
registeredPaths from projects.map((p) => p.local_path).
- The rendered GitHub repo rows check
registeredPaths.has(repo.name) at lines 209-217.
- A repo name like
workroot will almost never equal an absolute local path like /Users/.../workroot.
Impact
Already-registered repos still show a Clone CTA, which can lead to duplicate clone attempts and confusing UX.
Suggested fix
- Compare on a stable shared key such as
github_url, repo full name, or the final path segment derived from local_path.
- Add a small unit test around the registration-state predicate so this does not regress.
Summary
The GitHub repo browser compares repo names against local filesystem paths, so the "Registered" state is effectively wrong.
Evidence
registeredPathsfromprojects.map((p) => p.local_path).registeredPaths.has(repo.name)at lines 209-217.workrootwill almost never equal an absolute local path like/Users/.../workroot.Impact
Already-registered repos still show a
CloneCTA, which can lead to duplicate clone attempts and confusing UX.Suggested fix
github_url, repo full name, or the final path segment derived fromlocal_path.