feat(dashboard): OpenAI Codex subscription card in onboarding quick start

Placed directly after the Anthropic subscription and before the API-key
options; previously reachable only under Advanced.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-07-17 23:59:58 -07:00
parent 924e0df5ab
commit 26054de697
3 changed files with 18 additions and 2 deletions

View File

@@ -0,0 +1,7 @@
---
"@runfusion/fusion": minor
---
summary: The OpenAI Codex subscription sign-in now appears in onboarding quick start, right after the Anthropic subscription.
category: feature
dev: "ModelOnboardingModal QUICK_START_PROVIDER_IDS: openai-codex inserted between anthropic-subscription and anthropic-api-key; previously it was only reachable under Advanced."

View File

@@ -266,8 +266,11 @@ function getProviderDisplayName(providerId: string): string {
FNXC:Onboarding 2026-07-03-00:00:
Onboarding quick start must show practical first-run choices beyond Anthropic, including OpenAI/ChatGPT, Google/Gemini, OpenRouter, and Ollama when those visible providers are configured.
Keep Anthropic subscription OAuth and raw Anthropic API-key auth as separate first-class cards; use the legacy `anthropic` id only as a fallback for older status payloads.
FNXC:Onboarding 2026-07-18-03:40:
The OpenAI Codex subscription card belongs in quick start (it was buried in Advanced), placed directly AFTER the Anthropic subscription and BEFORE the API-key options — subscription sign-ins are the primary first-run path, keys are the fallback.
*/
const QUICK_START_PROVIDER_IDS = ["anthropic-subscription", "anthropic-api-key", "anthropic", "openai", "google", "gemini", "openrouter", "ollama"] as const;
const QUICK_START_PROVIDER_IDS = ["anthropic-subscription", "openai-codex", "anthropic-api-key", "anthropic", "openai", "google", "gemini", "openrouter", "ollama"] as const;
const ONBOARDING_CURATED_PROVIDER_FAMILY_ORDER = [
"anthropic",

View File

@@ -651,9 +651,15 @@ describe("ModelOnboardingModal", () => {
});
it("preserves split Anthropic quick-start cards and suppresses legacy Anthropic fallback", async () => {
/*
FNXC:Onboarding 2026-07-18-03:40:
The OpenAI Codex subscription card sits in quick start directly AFTER the
Anthropic subscription and BEFORE the API-key options.
*/
mockFetchAuthStatus.mockResolvedValueOnce({
providers: [
{ id: "openai", name: "OpenAI", authenticated: false, type: "api_key" },
{ id: "openai-codex", name: "OpenAI Codex", authenticated: false, type: "oauth" },
{ id: "anthropic", name: "Anthropic", authenticated: false, type: "oauth" },
{ id: "anthropic-api-key", name: "Anthropic API Key", authenticated: false, type: "api_key" },
{ id: "anthropic-subscription", name: "Anthropic Subscription", authenticated: false, type: "oauth" },
@@ -663,7 +669,7 @@ describe("ModelOnboardingModal", () => {
render(<ModelOnboardingModal onComplete={vi.fn()} addToast={vi.fn()} projectId="proj_123" />);
const quickStartSection = await screen.findByTestId("onboarding-quick-start-providers");
expect(getProviderOrderInSection(quickStartSection)).toEqual(["anthropic-subscription", "anthropic-api-key", "openai"]);
expect(getProviderOrderInSection(quickStartSection)).toEqual(["anthropic-subscription", "openai-codex", "anthropic-api-key", "openai"]);
expect(within(quickStartSection).queryByTestId("onboarding-provider-card-anthropic")).toBeNull();
});