diff --git a/CHANGELOG.md b/CHANGELOG.md index fc721e5cb0a..740e0654008 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ Docs: https://docs.openclaw.ai - Microsoft Teams/config: accept the existing `welcomeCard`, `groupWelcomeCard`, `promptStarters`, and feedback/reflection keys in strict config validation so already-supported Teams runtime settings stop failing schema checks. (#54679) Thanks @gumclaw. - Agents/status: use provider-aware context window lookup for fresh Anthropic 4.6 model overrides so `/status` shows the correct 1.0m window instead of an underreported shared-cache minimum. (#54796) Thanks @neeravmakwana. - CLI/message send: write manual `openclaw message send` deliveries into the resolved agent session transcript again by always threading the default CLI agent through outbound mirroring. (#54187) Thanks @KevInTheCloud5617. +- CLI/onboarding: show the Kimi Code API key option again in the Moonshot setup menu so the interactive picker includes all Kimi setup paths together. Fixes #54412 Thanks @sparkyrider ## 2026.3.24 diff --git a/extensions/kimi-coding/index.ts b/extensions/kimi-coding/index.ts index b222ba3592a..f5d58b14df0 100644 --- a/extensions/kimi-coding/index.ts +++ b/extensions/kimi-coding/index.ts @@ -22,7 +22,7 @@ export default definePluginEntry({ createProviderApiKeyAuthMethod({ providerId: PROVIDER_ID, methodId: "api-key", - label: "Kimi API key (subscription)", + label: "Kimi Code API key (subscription)", hint: "Kimi K2.5 + Kimi", optionKey: "kimiCodeApiKey", flagName: "--kimi-code-api-key", @@ -38,10 +38,10 @@ export default definePluginEntry({ noteTitle: "Kimi", wizard: { choiceId: "kimi-code-api-key", - choiceLabel: "Kimi API key (subscription)", + choiceLabel: "Kimi Code API key (subscription)", groupId: "moonshot", groupLabel: "Moonshot AI (Kimi K2.5)", - groupHint: "Kimi K2.5 + Kimi", + groupHint: "Kimi K2.5", }, }), ], diff --git a/extensions/kimi-coding/openclaw.plugin.json b/extensions/kimi-coding/openclaw.plugin.json index 9d2ba7f69bb..3558a545d5e 100644 --- a/extensions/kimi-coding/openclaw.plugin.json +++ b/extensions/kimi-coding/openclaw.plugin.json @@ -10,14 +10,14 @@ "provider": "kimi", "method": "api-key", "choiceId": "kimi-code-api-key", - "choiceLabel": "Kimi Code API key", - "groupId": "kimi-code", - "groupLabel": "Kimi Code", - "groupHint": "Dedicated coding endpoint", + "choiceLabel": "Kimi Code API key (subscription)", + "groupId": "moonshot", + "groupLabel": "Moonshot AI (Kimi K2.5)", + "groupHint": "Kimi K2.5", "optionKey": "kimiCodeApiKey", "cliFlag": "--kimi-code-api-key", "cliOption": "--kimi-code-api-key ", - "cliDescription": "Kimi Code API key" + "cliDescription": "Kimi Code API key (subscription)" } ], "configSchema": { diff --git a/src/plugins/bundled-plugin-metadata.generated.ts b/src/plugins/bundled-plugin-metadata.generated.ts index 1f03f323f4d..4eadba53810 100644 --- a/src/plugins/bundled-plugin-metadata.generated.ts +++ b/src/plugins/bundled-plugin-metadata.generated.ts @@ -1417,14 +1417,14 @@ export const GENERATED_BUNDLED_PLUGIN_METADATA = [ provider: "kimi", method: "api-key", choiceId: "kimi-code-api-key", - choiceLabel: "Kimi Code API key", - groupId: "kimi-code", - groupLabel: "Kimi Code", - groupHint: "Dedicated coding endpoint", + choiceLabel: "Kimi Code API key (subscription)", + groupId: "moonshot", + groupLabel: "Moonshot AI (Kimi K2.5)", + groupHint: "Kimi K2.5", optionKey: "kimiCodeApiKey", cliFlag: "--kimi-code-api-key", cliOption: "--kimi-code-api-key ", - cliDescription: "Kimi Code API key", + cliDescription: "Kimi Code API key (subscription)", }, ], }, diff --git a/src/plugins/contracts/registry.contract.test.ts b/src/plugins/contracts/registry.contract.test.ts index fb32d20b53b..3d8e8ef3ca3 100644 --- a/src/plugins/contracts/registry.contract.test.ts +++ b/src/plugins/contracts/registry.contract.test.ts @@ -130,6 +130,24 @@ describe("plugin contract registry", () => { ).toEqual(bundledWebSearchPluginIds); }); + it("keeps Kimi Coding onboarding grouped under Moonshot", () => { + const kimi = loadPluginManifestRegistry({}).plugins.find( + (plugin) => plugin.origin === "bundled" && plugin.id === "kimi", + ); + + expect(kimi?.providerAuthChoices).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + choiceId: "kimi-code-api-key", + choiceLabel: "Kimi Code API key (subscription)", + groupId: "moonshot", + groupLabel: "Moonshot AI (Kimi K2.5)", + groupHint: "Kimi K2.5", + }), + ]), + ); + }); + it("does not duplicate bundled image-generation provider ids", () => { const ids = imageGenerationProviderContractRegistry.map((entry) => entry.provider.id); expect(ids).toEqual([...new Set(ids)]);