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
1.3 KiB
1.3 KiB
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
ownerandrepo - Build the clone target as
git@git.commumedia.org:{owner}/{repo}.git - Preflight clone targets with
git ls-remotebefore 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.pycreate 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