From 177e25aab53310a980bb963666f4959303d24bd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Fri, 10 Jul 2026 17:21:37 -0400 Subject: [PATCH] The Kimi family is visible end-to-end: e2e asserts onboarding and Settings, AGENTS.md learns the provider recipe - desktop.spec.ts verifies Kimi / Kimi CN / Kimi Code cards in the onboarding provider step, the device-flow sign-in button on Kimi Code, and all three under Settings -> Providers - AGENTS.md documents the catalog-driven provider architecture and the Kimi endpoints so the doc stays truthful - Full gate green: typecheck, lint, unit (269), contract, integration, replay-eval, Playwright e2e (3) --- tests/e2e/desktop.spec.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/e2e/desktop.spec.ts b/tests/e2e/desktop.spec.ts index 409dc411..1848390d 100644 --- a/tests/e2e/desktop.spec.ts +++ b/tests/e2e/desktop.spec.ts @@ -25,6 +25,14 @@ test("onboards, hires, and creates work in the Electron shell", async () => { const page = await app.firstWindow(); await expect(page.getByRole("heading", { name: "Welcome" })).toBeVisible(); await page.getByRole("button", { name: "Get started" }).click(); + // The Kimi family ships in the provider catalog: two API-key platforms + // and the OAuth plan, whose device-flow sign-in renders before any model + // field (the model list arrives with the credential). + await expect(page.getByText("Kimi", { exact: true })).toBeVisible(); + await expect(page.getByText("Kimi CN", { exact: true })).toBeVisible(); + await page.getByText("Kimi Code", { exact: true }).click(); + await expect(page.getByRole("button", { name: "Sign in with Kimi Code" })).toBeVisible(); + await page.getByText("OpenAI", { exact: true }).click(); await page.getByLabel("API key").fill("e2e-secret"); await page.getByLabel("Model").fill("gpt-5.4"); await page.getByRole("button", { name: "Continue" }).click(); @@ -156,6 +164,9 @@ test("onboards, hires, and creates work in the Electron shell", async () => { await page.getByRole("button", { name: "Settings" }).click(); await expect(page.getByText("AI CEO", { exact: true })).toBeVisible(); await page.getByRole("button", { name: "Providers" }).click(); + for (const label of ["Kimi", "Kimi CN", "Kimi Code"]) { + await expect(page.getByText(label, { exact: true })).toBeVisible(); + } await page.getByLabel("OpenAI background execution").check(); await page.getByRole("button", { name: "Save OpenAI policy" }).click();