063a839790
- Add clone_mode and branch fields to tool_instances - Add ssh_key_id to git_repositories for per-repo SSH key assignment - Implement host-side git cloning with branch selection (default: main) - Mount SSH keys into containers for git operations in clone mode - Add dirty state check on clone-mode instance deletion with confirmation - Update SessionsPage with mount/clone selector, branch input, SSH key display - Add SSH key selector to repository creation form - Add dirty delete confirmation modal with changed files list - Update API schemas and endpoints for new fields - Sync delta specs to main specs (git-repo, tool-instances, repo-clone-mode) - Archive completed OpenSpec change: repo-clone-mode-with-ssh - Document git requirement for custom tool types Quality gates: Frontend typecheck and build passed OpenSpec: repo-clone-mode-with-ssh archived with all tasks complete
26 lines
1.3 KiB
Markdown
26 lines
1.3 KiB
Markdown
## Why
|
|
|
|
Repository creation already supports cloning from a remote URL, but the current UI only accepts a full URL. For the common fixed-provider case (`git.commumedia.org`), users should be able to enter `owner` and `repo` and have the app verify the repository exists before cloning. If the repository does not exist, the app should surface a clear error. Existing blank repository creation must remain available.
|
|
|
|
## What Changes
|
|
|
|
- Change the shared repository create dialog to support an SSH-only clone form with `owner` and `repo`
|
|
- Build the clone target as `git@git.commumedia.org:{owner}/{repo}.git`
|
|
- Preflight clone targets with `git ls-remote` before cloning
|
|
- Return a clear error when the repository is missing or inaccessible
|
|
- Keep the current full URL paste flow as an advanced fallback
|
|
- Keep blank repository creation as a fallback option
|
|
|
|
## Capabilities
|
|
|
|
### Modified Capabilities
|
|
|
|
- `git-repo`: Repository creation UX and clone validation reuse the existing create endpoint and clone path
|
|
|
|
## Impact
|
|
|
|
- Frontend: `repository-create-dialog.tsx`, `git-repositories.tsx`, `repositories-settings-tab.tsx`
|
|
- Backend: `git_repositories.py` create endpoint clone preflight
|
|
- Docs: repository creation guidance must reflect SSH-only owner/repo input
|
|
- Tests: add coverage for SSH repo existence checks and fallback URL behavior
|