feat: add repository cloning to project setup

Add project can clone repositories into a chosen folder
Command palette now opens the add project flow
Clone flow supports selecting Git identities
This commit is contained in:
Bohdan Triapitsyn
2026-05-07 01:10:17 +03:00
parent fd3557e5c3
commit d764ad6872
13 changed files with 419 additions and 126 deletions
+8 -4
View File
@@ -422,7 +422,7 @@ export const dict = {
'gitView.commit.addGitmoji': 'Add gitmoji',
'gitView.commit.aiHighlights.insertAria': 'Insert aria label',
'gitView.commit.aiHighlights.insertTooltip': 'Insert tooltip',
'gitView.commit.aiHighlights.title': 'Title',
'gitView.commit.aiHighlights.title': 'Highlights',
'gitView.commit.commit': 'Commit',
'gitView.commit.commitAria': 'Commit aria label',
'gitView.commit.committing': 'Committing...',
@@ -1103,13 +1103,17 @@ export const dict = {
'directoryExplorerDialog.description': 'Choose a folder to add as a project.',
'directoryExplorerDialog.toggle.showHidden': 'Show hidden',
'directoryExplorerDialog.pathInput.placeholder': 'Enter path or select from tree...',
'directoryExplorerDialog.actions.cancel': 'Cancel',
'directoryExplorerDialog.actions.openingFinder': 'Opening...',
'directoryExplorerDialog.actions.openInFinder': 'Open in Finder',
'directoryExplorerDialog.actions.adding': 'Adding...',
'directoryExplorerDialog.actions.addProject': 'Add project',
'directoryExplorerDialog.actions.addLocalProject': 'Add local project',
'directoryExplorerDialog.actions.cloneRepository': 'Clone repository',
'directoryExplorerDialog.actions.cloneAndAdd': 'Clone & add',
'directoryExplorerDialog.actions.cloning': 'Cloning...',
'directoryExplorerDialog.actions.createAndAdd': 'Create & add',
'directoryExplorerDialog.actions.alreadyAdded': 'Already added',
'directoryExplorerDialog.clone.remoteUrlPlaceholder': 'Repository URL (HTTPS or SSH)',
'directoryExplorerDialog.browse.directories': 'Directories',
'directoryExplorerDialog.browse.loading': 'Loading directories...',
'directoryExplorerDialog.browse.empty': 'No matching directories.',
@@ -1118,13 +1122,13 @@ export const dict = {
'directoryExplorerDialog.footer.navigate': 'Navigate',
'directoryExplorerDialog.footer.select': 'Select',
'directoryExplorerDialog.footer.add': 'Add',
'directoryExplorerDialog.footer.close': 'Close',
'directoryExplorerDialog.shortcut.enter': 'Enter',
'directoryExplorerDialog.toast.unableToAccessDirectory': 'Unable to access directory',
'directoryExplorerDialog.toast.desktopDeniedAccess': 'Desktop denied directory access.',
'directoryExplorerDialog.toast.failedToOpenDirectory': 'Failed to open directory',
'directoryExplorerDialog.toast.desktopCouldNotGrantAccess': 'Desktop could not grant file access.',
'directoryExplorerDialog.toast.failedToAddProject': 'Failed to add project',
'directoryExplorerDialog.toast.cloneUrlRequired': 'Enter a repository URL before cloning.',
'directoryExplorerDialog.toast.selectValidDirectoryPath': 'Please select a valid directory path.',
'directoryExplorerDialog.toast.failedToSelectDirectory': 'Failed to select directory',
'directoryExplorerDialog.toast.unknownError': 'Unknown error occurred.',
@@ -1140,7 +1144,6 @@ export const dict = {
'directoryTree.section.pinned': 'Pinned',
'directoryTree.section.browse': 'Browse',
'aboutDialog.versionLabel': 'Version {version}',
'aboutDialog.tagline': 'Coding with agents, in a workspace built with care.',
'aboutDialog.actions.copyDiagnostics': 'Copy diagnostics',
'aboutDialog.actions.preparingDiagnostics': 'Preparing diagnostics...',
'aboutDialog.actions.diagnosticsCopied': 'Diagnostics copied',
@@ -1649,6 +1652,7 @@ export const dict = {
'commandPalette.empty.searchingFiles': 'Searching files...',
'commandPalette.item.newSession': 'New Session',
'commandPalette.item.newWorktreeDraft': 'New Worktree Draft',
'commandPalette.item.addProject': 'Add Project',
'commandPalette.item.showSessionSwitcher': 'Show Session Switcher',
'commandPalette.item.toggleSidebar': 'Toggle Sidebar',
'commandPalette.item.toggleRightSidebar': 'Toggle Right Sidebar',