feat(welcome): initialize a non-repo folder as a project (T-489)

Closes the new-project story (T-486). The dead-end "not a git repo" dialog now
offers to initialize the folder: project.init runs git init + a non-clobbering
scaffold, then opens + announces on projectCreatedChannel so the account
roadblock fires — the same path a brand-new project takes. Adds initExistingProject
+ the `clide project init [--dir]` verb (default: the current workspace).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-28 08:42:02 +02:00
co-authored by Claude Opus 4.8
parent 25430686cc
commit a46677facf
10 changed files with 198 additions and 31 deletions
+3 -1
View File
@@ -35,6 +35,8 @@
"button.opening": { "translation": "Opening…" },
"button.ok": { "translation": "OK" },
"dialog.notRepo.title": { "translation": "No git repo found" },
"dialog.notRepo.body": { "translation": "A clide project root requires a git repository." },
"dialog.notRepo.body": { "translation": "A clide project needs a git repository. Initialize this folder as one?" },
"dialog.notRepo.initialize": { "translation": "Initialize project" },
"button.initializing": { "translation": "Initializing…" },
"command.workspace.open-project": { "translation": "Workspace: Open project…" }
}
+3 -1
View File
@@ -35,6 +35,8 @@
"button.opening": { "translation": "Openen…" },
"button.ok": { "translation": "OK" },
"dialog.notRepo.title": { "translation": "Geen git-repo gevonden" },
"dialog.notRepo.body": { "translation": "Een clide-projecthoofdmap vereist een git-repository." },
"dialog.notRepo.body": { "translation": "Een clide-project heeft een git-repository nodig. Deze map als project initialiseren?" },
"dialog.notRepo.initialize": { "translation": "Project initialiseren" },
"button.initializing": { "translation": "Initialiseren…" },
"command.workspace.open-project": { "translation": "Werkruimte: Project openen…" }
}