diff --git a/AgentCompany-New/src/renderer/src/app/Onboarding.tsx b/AgentCompany-New/src/renderer/src/app/Onboarding.tsx
index 5286f969..0b746283 100644
--- a/AgentCompany-New/src/renderer/src/app/Onboarding.tsx
+++ b/AgentCompany-New/src/renderer/src/app/Onboarding.tsx
@@ -60,7 +60,7 @@ export function Onboarding({
providerKey: firstProvider.key,
providerSecret: "",
providerBaseUrl: "",
- providerModel: firstProvider.defaultModel ?? firstProvider.models[0]?.id ?? "",
+ providerModel: "",
goalTitle: "",
goalDescription: "",
});
@@ -159,7 +159,7 @@ export function Onboarding({
{selectedProvider.label}
-
{draft.providerModel}
+ {draft.providerModel &&
{draft.providerModel}}
We never embed the key in the build. Credentials encrypt locally via OS-protected storage.
@@ -264,7 +264,7 @@ function ProviderStep({
className={`option-card ${draft.providerKey === provider.key ? "active" : ""}`.trim()}
onClick={() => onChange({
providerKey: provider.key,
- providerModel: provider.defaultModel ?? provider.models[0]?.id ?? "",
+ providerModel: "",
providerSecret: "",
providerBaseUrl: "",
})}
@@ -301,8 +301,11 @@ function ProviderCredentialFields({
const [loading, setLoading] = useState(false);
const [loadError, setLoadError] = useState
(null);
- const models = fetched ?? selected.models;
- const canLoad = isCustom ? Boolean(draft.providerBaseUrl.trim() && draft.providerSecret.trim()) : Boolean(draft.providerSecret.trim());
+ const hasCredential = isOAuthLike
+ ? Boolean(draft.providerSecret.trim())
+ : isCustom
+ ? Boolean(draft.providerBaseUrl.trim() && draft.providerSecret.trim())
+ : Boolean(draft.providerSecret.trim());
const loadModels = async (secret: string) => {
setLoading(true);
@@ -347,7 +350,7 @@ function ProviderCredentialFields({
className="input"
value={draft.providerBaseUrl}
placeholder={selected.customEndpoint === "openai" ? "https://host/v1" : "https://host"}
- onChange={(event) => onChange({ providerBaseUrl: event.target.value })}
+ onChange={(event) => onChange({ providerBaseUrl: event.target.value, providerModel: "" })}
/>
@@ -356,7 +359,7 @@ function ProviderCredentialFields({
type="password"
autoComplete="off"
value={draft.providerSecret}
- onChange={(event) => onChange({ providerSecret: event.target.value })}
+ onChange={(event) => onChange({ providerSecret: event.target.value, providerModel: "" })}
/>
>
@@ -367,31 +370,38 @@ function ProviderCredentialFields({
type="password"
autoComplete="off"
value={draft.providerSecret}
- onChange={(event) => onChange({ providerSecret: event.target.value })}
+ onChange={(event) => onChange({ providerSecret: event.target.value, providerModel: "" })}
/>
)}
{!isOAuthLike && (
-
);
}
diff --git a/AgentCompany-New/tests/e2e/desktop.spec.ts b/AgentCompany-New/tests/e2e/desktop.spec.ts
index e916aaf2..be05e6dd 100644
--- a/AgentCompany-New/tests/e2e/desktop.spec.ts
+++ b/AgentCompany-New/tests/e2e/desktop.spec.ts
@@ -22,6 +22,7 @@ test("onboards, hires, and creates work in the Electron shell", async () => {
await expect(page.getByRole("heading", { name: "Welcome" })).toBeVisible();
await page.getByRole("button", { name: "Get started" }).click();
await page.getByLabel("API key").fill("e2e-secret");
+ await page.getByLabel("Model").fill("gpt-5.4");
await page.getByRole("button", { name: "Continue" }).click();
await page.getByLabel("Company name").fill("Acme Operations");
await page.getByLabel("Your name").fill("Dana Lee");
diff --git a/AgentCompany-New/tests/e2e/screenshots.spec.ts b/AgentCompany-New/tests/e2e/screenshots.spec.ts
index a58f5cbb..31b696b0 100644
--- a/AgentCompany-New/tests/e2e/screenshots.spec.ts
+++ b/AgentCompany-New/tests/e2e/screenshots.spec.ts
@@ -21,6 +21,7 @@ test("captures every page for visual review", async () => {
await page.getByRole("button", { name: "Get started" }).click();
await page.screenshot({ path: join(outDir, "01-onboarding-provider.png"), fullPage: false });
await page.getByLabel("API key").fill("local-dev-key");
+ await page.getByLabel("Model").fill("gpt-5.4");
await page.getByRole("button", { name: "Continue" }).click();
await page.getByLabel("Company name").fill("OrbitOps");