diff --git a/CHANGELOG.md b/CHANGELOG.md index 14df2a23b72..2dd5023c6b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -131,6 +131,9 @@ Docs: https://docs.openclaw.ai - Providers/MiniMax: register `minimax-portal` for music and video generation, preserving OAuth auth and regional MiniMax base URLs across the shared `music_generate` and `video_generate` tools. (#63241) Thanks @tars90percent. +- Providers/onboarding: keep Runway and Alibaba Model Studio out of the + text-inference setup picker by scoping their video-generation auth choices to + the media setup flow. (#65856) Thanks @Jah-yee. - Plugins/Bonjour: stop the gateway from crash-looping on `CIAO PROBING CANCELLED` when the mDNS watchdog cancels a stuck probe. Restores the rejection-handler wiring dropped during the bonjour plugin migration and shares unhandled-rejection state across module instances so plugin-staged copies of `openclaw/plugin-sdk/runtime` register into the same handler set the host consults. Especially affects Docker on macOS, where mDNS probing reliably hits the watchdog. Thanks @troyhitch. - Google Meet: report pinned Chrome nodes as offline or missing capabilities in setup/join diagnostics, keep inaccessible nodes out of auto-selection, and diff --git a/extensions/alibaba/openclaw.plugin.json b/extensions/alibaba/openclaw.plugin.json index 8287eb71256..992909c419e 100644 --- a/extensions/alibaba/openclaw.plugin.json +++ b/extensions/alibaba/openclaw.plugin.json @@ -13,6 +13,7 @@ "groupId": "alibaba", "groupLabel": "Alibaba Model Studio", "groupHint": "DashScope / Model Studio API key", + "onboardingScopes": ["image-generation"], "optionKey": "alibabaModelStudioApiKey", "cliFlag": "--alibaba-model-studio-api-key", "cliOption": "--alibaba-model-studio-api-key ", diff --git a/extensions/runway/openclaw.plugin.json b/extensions/runway/openclaw.plugin.json index 41720342a37..9edfbca568d 100644 --- a/extensions/runway/openclaw.plugin.json +++ b/extensions/runway/openclaw.plugin.json @@ -13,6 +13,7 @@ "groupId": "runway", "groupLabel": "Runway", "groupHint": "API key", + "onboardingScopes": ["image-generation"], "optionKey": "runwayApiKey", "cliFlag": "--runway-api-key", "cliOption": "--runway-api-key ", diff --git a/src/plugins/contracts/registry.contract.test.ts b/src/plugins/contracts/registry.contract.test.ts index 1e3da039060..51ca68a1a2e 100644 --- a/src/plugins/contracts/registry.contract.test.ts +++ b/src/plugins/contracts/registry.contract.test.ts @@ -104,6 +104,24 @@ describe("plugin contract registry", () => { }); }); + it("keeps video-only provider auth choices out of text onboarding", () => { + const registry = loadPluginManifestRegistry({}); + + for (const pluginId of ["alibaba", "runway"]) { + const plugin = registry.plugins.find( + (entry) => entry.origin === "bundled" && entry.id === pluginId, + ); + expect(plugin?.providerAuthChoices).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + provider: pluginId, + onboardingScopes: ["image-generation"], + }), + ]), + ); + } + }); + it("covers every bundled speech plugin discovered from manifests", () => { expectRegistryPluginIds({ actualPluginIds: pluginRegistrationContractRegistry