fix(desktop): inline actionable clone errors in onboarding project step
Merged
KI
3mo ago+96+96+01234567890123456789-14-14-01234567890123456789
Part of SUPER-1729 — https://linear.app/superset-sh/issue/SUPER-1729
Onboarding step 2's "Clone a repo" card used to surface clone failures as a sonner toast of raw git stderr that fades in ~4s, with no hint that private repos 404 when GitHub CLI isn't signed in, and no retry affordance.
Changes
- Clone failures now render as a persistent inline error under the clone input, cleared on the next submit or input edit. Error text is
select-text cursor-textper the renderer's selectable-error rule. - stderr matching "Repository not found", "Authentication failed", "could not read Username", or "Permission denied (publickey)" maps to "Couldn't access this repository — if it's private, sign in to GitHub CLI first." plus a Sign in to GitHub CLI button that opens the existing
GhAuthDialogon this step; the entered URL stays intact for an immediate retry. Unmatched errors show their raw message inline instead of a toast. - The "host service isn't ready" early-return also moved from toast to the same inline slot.
- Clone input placeholder changed from the SSH example to
https://github.com/org/repo.git(SSH keys are an unchecked prerequisite).
Other cards (create, open folder, template), step 1, GhAuthDialog internals, and Continue/navigation logic are untouched.
Verification
bun run lint:fix+bun run lintexit 0apps/desktopbun run typecheckpasses
Summary by CodeRabbit
-
New Features
- Added GitHub authentication support during project cloning.
- Added an authentication dialog for eligible clone failures.
- Updated the clone URL placeholder to use HTTPS.
-
Bug Fixes
- Improved handling and messaging for authentication-related clone errors.
- Displayed local-host readiness and clone failures inline.
- Cleared previous errors when the clone input changes.
Screenshot evidence (CDP-verified)
Before (SUPER-1729 walkthrough): raw git stderr in a toast that auto-dismissed in ~4s —
After:
| Behavior | Screenshot |
|---|---|
| Persistent inline error with cause + sign-in action, URL preserved | ![]() |
| Still present 12s later (no auto-dismiss, zero toasts) | ![]() |
| Sign in to GitHub CLI opens the dialog right on step 2 | ![]() |
| URL + error intact after dialog close, ready to retry | ![]() |
| Error clears on input edit; HTTPS placeholder | ![]() |
Images live on the evidence/super-1729 branch (never merge; deletable after the PRs land).




