Add discoverable repo unregister command and cleanup guidance
- Dominant language
- TypeScript
- Stars
- 69.7k
- Forks
- 4.5k
- Avg merge
- 16h 8m
- Merged PRs (30d)
- 451
Description
## Summary
`orca repo add` has no discoverable symmetric remove command in the `repo` command family. Repository registrations can actually be removed with `orca project setup-delete --setup `, but an agent or operator starting from `repo add`, `repo list`, and `repo show` has no indication that this cross-namespace command is the cleanup path.
This caused real-runtime tests using randomized temporary repositories to leave persistent standalone project rows in the sidebar.
## Reproduction
1. Create a temporary Git repository.
2. Run `orca repo add --path --json`.
3. Remove the temporary directory or finish the test.
4. Run `orca repo list --json`; the registration remains.
5. Run `orca repo --help`; there is no `rm`, `remove`, or `unregister` command.
6. `orca project setup-delete --setup --json` does remove the registration, but that relationship is not exposed by the repo command family.
In one test session this left eight sidebar projects; six pointed to temporary paths that no longer existed.
## Expected behavior
Please provide a discoverable, idempotent repo unregister path, preferably `orca repo rm --repo --json`, that removes Orca registration metadata without deleting the filesystem repository. If the intended public API remains `project setup-delete`, then `repo add` output and repo help should identify the exact cleanup command and selector.
## Suggested acceptance criteria
- Unregistering removes the repo/project row from `repo list`, `project list`, and the sidebar.
- The underlying filesystem directory is preserved.
- Repeating unregister is either idempotent success or returns a specific already-absent result.
- Active terminals or worktrees fail closed with an actionable message.
- CLI tests cover add → unregister and filesystem preservation.
- Real-runtime smoke tests unregister temporary repos during cleanup.
## Compatibility notes
The implementation should preserve local, SSH, and remote-host behavior and should not assume GitHub as the provider.
Related downstream smoke coverage: https://github.com/kunchenguid/firstmate/pull/622
Contributor guide
Assessment
This issue has not been assessed yet.