fix(onboarding): support keyless and guided provider setup#4504
Conversation
|
Extended this existing PR in place at exact head Provider-wide follow-through:
Kimi was live-verified against the official API Keys console and quickstart. The onboarding screen now takes Moonshot/Kimi users straight to that console and the existing paste-key path. It does not advertise device login or first-class OAuth. Exact-head gates:
#4417 is still open and externally blocked on Moonshot's registered client/platform contract. No OAuth impersonation or auto-open behavior was added. |
|
Follow-up live URL audit fixed two inherited 404s on the same branch. New exact head:
The shared metadata and |
0f6041c to
1401446
Compare
|
Rebased cleanly onto exact main New exact head: Local exact-head verification passed:
The Kimi route remains API-key-only and links only to the official console/docs. Fresh exact-head CI and CodeQL are running now; I will serialize this behind #4500 and rebase once more if main advances before merge. |
Let first-run onboarding continue without saving an empty credential only for self-hosted routes whose auth mode does not require a key. Expose the complete SGLang, vLLM, and Ollama set and make the localized copy and keybinding help describe the optional-key path truthfully. Reported-by: Hmbown <101357273+Hmbown@users.noreply.github.com> Issue: #3927 Signed-off-by: Hunter B <hmbown@gmail.com>
Move credential acquisition mode, provider-owned key and docs links, and non-key guidance into the shared provider metadata so onboarding, setup, /provider, /links, and doctor cannot drift. Point Moonshot/Kimi directly at the live-verified API Keys console and quickstart while keeping first-class Kimi OAuth explicitly unavailable pending #4417. Local runtimes, Codex OAuth, xAI mixed auth, and custom endpoints now carry typed guidance instead of guessed URLs. Signed-off-by: Hunter B <hmbown@gmail.com>
Point Sakana and OpenModel credential help at their live provider consoles and current onboarding/authentication documentation. Pin the replacements in shared metadata and /links tests so the inherited 404 URLs cannot silently return. Signed-off-by: Hunter B <hmbown@gmail.com>
1401446 to
ca026e3
Compare
|
Rebased onto #4500 merge Post-rebase local gates passed: formatting/diff checks; all 390 |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Claude encountered an error after 1s —— View job I'll analyze this and get back to you. |
Summary
auth_mode = "api_key"still rejects empty input/provider,/links, setup receipts, missing-key errors, and doctor JSONRoot causes
The onboarding validator was provider-agnostic and rejected empty input before the selected route could be activated. The screen already told Ollama users that local runtimes usually need no pasted key, but the Enter handler could never reach the provider switch. The picker also omitted the other two providers that the runtime authoritatively classifies as self-hosted.
Credential acquisition had a separate drift problem: the runtime/onboarding URL table and
/linksmaintained different links and fallbacks. A missing URL could therefore be treated as a generic local route, and Kimi onboarding stopped at the platform root instead of the durable API Keys console.User impact
Fresh installs can select SGLang, vLLM, or Ollama, leave the key field empty, and continue into the normal trust/tips flow. The provider choice is persisted for restart. Local endpoints that explicitly require bearer authentication still require a non-empty key.
Hosted-provider setup now uses one exhaustive credential map. Stable provider-owned links remain plain text for the user to open deliberately; Codewhale does not auto-open a browser. Local/no-key, OAuth-only, mixed API-key/OAuth, and custom-config routes carry distinct typed guidance instead of fabricated console URLs.
For Kimi, the official quickstart says to sign in, open API Keys, create/copy a key, and keep it secret. Codewhale now points directly to Kimi API Keys, then accepts the pasted key through the normal onboarding path. First-class Kimi OAuth remains unavailable and upstream-blocked in #4417.
Credit
Reported by @Hmbown in #3927. The original signed commit remains intact and carries the machine-readable
Reported-bytrailer.Verification
Exact tested head:
0f6041c945d94ee62d48d18c75bc3c190b12f928cargo fmt --all -- --checkgit diff --checkcargo test -p codewhale-config --locked— 389 passedcargo test -p codewhale-tui --bin codewhale-tui --locked onboarding— 37 passed/links, setup, and doctor testscargo clippy -p codewhale-tui --bin codewhale-tui --locked -- -D warningscargo clippy -p codewhale-config -p codewhale-tui --all-targets --locked -- -D warningsResidual scope
/providerand configuration.Refs #3927
Refs #4417