diff --git a/.github/workflows/plugin-clawhub-release.yml b/.github/workflows/plugin-clawhub-release.yml index 50c2ef78cb0..7b39906c5f9 100644 --- a/.github/workflows/plugin-clawhub-release.yml +++ b/.github/workflows/plugin-clawhub-release.yml @@ -32,7 +32,7 @@ env: CLAWHUB_REGISTRY: "https://clawhub.ai" CLAWHUB_REPOSITORY: "openclaw/clawhub" # Pinned to a reviewed ClawHub commit so release behavior stays reproducible. - CLAWHUB_REF: "199e6a0cdf32471702e0503e9899e8d24f06a527" + CLAWHUB_REF: "3d6f3b49a58cfe08bccc0614ab7eb8e0cde33b74" jobs: preview_plugins_clawhub: @@ -203,6 +203,9 @@ jobs: chmod +x "$RUNNER_TEMP/clawhub" echo "$RUNNER_TEMP" >> "$GITHUB_PATH" + - name: Verify package-local runtime build + run: pnpm release:plugins:npm:runtime:check --package "${{ matrix.plugin.packageDir }}" + - name: Preview publish command env: CLAWHUB_REGISTRY: ${{ env.CLAWHUB_REGISTRY }} diff --git a/.github/workflows/plugin-npm-release.yml b/.github/workflows/plugin-npm-release.yml index 7c402d55965..57650e03667 100644 --- a/.github/workflows/plugin-npm-release.yml +++ b/.github/workflows/plugin-npm-release.yml @@ -176,6 +176,9 @@ jobs: pnpm-version: ${{ env.PNPM_VERSION }} install-bun: "false" + - name: Verify package-local runtime build + run: pnpm release:plugins:npm:runtime:check --package "${{ matrix.plugin.packageDir }}" + - name: Preview publish command run: bash scripts/plugin-npm-publish.sh --dry-run "${{ matrix.plugin.packageDir }}" diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d9e5347718..158817b26dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -95,6 +95,8 @@ Docs: https://docs.openclaw.ai - Status/sessions: ignore malformed non-string persisted session provider/model metadata instead of throwing while rendering status summaries. Fixes #76206. Thanks @vincentkoc. - CLI/config: remove only the targeted array element for `openclaw config unset array[index]` instead of replaying the unset during config write and deleting the shifted next element. Fixes #76290. Thanks @SymbolStar and @vincentkoc. - Plugins/voice-call: treat abnormal local Gateway close code 1006 as a standalone CLI fallback case, so `voicecall smoke` and related commands can still run the provider check path when the Gateway socket closes before returning a response. +- CLI/doctor: migrate legacy per-channel `streaming.progress` config into `streaming.preview.toolProgress`, so upgrades with stale Discord or Telegram streaming keys validate again instead of blocking plugin commands. +- Plugins/release: reject ClawHub code-plugin packages that contain TypeScript runtime entries without compiled `dist/*.js` output, and run package-local runtime-build checks during npm and ClawHub plugin release previews. - Plugins/update: keep beta-installed OpenClaw package updates on the beta plugin channel even when config still says stable, so Discord and other externalized plugins update from compiled `@beta` packages instead of stale source-only `latest` artifacts. - Agents/tools: stop treating `tools.deny: ["write"]` as an implicit `apply_patch` deny; operators who want to block patch writes should deny `apply_patch` or `group:fs` explicitly. Fixes #76749. (#76795) Thanks @Nek-12 and @hclsys. - Plugins/release: verify published plugin npm tarballs expose compiled runtime entries after publish, catching TS-only package artifacts before release closeout. Thanks @vincentkoc. diff --git a/docs/reference/RELEASING.md b/docs/reference/RELEASING.md index a0a658067f7..a2e36e38c03 100644 --- a/docs/reference/RELEASING.md +++ b/docs/reference/RELEASING.md @@ -159,7 +159,9 @@ the maintainer-only release runbook. QA-lab through a local OTLP/HTTP receiver and verifies the exported trace span names, bounded attributes, and content/identifier redaction without requiring Opik, Langfuse, or another external collector. -- Run `pnpm release:check` before every tagged release +- Run `pnpm release:check` before every tagged release; it also builds and + verifies package-local plugin runtimes so TypeScript plugin entries cannot + ship without matching `dist/*.js` output. - Run `OpenClaw Release Publish` for the mutating publish sequence after the tag exists. Dispatch it from `release/YYYY.M.D` (or `main` when publishing a main-reachable tag), pass the release tag and successful OpenClaw npm diff --git a/extensions/acpx/package.json b/extensions/acpx/package.json index 27056ed24fa..edc33c24093 100644 --- a/extensions/acpx/package.json +++ b/extensions/acpx/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/acpx", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw ACP runtime backend", "repository": { "type": "git", @@ -25,10 +25,10 @@ "minHostVersion": ">=2026.4.25" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2", + "openclawVersion": "2026.5.3-beta.3", "staticAssets": [ { "source": "./src/runtime-internals/mcp-proxy.mjs", diff --git a/extensions/alibaba/package.json b/extensions/alibaba/package.json index 4523f2edfe1..00500d6dd30 100644 --- a/extensions/alibaba/package.json +++ b/extensions/alibaba/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/alibaba-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Alibaba Model Studio video provider plugin", "type": "module", diff --git a/extensions/amazon-bedrock-mantle/package.json b/extensions/amazon-bedrock-mantle/package.json index be32f7fdc84..cba8980cb85 100644 --- a/extensions/amazon-bedrock-mantle/package.json +++ b/extensions/amazon-bedrock-mantle/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/amazon-bedrock-mantle-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Amazon Bedrock Mantle (OpenAI-compatible) provider plugin", "type": "module", diff --git a/extensions/amazon-bedrock/package.json b/extensions/amazon-bedrock/package.json index e837be4c9e0..9efaa712b29 100644 --- a/extensions/amazon-bedrock/package.json +++ b/extensions/amazon-bedrock/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/amazon-bedrock-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Amazon Bedrock provider plugin", "type": "module", diff --git a/extensions/anthropic-vertex/package.json b/extensions/anthropic-vertex/package.json index ce4761a1d0e..715ad7b2a8e 100644 --- a/extensions/anthropic-vertex/package.json +++ b/extensions/anthropic-vertex/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/anthropic-vertex-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Anthropic Vertex provider plugin", "type": "module", diff --git a/extensions/anthropic/package.json b/extensions/anthropic/package.json index ec59cccbd4c..660e00e4480 100644 --- a/extensions/anthropic/package.json +++ b/extensions/anthropic/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/anthropic-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Anthropic provider plugin", "type": "module", diff --git a/extensions/arcee/package.json b/extensions/arcee/package.json index 294256edd5d..bf737821f50 100644 --- a/extensions/arcee/package.json +++ b/extensions/arcee/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/arcee-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Arcee provider plugin", "type": "module", diff --git a/extensions/azure-speech/package.json b/extensions/azure-speech/package.json index 466113cecd6..cb54b3aba58 100644 --- a/extensions/azure-speech/package.json +++ b/extensions/azure-speech/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/azure-speech", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Azure Speech plugin", "type": "module", diff --git a/extensions/bluebubbles/package.json b/extensions/bluebubbles/package.json index c2f1141ffb4..722425293ce 100644 --- a/extensions/bluebubbles/package.json +++ b/extensions/bluebubbles/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/bluebubbles", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw BlueBubbles channel plugin", "repository": { "type": "git", @@ -12,7 +12,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -53,10 +53,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/bonjour/package.json b/extensions/bonjour/package.json index 234269c8075..f91e81b7d1b 100644 --- a/extensions/bonjour/package.json +++ b/extensions/bonjour/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/bonjour", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Bonjour/mDNS gateway discovery", "type": "module", "dependencies": { diff --git a/extensions/brave/package.json b/extensions/brave/package.json index ebc767780b2..58f31cefa2b 100644 --- a/extensions/brave/package.json +++ b/extensions/brave/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/brave-plugin", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Brave plugin", "repository": { "type": "git", @@ -20,10 +20,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/browser/package.json b/extensions/browser/package.json index a112139760e..3db79aa211f 100644 --- a/extensions/browser/package.json +++ b/extensions/browser/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/browser-plugin", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw browser tool plugin", "type": "module", diff --git a/extensions/byteplus/package.json b/extensions/byteplus/package.json index c33aaf2678d..1b973bd4d51 100644 --- a/extensions/byteplus/package.json +++ b/extensions/byteplus/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/byteplus-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw BytePlus provider plugin", "type": "module", diff --git a/extensions/cerebras/package.json b/extensions/cerebras/package.json index 134a3dfbbca..a23a7016c34 100644 --- a/extensions/cerebras/package.json +++ b/extensions/cerebras/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/cerebras-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Cerebras provider plugin", "type": "module", diff --git a/extensions/chutes/package.json b/extensions/chutes/package.json index 291005e3f96..de6bda06ba3 100644 --- a/extensions/chutes/package.json +++ b/extensions/chutes/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/chutes-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Chutes.ai provider plugin", "type": "module", diff --git a/extensions/cloudflare-ai-gateway/package.json b/extensions/cloudflare-ai-gateway/package.json index 7152adff20c..2240579634c 100644 --- a/extensions/cloudflare-ai-gateway/package.json +++ b/extensions/cloudflare-ai-gateway/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/cloudflare-ai-gateway-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Cloudflare AI Gateway provider plugin", "type": "module", diff --git a/extensions/codex/package.json b/extensions/codex/package.json index 8c4db2d4d81..0e47b96b6fd 100644 --- a/extensions/codex/package.json +++ b/extensions/codex/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/codex", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Codex harness and model provider plugin", "repository": { "type": "git", @@ -27,10 +27,10 @@ "minHostVersion": ">=2026.5.1-beta.1" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/comfy/package.json b/extensions/comfy/package.json index 5e0badbbec2..a3560f47285 100644 --- a/extensions/comfy/package.json +++ b/extensions/comfy/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/comfy-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw ComfyUI provider plugin", "type": "module", diff --git a/extensions/copilot-proxy/package.json b/extensions/copilot-proxy/package.json index cac95491eac..c71a54ccce7 100644 --- a/extensions/copilot-proxy/package.json +++ b/extensions/copilot-proxy/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/copilot-proxy", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Copilot Proxy provider plugin", "type": "module", diff --git a/extensions/deepgram/package.json b/extensions/deepgram/package.json index 763b6ec4ee8..0a7f91fda85 100644 --- a/extensions/deepgram/package.json +++ b/extensions/deepgram/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/deepgram-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Deepgram media-understanding provider", "type": "module", diff --git a/extensions/deepinfra/package.json b/extensions/deepinfra/package.json index 222bf2b33d8..74eaf903ff8 100644 --- a/extensions/deepinfra/package.json +++ b/extensions/deepinfra/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/deepinfra-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw DeepInfra provider plugin", "type": "module", diff --git a/extensions/deepseek/package.json b/extensions/deepseek/package.json index bb5296ee7e7..69bbb34a9ad 100644 --- a/extensions/deepseek/package.json +++ b/extensions/deepseek/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/deepseek-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw DeepSeek provider plugin", "type": "module", diff --git a/extensions/diagnostics-otel/package.json b/extensions/diagnostics-otel/package.json index fdc041c9e39..2bfcc759ae1 100644 --- a/extensions/diagnostics-otel/package.json +++ b/extensions/diagnostics-otel/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/diagnostics-otel", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw diagnostics OpenTelemetry exporter", "repository": { "type": "git", @@ -34,10 +34,10 @@ "minHostVersion": ">=2026.4.25" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/diagnostics-prometheus/package.json b/extensions/diagnostics-prometheus/package.json index d4ee7cc9a9a..1029d432833 100644 --- a/extensions/diagnostics-prometheus/package.json +++ b/extensions/diagnostics-prometheus/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/diagnostics-prometheus", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw diagnostics Prometheus exporter", "repository": { "type": "git", @@ -21,10 +21,10 @@ "minHostVersion": ">=2026.4.25" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/diffs/package.json b/extensions/diffs/package.json index 5abc73f592b..4adde977129 100644 --- a/extensions/diffs/package.json +++ b/extensions/diffs/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/diffs", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw diff viewer plugin", "repository": { "type": "git", @@ -30,10 +30,10 @@ "minHostVersion": ">=2026.4.30" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2", + "openclawVersion": "2026.5.3-beta.3", "staticAssets": [ { "source": "./assets/viewer-runtime.js", diff --git a/extensions/discord/package.json b/extensions/discord/package.json index a491f2113e4..d192fa1256b 100644 --- a/extensions/discord/package.json +++ b/extensions/discord/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/discord", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Discord channel plugin", "repository": { "type": "git", @@ -21,7 +21,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -65,10 +65,10 @@ "allowInvalidConfigRecovery": true }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/discord/src/doctor.test.ts b/extensions/discord/src/doctor.test.ts index 7386768a649..c089cde1c2a 100644 --- a/extensions/discord/src/doctor.test.ts +++ b/extensions/discord/src/doctor.test.ts @@ -75,6 +75,44 @@ describe("discord doctor", () => { ]); }); + it("normalizes legacy discord streaming progress config", () => { + const normalize = discordDoctor.normalizeCompatibilityConfig; + expect(normalize).toBeDefined(); + if (!normalize) { + return; + } + + const result = normalize({ + cfg: { + channels: { + discord: { + streaming: { + mode: "partial", + progress: { + label: "Working", + maxLines: 3, + toolProgress: false, + }, + }, + }, + }, + } as never, + }); + + expect(result.config.channels?.discord).toEqual({ + streaming: { + mode: "partial", + preview: { + toolProgress: false, + }, + }, + }); + expect(result.changes).toEqual([ + "Moved channels.discord.streaming.progress.toolProgress → channels.discord.streaming.preview.toolProgress.", + "Removed channels.discord.streaming.progress legacy object.", + ]); + }); + it("moves account voice.tts.edge into providers.microsoft", () => { const normalize = discordDoctor.normalizeCompatibilityConfig; expect(normalize).toBeDefined(); diff --git a/extensions/document-extract/package.json b/extensions/document-extract/package.json index 88235f0ee58..546e9b74795 100644 --- a/extensions/document-extract/package.json +++ b/extensions/document-extract/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/document-extract-plugin", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw local document extraction plugin", "type": "module", diff --git a/extensions/duckduckgo/package.json b/extensions/duckduckgo/package.json index 936e9b1e76a..127154cbc6d 100644 --- a/extensions/duckduckgo/package.json +++ b/extensions/duckduckgo/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/duckduckgo-plugin", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw DuckDuckGo plugin", "type": "module", diff --git a/extensions/elevenlabs/package.json b/extensions/elevenlabs/package.json index b58162cd2f8..5e411c5c6e3 100644 --- a/extensions/elevenlabs/package.json +++ b/extensions/elevenlabs/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/elevenlabs-speech", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw ElevenLabs speech plugin", "type": "module", diff --git a/extensions/exa/package.json b/extensions/exa/package.json index 346a0b8fc57..1aec822aaeb 100644 --- a/extensions/exa/package.json +++ b/extensions/exa/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/exa-plugin", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Exa plugin", "type": "module", diff --git a/extensions/fal/package.json b/extensions/fal/package.json index 60944805049..fc12c4e2108 100644 --- a/extensions/fal/package.json +++ b/extensions/fal/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/fal-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw fal provider plugin", "type": "module", diff --git a/extensions/feishu/package.json b/extensions/feishu/package.json index d9bfa31b636..0c8ed48b0cf 100644 --- a/extensions/feishu/package.json +++ b/extensions/feishu/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/feishu", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng)", "repository": { "type": "git", @@ -16,7 +16,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -47,10 +47,10 @@ "minHostVersion": ">=2026.4.25" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/file-transfer/package.json b/extensions/file-transfer/package.json index d8c9a9206c3..49b1d07ebbc 100644 --- a/extensions/file-transfer/package.json +++ b/extensions/file-transfer/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/file-transfer", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw file transfer plugin (file_fetch, dir_list, dir_fetch, file_write)", "type": "module", "dependencies": { diff --git a/extensions/firecrawl/package.json b/extensions/firecrawl/package.json index e45c83c2675..d6a95ec2b26 100644 --- a/extensions/firecrawl/package.json +++ b/extensions/firecrawl/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/firecrawl-plugin", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Firecrawl plugin", "type": "module", diff --git a/extensions/fireworks/package.json b/extensions/fireworks/package.json index 471264f3e70..c604adef53e 100644 --- a/extensions/fireworks/package.json +++ b/extensions/fireworks/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/fireworks-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Fireworks provider plugin", "type": "module", diff --git a/extensions/github-copilot/package.json b/extensions/github-copilot/package.json index b9d2eb20f89..e109c267df4 100644 --- a/extensions/github-copilot/package.json +++ b/extensions/github-copilot/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/github-copilot-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw GitHub Copilot provider plugin", "type": "module", diff --git a/extensions/google-meet/package.json b/extensions/google-meet/package.json index 5bd9cdeae36..4d96c8477a1 100644 --- a/extensions/google-meet/package.json +++ b/extensions/google-meet/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/google-meet", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Google Meet participant plugin", "repository": { "type": "git", @@ -16,7 +16,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -33,10 +33,10 @@ "minHostVersion": ">=2026.4.20" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/google/package.json b/extensions/google/package.json index 357ed7b00a7..0ac4a9781a3 100644 --- a/extensions/google/package.json +++ b/extensions/google/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/google-plugin", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Google plugin", "type": "module", diff --git a/extensions/googlechat/package.json b/extensions/googlechat/package.json index 62deee4b462..95fdd2f0d9d 100644 --- a/extensions/googlechat/package.json +++ b/extensions/googlechat/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/googlechat", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Google Chat channel plugin", "repository": { "type": "git", @@ -17,7 +17,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -75,10 +75,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/gradium/package.json b/extensions/gradium/package.json index 30494b4b310..4084a8d3ddc 100644 --- a/extensions/gradium/package.json +++ b/extensions/gradium/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/gradium-speech", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Gradium speech plugin", "type": "module", diff --git a/extensions/groq/package.json b/extensions/groq/package.json index 643ca44e7b0..acb1744775e 100644 --- a/extensions/groq/package.json +++ b/extensions/groq/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/groq-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Groq media-understanding provider", "type": "module", diff --git a/extensions/huggingface/package.json b/extensions/huggingface/package.json index c0aa20b3734..c7773e504ed 100644 --- a/extensions/huggingface/package.json +++ b/extensions/huggingface/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/huggingface-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Hugging Face provider plugin", "type": "module", diff --git a/extensions/image-generation-core/package.json b/extensions/image-generation-core/package.json index f5b062e4f6f..a48a0e7d47a 100644 --- a/extensions/image-generation-core/package.json +++ b/extensions/image-generation-core/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/image-generation-core", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw image generation runtime package", "type": "module", diff --git a/extensions/imessage/package.json b/extensions/imessage/package.json index e28f1576ab7..282dbe5b00f 100644 --- a/extensions/imessage/package.json +++ b/extensions/imessage/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/imessage", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw iMessage channel plugin", "type": "module", diff --git a/extensions/inworld/package.json b/extensions/inworld/package.json index ec81f45294b..00dfc08bef1 100644 --- a/extensions/inworld/package.json +++ b/extensions/inworld/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/inworld-speech", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Inworld speech plugin", "type": "module", diff --git a/extensions/irc/package.json b/extensions/irc/package.json index 5142074360f..ef1903796a3 100644 --- a/extensions/irc/package.json +++ b/extensions/irc/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/irc", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw IRC channel plugin", "type": "module", "devDependencies": { diff --git a/extensions/kilocode/package.json b/extensions/kilocode/package.json index 83cc17b9894..cec387ab3b6 100644 --- a/extensions/kilocode/package.json +++ b/extensions/kilocode/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/kilocode-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Kilo Gateway provider plugin", "type": "module", diff --git a/extensions/kimi-coding/package.json b/extensions/kimi-coding/package.json index 5e8d2307391..0295bf77594 100644 --- a/extensions/kimi-coding/package.json +++ b/extensions/kimi-coding/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/kimi-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Kimi provider plugin", "type": "module", diff --git a/extensions/line/package.json b/extensions/line/package.json index 8e595b6d7a1..3295e2bcba4 100644 --- a/extensions/line/package.json +++ b/extensions/line/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/line", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw LINE channel plugin", "repository": { "type": "git", @@ -15,7 +15,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -45,10 +45,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/litellm/package.json b/extensions/litellm/package.json index 942c9441029..a764f72395f 100644 --- a/extensions/litellm/package.json +++ b/extensions/litellm/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/litellm-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw LiteLLM provider plugin", "type": "module", diff --git a/extensions/llm-task/package.json b/extensions/llm-task/package.json index 55a26f60b64..1404b697280 100644 --- a/extensions/llm-task/package.json +++ b/extensions/llm-task/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/llm-task", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw JSON-only LLM task plugin", "type": "module", diff --git a/extensions/lmstudio/package.json b/extensions/lmstudio/package.json index 00f4c844087..a3ee382d4cb 100644 --- a/extensions/lmstudio/package.json +++ b/extensions/lmstudio/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/lmstudio-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw LM Studio provider plugin", "type": "module", diff --git a/extensions/lobster/package.json b/extensions/lobster/package.json index ed70ff5c19d..df5f13f5d58 100644 --- a/extensions/lobster/package.json +++ b/extensions/lobster/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/lobster", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "Lobster workflow tool plugin (typed pipelines + resumable approvals)", "repository": { "type": "git", @@ -25,10 +25,10 @@ "minHostVersion": ">=2026.4.25" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/matrix/package.json b/extensions/matrix/package.json index 8dec1fb48fd..887a447ff62 100644 --- a/extensions/matrix/package.json +++ b/extensions/matrix/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/matrix", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Matrix channel plugin", "repository": { "type": "git", @@ -21,7 +21,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { diff --git a/extensions/mattermost/package.json b/extensions/mattermost/package.json index 7686aac4f93..8882f0dcee1 100644 --- a/extensions/mattermost/package.json +++ b/extensions/mattermost/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/mattermost", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Mattermost channel plugin", "repository": { "type": "git", @@ -15,7 +15,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { diff --git a/extensions/media-understanding-core/package.json b/extensions/media-understanding-core/package.json index 0fe6f4bfe23..8135eff2aee 100644 --- a/extensions/media-understanding-core/package.json +++ b/extensions/media-understanding-core/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/media-understanding-core", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw media understanding runtime package", "type": "module", diff --git a/extensions/memory-core/package.json b/extensions/memory-core/package.json index 2a3c343ba06..9f0672fb3d1 100644 --- a/extensions/memory-core/package.json +++ b/extensions/memory-core/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/memory-core", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw core memory search plugin", "type": "module", @@ -13,7 +13,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { diff --git a/extensions/memory-lancedb/package.json b/extensions/memory-lancedb/package.json index ca17e780954..35467ff50bb 100644 --- a/extensions/memory-lancedb/package.json +++ b/extensions/memory-lancedb/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/memory-lancedb", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw LanceDB-backed long-term memory plugin with auto-recall/capture", "repository": { "type": "git", @@ -26,10 +26,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/memory-wiki/package.json b/extensions/memory-wiki/package.json index 2f165543b79..7955802da42 100644 --- a/extensions/memory-wiki/package.json +++ b/extensions/memory-wiki/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/memory-wiki", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw persistent wiki plugin", "type": "module", @@ -13,7 +13,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { diff --git a/extensions/microsoft-foundry/package.json b/extensions/microsoft-foundry/package.json index b346194c03d..d95add92ec2 100644 --- a/extensions/microsoft-foundry/package.json +++ b/extensions/microsoft-foundry/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/microsoft-foundry", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Microsoft Foundry provider plugin", "type": "module", diff --git a/extensions/microsoft/package.json b/extensions/microsoft/package.json index f246830a172..16d9ba82485 100644 --- a/extensions/microsoft/package.json +++ b/extensions/microsoft/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/microsoft-speech", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Microsoft speech plugin", "type": "module", diff --git a/extensions/migrate-claude/package.json b/extensions/migrate-claude/package.json index dedfae07d40..051567095f9 100644 --- a/extensions/migrate-claude/package.json +++ b/extensions/migrate-claude/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/migrate-claude", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "Claude to OpenClaw migration provider", "type": "module", @@ -9,7 +9,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { diff --git a/extensions/migrate-hermes/package.json b/extensions/migrate-hermes/package.json index 9dd860a9a33..17409d46942 100644 --- a/extensions/migrate-hermes/package.json +++ b/extensions/migrate-hermes/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/migrate-hermes", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "Hermes to OpenClaw migration provider", "type": "module", @@ -12,7 +12,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { diff --git a/extensions/minimax/package.json b/extensions/minimax/package.json index 75336e79fea..6e86aedc565 100644 --- a/extensions/minimax/package.json +++ b/extensions/minimax/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/minimax-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw MiniMax provider and OAuth plugin", "type": "module", diff --git a/extensions/mistral/package.json b/extensions/mistral/package.json index 6e478d0fa11..c5b50c04c22 100644 --- a/extensions/mistral/package.json +++ b/extensions/mistral/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/mistral-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Mistral provider plugin", "type": "module", diff --git a/extensions/moonshot/package.json b/extensions/moonshot/package.json index 1dc0e980ec3..8000d8e9f53 100644 --- a/extensions/moonshot/package.json +++ b/extensions/moonshot/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/moonshot-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Moonshot provider plugin", "type": "module", diff --git a/extensions/msteams/package.json b/extensions/msteams/package.json index 9261b159313..c8fa12772df 100644 --- a/extensions/msteams/package.json +++ b/extensions/msteams/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/msteams", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Microsoft Teams channel plugin", "repository": { "type": "git", @@ -22,7 +22,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -58,10 +58,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/nextcloud-talk/package.json b/extensions/nextcloud-talk/package.json index b6d2782a8f9..528d6d783ab 100644 --- a/extensions/nextcloud-talk/package.json +++ b/extensions/nextcloud-talk/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/nextcloud-talk", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Nextcloud Talk channel plugin", "repository": { "type": "git", @@ -15,7 +15,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -47,10 +47,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/nostr/package.json b/extensions/nostr/package.json index a1f0baf5a13..8af02830560 100644 --- a/extensions/nostr/package.json +++ b/extensions/nostr/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/nostr", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Nostr channel plugin for NIP-04 encrypted DMs", "repository": { "type": "git", @@ -16,7 +16,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -54,10 +54,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/nvidia/package.json b/extensions/nvidia/package.json index e88713d9ef1..d13ea199628 100644 --- a/extensions/nvidia/package.json +++ b/extensions/nvidia/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/nvidia-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw NVIDIA provider plugin", "type": "module", diff --git a/extensions/ollama/package.json b/extensions/ollama/package.json index 7f57bf25406..aed7abc7d18 100644 --- a/extensions/ollama/package.json +++ b/extensions/ollama/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/ollama-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Ollama provider plugin", "type": "module", diff --git a/extensions/open-prose/package.json b/extensions/open-prose/package.json index 42a0d7b7602..d5fe577d478 100644 --- a/extensions/open-prose/package.json +++ b/extensions/open-prose/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/open-prose", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenProse VM skill pack plugin (slash command + telemetry).", "type": "module", diff --git a/extensions/openai/package.json b/extensions/openai/package.json index 8847bc15f96..2c1cc52ab27 100644 --- a/extensions/openai/package.json +++ b/extensions/openai/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/openai-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw OpenAI provider plugins", "type": "module", diff --git a/extensions/opencode-go/package.json b/extensions/opencode-go/package.json index 01041788777..9cb2a293f94 100644 --- a/extensions/opencode-go/package.json +++ b/extensions/opencode-go/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/opencode-go-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw OpenCode Go provider plugin", "type": "module", diff --git a/extensions/opencode/package.json b/extensions/opencode/package.json index 46e2ea73ecf..398fc666c70 100644 --- a/extensions/opencode/package.json +++ b/extensions/opencode/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/opencode-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw OpenCode Zen provider plugin", "type": "module", diff --git a/extensions/openrouter/package.json b/extensions/openrouter/package.json index 748cb809542..2c19a4246bd 100644 --- a/extensions/openrouter/package.json +++ b/extensions/openrouter/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/openrouter-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw OpenRouter provider plugin", "type": "module", diff --git a/extensions/openshell/package.json b/extensions/openshell/package.json index a7317072e2d..8d15f6bff01 100644 --- a/extensions/openshell/package.json +++ b/extensions/openshell/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/openshell-sandbox", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw OpenShell sandbox backend", "type": "module", diff --git a/extensions/perplexity/package.json b/extensions/perplexity/package.json index 8a56f103e5f..754e3f4c4ab 100644 --- a/extensions/perplexity/package.json +++ b/extensions/perplexity/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/perplexity-plugin", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Perplexity plugin", "type": "module", diff --git a/extensions/qa-channel/package.json b/extensions/qa-channel/package.json index e2094836576..5984a193af4 100644 --- a/extensions/qa-channel/package.json +++ b/extensions/qa-channel/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/qa-channel", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw QA synthetic channel plugin", "type": "module", @@ -18,7 +18,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { diff --git a/extensions/qa-lab/package.json b/extensions/qa-lab/package.json index 7482f9405dd..b063ea85815 100644 --- a/extensions/qa-lab/package.json +++ b/extensions/qa-lab/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/qa-lab", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw QA lab plugin with private debugger UI and scenario runner", "type": "module", @@ -18,7 +18,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -30,7 +30,7 @@ "./index.ts" ], "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" } } } diff --git a/extensions/qa-matrix/package.json b/extensions/qa-matrix/package.json index 5ebab8244f2..654283aee30 100644 --- a/extensions/qa-matrix/package.json +++ b/extensions/qa-matrix/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/qa-matrix", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Matrix QA runner plugin", "type": "module", @@ -13,7 +13,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -25,7 +25,7 @@ "./index.ts" ], "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" } } } diff --git a/extensions/qianfan/package.json b/extensions/qianfan/package.json index 22d89833178..9f79d3c3111 100644 --- a/extensions/qianfan/package.json +++ b/extensions/qianfan/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/qianfan-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Qianfan provider plugin", "type": "module", diff --git a/extensions/qqbot/package.json b/extensions/qqbot/package.json index 649e0d622a9..0ffc78a1903 100644 --- a/extensions/qqbot/package.json +++ b/extensions/qqbot/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/qqbot", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": false, "description": "OpenClaw QQ Bot channel plugin", "repository": { @@ -21,7 +21,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -50,10 +50,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/qwen/package.json b/extensions/qwen/package.json index 7f8de8c6b89..946423b256a 100644 --- a/extensions/qwen/package.json +++ b/extensions/qwen/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/qwen-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Qwen Cloud provider plugin", "type": "module", diff --git a/extensions/runway/package.json b/extensions/runway/package.json index f0a40ad50f6..761ae09aae0 100644 --- a/extensions/runway/package.json +++ b/extensions/runway/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/runway-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Runway video provider plugin", "type": "module", diff --git a/extensions/searxng/package.json b/extensions/searxng/package.json index 1eddd901bae..c4fd2fa599d 100644 --- a/extensions/searxng/package.json +++ b/extensions/searxng/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/searxng-plugin", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw SearXNG plugin", "type": "module", diff --git a/extensions/senseaudio/package.json b/extensions/senseaudio/package.json index 47647c9a947..20c42771edc 100644 --- a/extensions/senseaudio/package.json +++ b/extensions/senseaudio/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/senseaudio-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw SenseAudio media-understanding provider", "type": "module", diff --git a/extensions/sglang/package.json b/extensions/sglang/package.json index 37f2a9e6dac..97aa291050f 100644 --- a/extensions/sglang/package.json +++ b/extensions/sglang/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/sglang-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw SGLang provider plugin", "type": "module", diff --git a/extensions/signal/package.json b/extensions/signal/package.json index 67d21b46f13..24ac8052441 100644 --- a/extensions/signal/package.json +++ b/extensions/signal/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/signal", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Signal channel plugin", "type": "module", diff --git a/extensions/skill-workshop/package.json b/extensions/skill-workshop/package.json index d1669e40647..5d9239f0ed6 100644 --- a/extensions/skill-workshop/package.json +++ b/extensions/skill-workshop/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/skill-workshop", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw skill workshop plugin", "type": "module", diff --git a/extensions/slack/package.json b/extensions/slack/package.json index 8230fa66dd2..574e2796a8f 100644 --- a/extensions/slack/package.json +++ b/extensions/slack/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/slack", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Slack channel plugin", "type": "module", diff --git a/extensions/speech-core/package.json b/extensions/speech-core/package.json index af4471c06d1..dae9059346b 100644 --- a/extensions/speech-core/package.json +++ b/extensions/speech-core/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/speech-core", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw speech runtime package", "type": "module", diff --git a/extensions/stepfun/package.json b/extensions/stepfun/package.json index 340bda8294a..5472d45e48c 100644 --- a/extensions/stepfun/package.json +++ b/extensions/stepfun/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/stepfun-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw StepFun provider plugin", "type": "module", diff --git a/extensions/synology-chat/package.json b/extensions/synology-chat/package.json index fa2e968375f..55f6c8286a2 100644 --- a/extensions/synology-chat/package.json +++ b/extensions/synology-chat/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/synology-chat", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "Synology Chat channel plugin for OpenClaw", "repository": { "type": "git", @@ -33,10 +33,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/synthetic/package.json b/extensions/synthetic/package.json index d1ec30f14d9..83d6e8448ba 100644 --- a/extensions/synthetic/package.json +++ b/extensions/synthetic/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/synthetic-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Synthetic provider plugin", "type": "module", diff --git a/extensions/tavily/package.json b/extensions/tavily/package.json index c0e11a504ad..68bdc5feb12 100644 --- a/extensions/tavily/package.json +++ b/extensions/tavily/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/tavily-plugin", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Tavily plugin", "type": "module", diff --git a/extensions/telegram/package.json b/extensions/telegram/package.json index 83c8ca6bdbf..f22e09ad651 100644 --- a/extensions/telegram/package.json +++ b/extensions/telegram/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/telegram", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Telegram channel plugin", "type": "module", diff --git a/extensions/telegram/src/doctor.test.ts b/extensions/telegram/src/doctor.test.ts index 1afa5dc2ff4..be62a6c6fb0 100644 --- a/extensions/telegram/src/doctor.test.ts +++ b/extensions/telegram/src/doctor.test.ts @@ -132,6 +132,42 @@ describe("telegram doctor", () => { ); }); + it("normalizes legacy telegram streaming progress config", () => { + const normalize = telegramDoctor.normalizeCompatibilityConfig; + expect(normalize).toBeDefined(); + if (!normalize) { + return; + } + + const result = normalize({ + cfg: { + channels: { + telegram: { + streaming: { + mode: "partial", + progress: { + label: "Working", + maxLines: 3, + toolProgress: false, + }, + }, + }, + }, + } as never, + }); + + expect(result.config.channels?.telegram?.streaming).toEqual({ + mode: "partial", + preview: { + toolProgress: false, + }, + }); + expect(result.changes).toEqual([ + "Moved channels.telegram.streaming.progress.toolProgress → channels.telegram.streaming.preview.toolProgress.", + "Removed channels.telegram.streaming.progress legacy object.", + ]); + }); + it("does not duplicate streaming.mode change messages when streamMode wins over boolean streaming", () => { const normalize = telegramDoctor.normalizeCompatibilityConfig; expect(normalize).toBeDefined(); diff --git a/extensions/tencent/package.json b/extensions/tencent/package.json index 804598ee3e1..898dac7a8ac 100644 --- a/extensions/tencent/package.json +++ b/extensions/tencent/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/tencent-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Tencent Cloud provider plugin (TokenHub + Token Plan)", "type": "module", diff --git a/extensions/tlon/package.json b/extensions/tlon/package.json index c72e691ca2f..d967b26c6c0 100644 --- a/extensions/tlon/package.json +++ b/extensions/tlon/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/tlon", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Tlon/Urbit channel plugin", "repository": { "type": "git", @@ -18,7 +18,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -72,10 +72,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/together/package.json b/extensions/together/package.json index c214e1c57d3..530edc4a51e 100644 --- a/extensions/together/package.json +++ b/extensions/together/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/together-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Together provider plugin", "type": "module", diff --git a/extensions/tokenjuice/package.json b/extensions/tokenjuice/package.json index 92a7d17c0ac..2524477c9d6 100644 --- a/extensions/tokenjuice/package.json +++ b/extensions/tokenjuice/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/tokenjuice", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "Bundled tokenjuice exec output compaction plugin", "type": "module", "dependencies": { diff --git a/extensions/tts-local-cli/package.json b/extensions/tts-local-cli/package.json index 5c2c656b01d..c86953c51b6 100644 --- a/extensions/tts-local-cli/package.json +++ b/extensions/tts-local-cli/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/tts-local-cli", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw local CLI TTS plugin", "type": "module", diff --git a/extensions/twitch/package.json b/extensions/twitch/package.json index 9643c52f53f..947faf2bcd3 100644 --- a/extensions/twitch/package.json +++ b/extensions/twitch/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/twitch", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Twitch channel plugin", "repository": { "type": "git", @@ -26,10 +26,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "channel": { "id": "twitch", diff --git a/extensions/venice/package.json b/extensions/venice/package.json index fc9e77ba33b..e249b44e253 100644 --- a/extensions/venice/package.json +++ b/extensions/venice/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/venice-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Venice provider plugin", "type": "module", diff --git a/extensions/vercel-ai-gateway/package.json b/extensions/vercel-ai-gateway/package.json index 3ed80e1adcb..6c33b534751 100644 --- a/extensions/vercel-ai-gateway/package.json +++ b/extensions/vercel-ai-gateway/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/vercel-ai-gateway-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Vercel AI Gateway provider plugin", "type": "module", diff --git a/extensions/video-generation-core/package.json b/extensions/video-generation-core/package.json index 9d57dec9d69..c26cae1e858 100644 --- a/extensions/video-generation-core/package.json +++ b/extensions/video-generation-core/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/video-generation-core", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw video generation runtime package", "type": "module", diff --git a/extensions/vllm/package.json b/extensions/vllm/package.json index d7dde4481f7..28cc36738c0 100644 --- a/extensions/vllm/package.json +++ b/extensions/vllm/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/vllm-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw vLLM provider plugin", "type": "module", diff --git a/extensions/voice-call/package.json b/extensions/voice-call/package.json index 53c84769cb9..04911591a11 100644 --- a/extensions/voice-call/package.json +++ b/extensions/voice-call/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/voice-call", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw voice-call plugin", "repository": { "type": "git", @@ -17,7 +17,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -34,10 +34,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/volcengine/package.json b/extensions/volcengine/package.json index 3069767b360..f99cac40778 100644 --- a/extensions/volcengine/package.json +++ b/extensions/volcengine/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/volcengine-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Volcengine provider plugin", "type": "module", diff --git a/extensions/voyage/package.json b/extensions/voyage/package.json index 9e4fc5ba5e8..07abcbfac7e 100644 --- a/extensions/voyage/package.json +++ b/extensions/voyage/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/voyage-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Voyage embedding provider plugin", "type": "module", diff --git a/extensions/vydra/package.json b/extensions/vydra/package.json index 47612ee569a..c3efa95ced4 100644 --- a/extensions/vydra/package.json +++ b/extensions/vydra/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/vydra-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Vydra media provider plugin", "type": "module", diff --git a/extensions/web-readability/package.json b/extensions/web-readability/package.json index 334b93edd53..e1292501644 100644 --- a/extensions/web-readability/package.json +++ b/extensions/web-readability/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/web-readability-plugin", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw local Readability web extraction plugin", "type": "module", diff --git a/extensions/webhooks/package.json b/extensions/webhooks/package.json index 90270e391cb..e750b7b9d67 100644 --- a/extensions/webhooks/package.json +++ b/extensions/webhooks/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/webhooks", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw webhook bridge plugin", "type": "module", diff --git a/extensions/whatsapp/package.json b/extensions/whatsapp/package.json index ea513666759..c4db5e930a4 100644 --- a/extensions/whatsapp/package.json +++ b/extensions/whatsapp/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/whatsapp", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw WhatsApp channel plugin", "repository": { "type": "git", @@ -19,7 +19,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -61,10 +61,10 @@ "minHostVersion": ">=2026.4.25" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/xai/package.json b/extensions/xai/package.json index b410e49410b..412cd119dba 100644 --- a/extensions/xai/package.json +++ b/extensions/xai/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/xai-plugin", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw xAI plugin", "type": "module", diff --git a/extensions/xiaomi/package.json b/extensions/xiaomi/package.json index b2034f5da6d..86b3461bd1b 100644 --- a/extensions/xiaomi/package.json +++ b/extensions/xiaomi/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/xiaomi-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Xiaomi provider plugin", "type": "module", diff --git a/extensions/zai/package.json b/extensions/zai/package.json index 8815f730ec2..42a13e1637d 100644 --- a/extensions/zai/package.json +++ b/extensions/zai/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/zai-provider", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "private": true, "description": "OpenClaw Z.AI provider plugin", "type": "module", diff --git a/extensions/zalo/package.json b/extensions/zalo/package.json index dc03e66ea21..5a627a9b053 100644 --- a/extensions/zalo/package.json +++ b/extensions/zalo/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/zalo", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Zalo channel plugin", "repository": { "type": "git", @@ -15,7 +15,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -46,10 +46,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/extensions/zalouser/package.json b/extensions/zalouser/package.json index e1469280c83..ae9adea2911 100644 --- a/extensions/zalouser/package.json +++ b/extensions/zalouser/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/zalouser", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "OpenClaw Zalo Personal Account plugin via native zca-js integration", "repository": { "type": "git", @@ -16,7 +16,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.5.3-beta.2" + "openclaw": ">=2026.5.3-beta.3" }, "peerDependenciesMeta": { "openclaw": { @@ -53,10 +53,10 @@ "minHostVersion": ">=2026.4.10" }, "compat": { - "pluginApi": ">=2026.5.3-beta.2" + "pluginApi": ">=2026.5.3-beta.3" }, "build": { - "openclawVersion": "2026.5.3-beta.2" + "openclawVersion": "2026.5.3-beta.3" }, "release": { "publishToClawHub": true, diff --git a/package.json b/package.json index 3d15122704b..9f732be54f0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openclaw", - "version": "2026.5.3-beta.2", + "version": "2026.5.3-beta.3", "description": "Multi-channel AI gateway with extensible messaging integrations", "keywords": [], "homepage": "https://github.com/openclaw/openclaw#readme", @@ -1477,13 +1477,14 @@ "qa:lab:watch": "vite build --watch --config extensions/qa-lab/web/vite.config.ts", "qa:otel:smoke": "node --import tsx scripts/qa-otel-smoke.ts", "release-metadata:check": "node scripts/check-release-metadata-only.mjs", - "release:check": "pnpm deps:root-ownership:check && pnpm plugins:inventory:check && pnpm check:base-config-schema && pnpm check:bundled-channel-config-metadata && pnpm config:docs:check && pnpm plugin-sdk:check-exports && pnpm plugin-sdk:api:check && node --import tsx scripts/release-check.ts", + "release:check": "pnpm deps:root-ownership:check && pnpm plugins:inventory:check && pnpm release:plugins:npm:runtime:check && pnpm check:base-config-schema && pnpm check:bundled-channel-config-metadata && pnpm config:docs:check && pnpm plugin-sdk:check-exports && pnpm plugin-sdk:api:check && node --import tsx scripts/release-check.ts", "release:openclaw:npm:check": "node --import tsx scripts/openclaw-npm-release-check.ts", "release:openclaw:npm:verify-published": "node --import tsx scripts/openclaw-npm-postpublish-verify.ts", "release:plugins:clawhub:check": "node --import tsx scripts/plugin-clawhub-release-check.ts", "release:plugins:clawhub:plan": "node --import tsx scripts/plugin-clawhub-release-plan.ts", "release:plugins:npm:check": "node --import tsx scripts/plugin-npm-release-check.ts", "release:plugins:npm:plan": "node --import tsx scripts/plugin-npm-release-plan.ts", + "release:plugins:npm:runtime:check": "node scripts/check-plugin-npm-runtime-builds.mjs", "rtt": "node --import tsx scripts/rtt.ts", "runtime-sidecars:check": "node --import tsx scripts/generate-runtime-sidecar-paths-baseline.ts --check", "runtime-sidecars:gen": "node --import tsx scripts/generate-runtime-sidecar-paths-baseline.ts --write", diff --git a/src/commands/doctor-config-flow.test-utils.ts b/src/commands/doctor-config-flow.test-utils.ts index 1b76b918f95..91c1044cedb 100644 --- a/src/commands/doctor-config-flow.test-utils.ts +++ b/src/commands/doctor-config-flow.test-utils.ts @@ -84,6 +84,14 @@ function shouldUseCompatPreflight(path: ReadonlyArray, value: unknown): if (last === "streaming" && (typeof value === "boolean" || typeof value === "string")) { return true; } + if ( + last === "progress" && + path.length >= 3 && + path[path.length - 2] === "streaming" && + path[0] === "channels" + ) { + return true; + } if ( joined === "talk.voiceId" || joined === "talk.voiceAliases" || diff --git a/src/config/channel-compat-normalization.ts b/src/config/channel-compat-normalization.ts index 69068cc1e55..f3a41c534a2 100644 --- a/src/config/channel-compat-normalization.ts +++ b/src/config/channel-compat-normalization.ts @@ -53,6 +53,8 @@ export function normalizeLegacyStreamingAliases( } & LegacyStreamingAliasOptions, ): CompatMutationResult { const beforeStreaming = params.entry.streaming; + const beforeStreamingRecord = asObjectRecord(beforeStreaming); + const legacyProgress = asObjectRecord(beforeStreamingRecord?.progress); const hadLegacyStreamMode = params.entry.streamMode !== undefined; const hasLegacyFlatFields = params.entry.chunkMode !== undefined || @@ -64,6 +66,7 @@ export function normalizeLegacyStreamingAliases( hadLegacyStreamMode || typeof beforeStreaming === "boolean" || typeof beforeStreaming === "string" || + legacyProgress !== null || hasLegacyFlatFields; if (!shouldNormalize) { return { entry: params.entry, changed: false }; @@ -129,6 +132,17 @@ export function normalizeLegacyStreamingAliases( ); changed = true; } + if (legacyProgress) { + if (preview.toolProgress === undefined && typeof legacyProgress.toolProgress === "boolean") { + preview.toolProgress = legacyProgress.toolProgress; + params.changes.push( + `Moved ${params.pathPrefix}.streaming.progress.toolProgress → ${params.pathPrefix}.streaming.preview.toolProgress.`, + ); + } + delete streaming.progress; + params.changes.push(`Removed ${params.pathPrefix}.streaming.progress legacy object.`); + changed = true; + } if (updated.blockStreamingCoalesce !== undefined && block.coalesce === undefined) { block.coalesce = updated.blockStreamingCoalesce; delete updated.blockStreamingCoalesce; @@ -281,6 +295,7 @@ export function hasLegacyStreamingAliases( entry.streamMode !== undefined || typeof entry.streaming === "boolean" || typeof entry.streaming === "string" || + asObjectRecord(entry.streaming)?.progress !== undefined || entry.chunkMode !== undefined || entry.blockStreaming !== undefined || entry.blockStreamingCoalesce !== undefined ||