minds: actionable guidance when creating from a private GitHub repo#2425
Merged
Conversation
Cloning a workspace source happens locally on the user's machine; a private github.com URL previously surfaced only raw git stderr on the Creating page (and could hang on a credential prompt). Clones now run with GIT_TERMINAL_PROMPT=0 (fail fast, credential helpers still work), the backend classifies auth-shaped github.com clone failures as GIT_AUTH_REQUIRED (new optional error_kind on the create-operation status API), and the Creating page reveals a static guidance block for that kind: you need access to this repo with GitHub credentials on this computer; sign in via 'gh auth login' (linked GitHub CLI quickstart); or clone it yourself and enter the local path instead. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Same name and one-line body as the per-file copies in the FCT's bootstrap.manager and runtime_backup.runner, so the intent (never let git prompt on a terminal) is carried by the function name instead of an inline dict at the call site. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-template Applied scripts/rename_template_repo.py --apply on this branch after merging main's rename; --check reports zero live references. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Drops the git-output substring markers: substring matching is brittle across git versions and locales, and a failed github.com clone is overwhelmingly an access problem the guidance covers -- the raw git error stays visible right above the guidance for anything rarer. The classifier is now just: GitCloneError + https github.com URL. Tests consolidated accordingly; GIT_TERMINAL_PROMPT=0 fail-fast behavior unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Author
|
Noted! Got rid of the string checking and replaced it with error catching. |
…tions # Conflicts: # apps/minds/imbue/minds/desktop_client/templates_test.py
…te git with GitHub) The private-repo create-failure classification is specifically a GitHub access problem: it fires only for github.com URLs and the guidance recommends the GitHub CLI. Renaming the error kind (and the DOM id git-auth-help -> github-auth-help) so it names GitHub, not generic git. The genuinely-git plumbing (GitCloneError, _git_noninteractive_env, GIT_TERMINAL_PROMPT) is unchanged -- the clone mechanism is git; the surfaced problem is GitHub auth. 374 passed, ty clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Code-guardian catch: the per-PR changelog entry still said 'FCT bootstrap', the deprecated internal codename renamed to default-workspace-template everywhere else on this branch. (The rename script's --check misses changelog prose.) The other FCT mentions in apps/libs are pre-existing consolidated changelog history, unchanged by this branch and left as-is. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The private-repo guidance only covered github.com URLs. A failed clone of a git URL on another host (or an ssh remote) now classifies as a new GIT_AUTH_REQUIRED kind and shows the same 'looks private / set up your git credentials / or clone it locally and use a path' guidance, minus the 'gh auth login' advice (which only fits github.com). classify_creation_error now: github.com https -> GITHUB_AUTH_REQUIRED; any other remote (URL or scp-style ssh) -> GIT_AUTH_REQUIRED; local paths / bare input -> None. Second hidden #git-auth-help block + creating.js reveal; tests cover the new classifier cases and that the generic block omits gh auth login. 371 passed, ty clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Author
|
There's now a github ( |
Fixes the test_no_ruff_errors ratchet CI failure -- the new GIT_AUTH_REQUIRED classifier assertions exceeded the line length. Formatting only, no logic change. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The 2026-07-11 consolidation run on main folded this branch's dev entry into the consolidated CHANGELOG.md and deleted the per-PR file; merging that made the branch touch the 'dev' project (via blueprint/) with no entry. Restored. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
lgtm, thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Creating a workspace from a private (or nonexistent) github.com URL previously surfaced only raw git stderr on the Creating page — and before that, could hang on a credential prompt. Now:
git cloneof the workspace source runs withGIT_TERMINAL_PROMPT=0— no-credential clones fail fast with git's stable error shape (credential helpers like the macOS keychain still work). Mirrors the earlier FCT bootstrap fix.could not read Username/terminal prompts disabled/Authentication failed/Repository not found/403) as a new machine-readableerror_kind: GIT_AUTH_REQUIREDon the create-operation status API (additive, optional field).gh auth login(linked to the official GitHub CLI quickstart); or clone/download the repo locally and enter that folder's path in the form instead of the URL.Guidance is gated to github.com URLs only (the
ghadvice would be wrong elsewhere); other hosts keep the raw error. The copy is static template content gated on the error class — the backend classifies, it never generates prose.Testing
uv run pytestover the touched desktop_client modules + minds ratchets: 419 passed, 0 failed (classification matrix, a local 401-server clone test proving fast auth-shaped failure, API round-trip oferror_kind, and a page-render test asserting the block exists, is hidden by default, and carries the right copy/link).ty checkand ruff clean on touched files.Context: this is the follow-up UX for minds "inspirations" (published snapshot repos are private by default, so creating a mind from one hits this path for anyone without credentials configured) — see FCT PR #243.
🤖 Generated with Claude Code