From b96315456e4119a8514f9268fbc63ef37831e20a Mon Sep 17 00:00:00 2001 From: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta Date: Fri, 17 Jul 2026 19:21:03 -0400 Subject: [PATCH] fix(desktop): use neutral API key labels Co-authored-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta Signed-off-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta --- desktop/src/features/agents/ui/AgentConfigFields.tsx | 6 +----- .../src/features/agents/ui/AgentDefinitionDialog.tsx | 6 +----- .../features/agents/ui/AgentInstanceEditDialog.tsx | 6 +----- .../features/agents/ui/PersonaProviderApiKeyField.tsx | 2 +- desktop/tests/e2e/agent-readiness-screenshots.spec.ts | 4 ++-- desktop/tests/e2e/edit-agent.spec.ts | 2 +- .../tests/e2e/global-agent-config-screenshots.spec.ts | 4 ++-- desktop/tests/e2e/onboarding-agent-defaults.spec.ts | 3 +-- desktop/tests/e2e/persona-env-vars.spec.ts | 11 +++++++---- desktop/tests/e2e/smoke.spec.ts | 2 +- .../tests/e2e/welcome-agent-modal-screenshots.spec.ts | 2 +- 11 files changed, 19 insertions(+), 29 deletions(-) diff --git a/desktop/src/features/agents/ui/AgentConfigFields.tsx b/desktop/src/features/agents/ui/AgentConfigFields.tsx index dc4eb2d29..e3bbe403c 100644 --- a/desktop/src/features/agents/ui/AgentConfigFields.tsx +++ b/desktop/src/features/agents/ui/AgentConfigFields.tsx @@ -490,11 +490,7 @@ export function AgentConfigFields({ inheritedLabel="Provided by this build" isInherited={apiKeyInherited} isRequired={!apiKeyInherited && apiKeyValue.length === 0} - label={ - effectiveProvider === "anthropic" - ? "Anthropic API Key" - : "OpenAI API Key" - } + label="API Key" onValueChange={(value) => onConfigChange({ ...config, diff --git a/desktop/src/features/agents/ui/AgentDefinitionDialog.tsx b/desktop/src/features/agents/ui/AgentDefinitionDialog.tsx index d69028cfd..b7dfc3afe 100644 --- a/desktop/src/features/agents/ui/AgentDefinitionDialog.tsx +++ b/desktop/src/features/agents/ui/AgentDefinitionDialog.tsx @@ -916,11 +916,7 @@ export function AgentDefinitionDialog({ isInherited={apiKeyIsInherited} inheritedLabel={apiKeyInheritedLabel} isRequired={apiKeyIsRequired} - label={ - effectiveProvider === "anthropic" - ? "Anthropic API key" - : "OpenAI API key" - } + label="API Key" onValueChange={(next) => { setEnvVars((prev) => ({ ...prev, diff --git a/desktop/src/features/agents/ui/AgentInstanceEditDialog.tsx b/desktop/src/features/agents/ui/AgentInstanceEditDialog.tsx index 8be5f4719..2c7740c7b 100644 --- a/desktop/src/features/agents/ui/AgentInstanceEditDialog.tsx +++ b/desktop/src/features/agents/ui/AgentInstanceEditDialog.tsx @@ -1019,11 +1019,7 @@ export function AgentInstanceEditDialog({ isInherited={apiKeyIsInherited} inheritedLabel={apiKeyInheritedLabel} isRequired={apiKeyIsRequired} - label={ - effectiveProvider === "anthropic" - ? "Anthropic API Key" - : "OpenAI API Key" - } + label="API Key" onValueChange={(next) => { setEnvVars((prev) => ({ ...prev, diff --git a/desktop/src/features/agents/ui/PersonaProviderApiKeyField.tsx b/desktop/src/features/agents/ui/PersonaProviderApiKeyField.tsx index 17f9e2e82..164a9c19e 100644 --- a/desktop/src/features/agents/ui/PersonaProviderApiKeyField.tsx +++ b/desktop/src/features/agents/ui/PersonaProviderApiKeyField.tsx @@ -39,7 +39,7 @@ export function PersonaProviderApiKeyField({ inheritedLabel: string; /** True when the key is required and not satisfied anywhere. */ isRequired: boolean; - /** Display label, e.g. "Anthropic API Key". */ + /** Display label, e.g. "API Key". */ label: string; onValueChange: (next: string) => void; /** Current agent-local value of the secret env var. */ diff --git a/desktop/tests/e2e/agent-readiness-screenshots.spec.ts b/desktop/tests/e2e/agent-readiness-screenshots.spec.ts index 856cc6742..fd96cc2c1 100644 --- a/desktop/tests/e2e/agent-readiness-screenshots.spec.ts +++ b/desktop/tests/e2e/agent-readiness-screenshots.spec.ts @@ -180,7 +180,7 @@ test.describe("agent readiness gate screenshots", () => { await selectProvider(page, "Anthropic"); await setCustomModel(page, "claude-opus-4-5"); - await expect(page.getByLabel("Anthropic API Key")).toBeVisible(); + await expect(page.getByLabel("API Key")).toBeVisible(); await expect(page.getByTestId("persona-dialog-submit")).toBeDisabled({ timeout: 10_000, }); @@ -218,7 +218,7 @@ test.describe("agent readiness gate screenshots", () => { await openCreateDialog(page); await selectProvider(page, "Anthropic"); await setCustomModel(page, "claude-opus-4-5"); - await page.getByLabel("Anthropic API Key").fill("sk-test-api-key-for-e2e"); + await page.getByLabel("API Key").fill("sk-test-api-key-for-e2e"); await expect(page.getByTestId("persona-dialog-submit")).toBeEnabled({ timeout: 5_000, diff --git a/desktop/tests/e2e/edit-agent.spec.ts b/desktop/tests/e2e/edit-agent.spec.ts index 4b4036e66..c77278155 100644 --- a/desktop/tests/e2e/edit-agent.spec.ts +++ b/desktop/tests/e2e/edit-agent.spec.ts @@ -134,7 +134,7 @@ test.describe("edit agent dialog", () => { await pickDropdownOption(page, "edit-agent-model", "Custom model..."); await page.locator("#edit-agent-custom-model").fill("claude-opus-4-5"); // Anthropic requires a credential before save unlocks. - await page.getByLabel("Anthropic API Key").fill("sk-test-edit-agent-e2e"); + await page.getByLabel("API Key").fill("sk-test-edit-agent-e2e"); const submit = page.getByTestId("edit-agent-dialog-submit"); await expect(submit).toBeEnabled({ timeout: 10_000 }); diff --git a/desktop/tests/e2e/global-agent-config-screenshots.spec.ts b/desktop/tests/e2e/global-agent-config-screenshots.spec.ts index da4214058..127829aa6 100644 --- a/desktop/tests/e2e/global-agent-config-screenshots.spec.ts +++ b/desktop/tests/e2e/global-agent-config-screenshots.spec.ts @@ -212,7 +212,7 @@ test.describe("global agent config screenshots", () => { await openCreateDialog(page); await customizeAgentAi(page); - await expect(page.getByLabel("Anthropic API Key")).toBeVisible({ + await expect(page.getByLabel("API Key")).toBeVisible({ timeout: 10_000, }); await expect( @@ -233,7 +233,7 @@ test.describe("global agent config screenshots", () => { await openCreateDialog(page); await customizeAgentAi(page); - await expect(page.getByLabel("Anthropic API Key")).toHaveAttribute( + await expect(page.getByLabel("API Key")).toHaveAttribute( "placeholder", "Inherited from global config", ); diff --git a/desktop/tests/e2e/onboarding-agent-defaults.spec.ts b/desktop/tests/e2e/onboarding-agent-defaults.spec.ts index 3c2acae09..238820459 100644 --- a/desktop/tests/e2e/onboarding-agent-defaults.spec.ts +++ b/desktop/tests/e2e/onboarding-agent-defaults.spec.ts @@ -1338,8 +1338,7 @@ test("compact default config still persists rapid provider edits", async ({ await chooseConfigDropdownOption(page, "global-agent-provider", "anthropic"); await expect(providerSelect).toHaveAttribute("data-value", "anthropic"); - await expect(page.getByLabel("Anthropic API Key")).toBeVisible(); - await expect(page.getByLabel("OpenAI API Key")).toHaveCount(0); + await expect(page.getByLabel("API Key")).toBeVisible(); await expect(page.getByLabel("Value for DATABRICKS_HOST")).toHaveCount(0); }); diff --git a/desktop/tests/e2e/persona-env-vars.spec.ts b/desktop/tests/e2e/persona-env-vars.spec.ts index 53efa09a0..23039ee80 100644 --- a/desktop/tests/e2e/persona-env-vars.spec.ts +++ b/desktop/tests/e2e/persona-env-vars.spec.ts @@ -329,7 +329,7 @@ test("persona model options follow the selected LLM provider", async ({ await selectDropdownOption(page, llmProvider, "OpenAI"); const dialog = page.getByRole("dialog"); - await expect(dialog.getByLabel("OpenAI API Key")).toBeVisible(); + await expect(dialog.getByLabel("API Key")).toBeVisible(); await expect( dialog.getByRole("button", { name: "Advanced", exact: true }), ).toHaveAttribute("aria-expanded", "false"); @@ -342,14 +342,17 @@ test("persona model options follow the selected LLM provider", async ({ .click(); await selectDropdownOption(page, llmProvider, "Anthropic"); - await expect(dialog.getByLabel("Anthropic API Key")).toBeVisible(); - await expect(dialog.getByLabel("OpenAI API Key")).not.toBeVisible(); + await expect(dialog.getByLabel("API Key")).toBeVisible(); + await expect(model).toBeVisible(); + + await selectDropdownOption(page, llmProvider, "Gemini"); + await expect(dialog.getByLabel("API Key")).toBeVisible(); await expect(model).toBeVisible(); // Switch back to inherited defaults — per-agent provider, credential, and // model controls disappear together. await page.getByRole("tab", { name: "Use agent defaults" }).click(); await expect(llmProvider).not.toBeVisible(); - await expect(dialog.getByLabel("Anthropic API Key")).not.toBeVisible(); + await expect(dialog.getByLabel("API Key")).not.toBeVisible(); await expect(model).not.toBeVisible(); }); diff --git a/desktop/tests/e2e/smoke.spec.ts b/desktop/tests/e2e/smoke.spec.ts index d5ae2046d..ebcc45fcf 100644 --- a/desktop/tests/e2e/smoke.spec.ts +++ b/desktop/tests/e2e/smoke.spec.ts @@ -236,7 +236,7 @@ test("create agent supports parallelism and system prompt overrides", async ({ .getByRole("button", { name: "Custom model...", exact: true }) .click(); await page.getByLabel("Custom model ID").fill("claude-opus-4-5"); - await page.getByLabel("Anthropic API Key").fill("sk-test-api-key-for-e2e"); + await page.getByLabel("API Key").fill("sk-test-api-key-for-e2e"); const advancedToggle = page.getByRole("button", { name: "Advanced", diff --git a/desktop/tests/e2e/welcome-agent-modal-screenshots.spec.ts b/desktop/tests/e2e/welcome-agent-modal-screenshots.spec.ts index 043efa003..f6a18b146 100644 --- a/desktop/tests/e2e/welcome-agent-modal-screenshots.spec.ts +++ b/desktop/tests/e2e/welcome-agent-modal-screenshots.spec.ts @@ -153,7 +153,7 @@ test.describe("welcome and channel agent entry points", () => { .getByRole("button", { name: "Custom model...", exact: true }) .click(); await page.getByLabel("Custom model ID").fill("claude-opus-4-5"); - await page.getByLabel("Anthropic API Key").fill("sk-test-api-key-for-e2e"); + await page.getByLabel("API Key").fill("sk-test-api-key-for-e2e"); await expect(page.getByTestId("persona-dialog-submit")).toBeEnabled(); await page.getByTestId("persona-dialog-submit").click();