From 412a3eb1acc1069843d26fd7d3ef0f6c253cbc09 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 22 Mar 2026 11:57:51 -0700 Subject: [PATCH] build: bump version to 2026.3.22 --- .github/workflows/docker-release.yml | 2 +- .github/workflows/openclaw-npm-release.yml | 2 +- apps/android/app/build.gradle.kts | 4 +- apps/ios/Config/Version.xcconfig | 6 +-- apps/ios/README.md | 6 +-- apps/ios/fastlane/Fastfile | 2 +- .../Sources/OpenClaw/Resources/Info.plist | 4 +- docs/install/development-channels.md | 6 +-- extensions/acpx/package.json | 2 +- extensions/amazon-bedrock/package.json | 2 +- extensions/anthropic/package.json | 2 +- extensions/bluebubbles/package.json | 6 +-- extensions/brave/package.json | 2 +- extensions/byteplus/package.json | 2 +- extensions/chutes/package.json | 2 +- extensions/cloudflare-ai-gateway/package.json | 2 +- extensions/copilot-proxy/package.json | 2 +- extensions/diagnostics-otel/package.json | 2 +- extensions/diffs/package.json | 2 +- extensions/discord/package.json | 6 +-- extensions/elevenlabs/package.json | 2 +- extensions/fal/package.json | 2 +- extensions/feishu/package.json | 6 +-- extensions/firecrawl/package.json | 2 +- extensions/github-copilot/package.json | 2 +- extensions/google/package.json | 2 +- extensions/googlechat/package.json | 6 +-- extensions/huggingface/package.json | 2 +- extensions/imessage/package.json | 2 +- extensions/irc/package.json | 4 +- extensions/kilocode/package.json | 2 +- extensions/kimi-coding/package.json | 2 +- extensions/line/package.json | 6 +-- extensions/llm-task/package.json | 2 +- extensions/lobster/package.json | 2 +- extensions/matrix/package.json | 6 +-- extensions/mattermost/package.json | 6 +-- extensions/memory-core/package.json | 4 +- extensions/memory-lancedb/package.json | 4 +- extensions/microsoft/package.json | 2 +- extensions/minimax/package.json | 2 +- extensions/mistral/package.json | 2 +- extensions/modelstudio/package.json | 2 +- extensions/moonshot/package.json | 2 +- extensions/msteams/package.json | 6 +-- extensions/nextcloud-talk/package.json | 6 +-- extensions/nostr/package.json | 6 +-- extensions/nvidia/package.json | 2 +- extensions/ollama/package.json | 2 +- extensions/open-prose/package.json | 2 +- extensions/openai/package.json | 2 +- extensions/opencode-go/package.json | 2 +- extensions/opencode/package.json | 2 +- extensions/openrouter/package.json | 2 +- extensions/openshell/package.json | 2 +- extensions/perplexity/package.json | 2 +- extensions/qianfan/package.json | 2 +- extensions/sglang/package.json | 2 +- extensions/signal/package.json | 2 +- extensions/slack/package.json | 2 +- extensions/synology-chat/package.json | 4 +- extensions/synthetic/package.json | 2 +- extensions/tavily/package.json | 2 +- extensions/telegram/package.json | 2 +- extensions/tlon/package.json | 6 +-- extensions/together/package.json | 2 +- extensions/twitch/package.json | 4 +- extensions/venice/package.json | 2 +- extensions/vercel-ai-gateway/package.json | 2 +- extensions/vllm/package.json | 2 +- extensions/voice-call/package.json | 6 +-- extensions/volcengine/package.json | 2 +- extensions/whatsapp/package.json | 6 +-- extensions/xai/package.json | 2 +- extensions/xiaomi/package.json | 2 +- extensions/zai/package.json | 2 +- extensions/zalo/package.json | 6 +-- extensions/zalouser/package.json | 6 +-- package.json | 2 +- .../extra-params.openai.test.ts | 14 +++---- src/agents/provider-attribution.test.ts | 24 +++++------ .../node-daemon-install-helpers.test.ts | 6 +-- src/infra/clawhub.test.ts | 4 +- src/infra/update-global.test.ts | 2 +- src/plugins/clawhub.test.ts | 2 +- ...nstall-min-host-version-guardrails.test.ts | 2 +- src/plugins/install.test.ts | 10 ++--- src/plugins/manifest-registry.test.ts | 20 ++++----- src/plugins/min-host-version.test.ts | 42 +++++++++---------- 89 files changed, 185 insertions(+), 185 deletions(-) diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index 54c233d626a1..218b1b9eaf19 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -15,7 +15,7 @@ on: workflow_dispatch: inputs: tag: - description: Existing release tag to backfill (for example v2026.3.13) + description: Existing release tag to backfill (for example v2026.3.22) required: true type: string diff --git a/.github/workflows/openclaw-npm-release.yml b/.github/workflows/openclaw-npm-release.yml index c7f535676129..29be659056b7 100644 --- a/.github/workflows/openclaw-npm-release.yml +++ b/.github/workflows/openclaw-npm-release.yml @@ -7,7 +7,7 @@ on: workflow_dispatch: inputs: tag: - description: Release tag to publish (for example v2026.3.14, v2026.3.14-beta.1, or fallback v2026.3.14-1) + description: Release tag to publish (for example v2026.3.22, v2026.3.22-beta.1, or fallback v2026.3.22-1) required: true type: string diff --git a/apps/android/app/build.gradle.kts b/apps/android/app/build.gradle.kts index 73882f69439e..603669f92cc1 100644 --- a/apps/android/app/build.gradle.kts +++ b/apps/android/app/build.gradle.kts @@ -65,8 +65,8 @@ android { applicationId = "ai.openclaw.app" minSdk = 31 targetSdk = 36 - versionCode = 2026032000 - versionName = "2026.3.20" + versionCode = 2026032200 + versionName = "2026.3.22" ndk { // Support all major ABIs — native libs are tiny (~47 KB per ABI) abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64") diff --git a/apps/ios/Config/Version.xcconfig b/apps/ios/Config/Version.xcconfig index 4297bc8ff576..faf84e7c4b08 100644 --- a/apps/ios/Config/Version.xcconfig +++ b/apps/ios/Config/Version.xcconfig @@ -1,8 +1,8 @@ // Shared iOS version defaults. // Generated overrides live in build/Version.xcconfig (git-ignored). -OPENCLAW_GATEWAY_VERSION = 2026.3.14 -OPENCLAW_MARKETING_VERSION = 2026.3.14 -OPENCLAW_BUILD_VERSION = 202603140 +OPENCLAW_GATEWAY_VERSION = 2026.3.22 +OPENCLAW_MARKETING_VERSION = 2026.3.22 +OPENCLAW_BUILD_VERSION = 202603220 #include? "../build/Version.xcconfig" diff --git a/apps/ios/README.md b/apps/ios/README.md index 8e591839bd07..22f5ebc67b1e 100644 --- a/apps/ios/README.md +++ b/apps/ios/README.md @@ -65,9 +65,9 @@ Release behavior: - Beta release also switches the app to `OpenClawPushTransport=relay`, `OpenClawPushDistribution=official`, and `OpenClawPushAPNsEnvironment=production`. - The beta flow does not modify `apps/ios/.local-signing.xcconfig` or `apps/ios/LocalSigning.xcconfig`. - Root `package.json.version` is the only version source for iOS. -- A root version like `2026.3.13-beta.1` becomes: - - `CFBundleShortVersionString = 2026.3.13` - - `CFBundleVersion = next TestFlight build number for 2026.3.13` +- A root version like `2026.3.22-beta.1` becomes: + - `CFBundleShortVersionString = 2026.3.22` + - `CFBundleVersion = next TestFlight build number for 2026.3.22` Required env for beta builds: diff --git a/apps/ios/fastlane/Fastfile b/apps/ios/fastlane/Fastfile index 74cbcec4b68f..58bdecd43469 100644 --- a/apps/ios/fastlane/Fastfile +++ b/apps/ios/fastlane/Fastfile @@ -99,7 +99,7 @@ def normalize_release_version(raw_value) version = raw_value.to_s.strip.sub(/\Av/, "") UI.user_error!("Missing root package.json version.") unless env_present?(version) unless version.match?(/\A\d+\.\d+\.\d+(?:[.-]?beta[.-]\d+)?\z/i) - UI.user_error!("Invalid package.json version '#{raw_value}'. Expected 2026.3.13 or 2026.3.13-beta.1.") + UI.user_error!("Invalid package.json version '#{raw_value}'. Expected 2026.3.22 or 2026.3.22-beta.1.") end version diff --git a/apps/macos/Sources/OpenClaw/Resources/Info.plist b/apps/macos/Sources/OpenClaw/Resources/Info.plist index 89ebf70beb42..3f8c426157d3 100644 --- a/apps/macos/Sources/OpenClaw/Resources/Info.plist +++ b/apps/macos/Sources/OpenClaw/Resources/Info.plist @@ -15,9 +15,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2026.3.14 + 2026.3.22 CFBundleVersion - 202603140 + 202603220 CFBundleIconFile OpenClaw CFBundleURLTypes diff --git a/docs/install/development-channels.md b/docs/install/development-channels.md index 9a716b18dbed..97e035d179ae 100644 --- a/docs/install/development-channels.md +++ b/docs/install/development-channels.md @@ -48,7 +48,7 @@ update **without** changing your persisted channel: ```bash # Install a specific version -openclaw update --tag 2026.3.14 +openclaw update --tag 2026.3.22 # Install from the beta dist-tag (one-off, does not persist) openclaw update --tag beta @@ -57,7 +57,7 @@ openclaw update --tag beta openclaw update --tag main # Install a specific npm package spec -openclaw update --tag openclaw@2026.3.12 +openclaw update --tag openclaw@2026.3.22 ``` Notes: @@ -75,7 +75,7 @@ Preview what `openclaw update` would do without making changes: ```bash openclaw update --dry-run openclaw update --channel beta --dry-run -openclaw update --tag 2026.3.14 --dry-run +openclaw update --tag 2026.3.22 --dry-run openclaw update --dry-run --json ``` diff --git a/extensions/acpx/package.json b/extensions/acpx/package.json index d6b6c3afd1fe..73d87a021fec 100644 --- a/extensions/acpx/package.json +++ b/extensions/acpx/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/acpx-plugin", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw ACP runtime backend via acpx", "type": "module", "dependencies": { diff --git a/extensions/amazon-bedrock/package.json b/extensions/amazon-bedrock/package.json index 6c1471c92c3e..921a56a49699 100644 --- a/extensions/amazon-bedrock/package.json +++ b/extensions/amazon-bedrock/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/amazon-bedrock-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Amazon Bedrock provider plugin", "type": "module", diff --git a/extensions/anthropic/package.json b/extensions/anthropic/package.json index 7d06af1c26d4..34d257108725 100644 --- a/extensions/anthropic/package.json +++ b/extensions/anthropic/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/anthropic-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Anthropic provider plugin", "type": "module", diff --git a/extensions/bluebubbles/package.json b/extensions/bluebubbles/package.json index 7e926861b9e6..8b4a1ca43063 100644 --- a/extensions/bluebubbles/package.json +++ b/extensions/bluebubbles/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/bluebubbles", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw BlueBubbles channel plugin", "type": "module", "dependencies": { @@ -10,7 +10,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -43,7 +43,7 @@ "npmSpec": "@openclaw/bluebubbles", "localPath": "extensions/bluebubbles", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "release": { "publishToNpm": true diff --git a/extensions/brave/package.json b/extensions/brave/package.json index 6756c616e9a7..c2ebbdd1a4d7 100644 --- a/extensions/brave/package.json +++ b/extensions/brave/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/brave-plugin", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Brave plugin", "type": "module", diff --git a/extensions/byteplus/package.json b/extensions/byteplus/package.json index 8eda5930c696..f96cacda82ae 100644 --- a/extensions/byteplus/package.json +++ b/extensions/byteplus/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/byteplus-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw BytePlus provider plugin", "type": "module", diff --git a/extensions/chutes/package.json b/extensions/chutes/package.json index 38f45fe3e540..831c6128e136 100644 --- a/extensions/chutes/package.json +++ b/extensions/chutes/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/chutes-provider", - "version": "2026.3.14", + "version": "2026.3.22", "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 288bc1c72037..127549a891b4 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.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Cloudflare AI Gateway provider plugin", "type": "module", diff --git a/extensions/copilot-proxy/package.json b/extensions/copilot-proxy/package.json index fdab55b3da8d..79299a1a3899 100644 --- a/extensions/copilot-proxy/package.json +++ b/extensions/copilot-proxy/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/copilot-proxy", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Copilot Proxy provider plugin", "type": "module", diff --git a/extensions/diagnostics-otel/package.json b/extensions/diagnostics-otel/package.json index 2e31d2113600..765f802f2275 100644 --- a/extensions/diagnostics-otel/package.json +++ b/extensions/diagnostics-otel/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/diagnostics-otel", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw diagnostics OpenTelemetry exporter", "type": "module", "dependencies": { diff --git a/extensions/diffs/package.json b/extensions/diffs/package.json index f9e7d38d6f9a..e1e6fd13efc8 100644 --- a/extensions/diffs/package.json +++ b/extensions/diffs/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/diffs", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw diff viewer plugin", "type": "module", diff --git a/extensions/discord/package.json b/extensions/discord/package.json index a8bf21e8c718..3e0704d8e15d 100644 --- a/extensions/discord/package.json +++ b/extensions/discord/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/discord", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw Discord channel plugin", "type": "module", "dependencies": { @@ -14,7 +14,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -40,7 +40,7 @@ "npmSpec": "@openclaw/discord", "localPath": "extensions/discord", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "bundle": { "stageRuntimeDependencies": true diff --git a/extensions/elevenlabs/package.json b/extensions/elevenlabs/package.json index d4b5d32f16c0..fcb47ab8fac6 100644 --- a/extensions/elevenlabs/package.json +++ b/extensions/elevenlabs/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/elevenlabs-speech", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw ElevenLabs speech plugin", "type": "module", diff --git a/extensions/fal/package.json b/extensions/fal/package.json index ebe51568a10d..1305177c5741 100644 --- a/extensions/fal/package.json +++ b/extensions/fal/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/fal-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw fal provider plugin", "type": "module", diff --git a/extensions/feishu/package.json b/extensions/feishu/package.json index 33b3df36ced9..526a975243af 100644 --- a/extensions/feishu/package.json +++ b/extensions/feishu/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/feishu", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng)", "type": "module", "dependencies": { @@ -13,7 +13,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -42,7 +42,7 @@ "npmSpec": "@openclaw/feishu", "localPath": "extensions/feishu", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "bundle": { "stageRuntimeDependencies": true diff --git a/extensions/firecrawl/package.json b/extensions/firecrawl/package.json index e891b8293bad..ef821db586cd 100644 --- a/extensions/firecrawl/package.json +++ b/extensions/firecrawl/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/firecrawl-plugin", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Firecrawl plugin", "type": "module", diff --git a/extensions/github-copilot/package.json b/extensions/github-copilot/package.json index 451400221684..18d501a21712 100644 --- a/extensions/github-copilot/package.json +++ b/extensions/github-copilot/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/github-copilot-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw GitHub Copilot provider plugin", "type": "module", diff --git a/extensions/google/package.json b/extensions/google/package.json index 64c04bc67dad..26532100022f 100644 --- a/extensions/google/package.json +++ b/extensions/google/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/google-plugin", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Google plugin", "type": "module", diff --git a/extensions/googlechat/package.json b/extensions/googlechat/package.json index 3b59e6ed1977..96e8700fa50d 100644 --- a/extensions/googlechat/package.json +++ b/extensions/googlechat/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/googlechat", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Google Chat channel plugin", "type": "module", @@ -11,7 +11,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -41,7 +41,7 @@ "npmSpec": "@openclaw/googlechat", "localPath": "extensions/googlechat", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" } } } diff --git a/extensions/huggingface/package.json b/extensions/huggingface/package.json index 7e58582f4f95..8ad4b16ef35a 100644 --- a/extensions/huggingface/package.json +++ b/extensions/huggingface/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/huggingface-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Hugging Face provider plugin", "type": "module", diff --git a/extensions/imessage/package.json b/extensions/imessage/package.json index fa0c2b127873..dd918db89382 100644 --- a/extensions/imessage/package.json +++ b/extensions/imessage/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/imessage", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw iMessage channel plugin", "type": "module", diff --git a/extensions/irc/package.json b/extensions/irc/package.json index bb73c52b2703..e7b958fee248 100644 --- a/extensions/irc/package.json +++ b/extensions/irc/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/irc", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw IRC channel plugin", "type": "module", "dependencies": { @@ -11,7 +11,7 @@ "./index.ts" ], "install": { - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "setupEntry": "./setup-entry.ts", "channel": { diff --git a/extensions/kilocode/package.json b/extensions/kilocode/package.json index 9ef4b7fe0c51..ccee7d0aea9a 100644 --- a/extensions/kilocode/package.json +++ b/extensions/kilocode/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/kilocode-provider", - "version": "2026.3.14", + "version": "2026.3.22", "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 9568afa64b42..50051cec1bbb 100644 --- a/extensions/kimi-coding/package.json +++ b/extensions/kimi-coding/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/kimi-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Kimi provider plugin", "type": "module", diff --git a/extensions/line/package.json b/extensions/line/package.json index 4d918bd656b8..5706354852bd 100644 --- a/extensions/line/package.json +++ b/extensions/line/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/line", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw LINE channel plugin", "type": "module", @@ -8,7 +8,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -34,7 +34,7 @@ "npmSpec": "@openclaw/line", "localPath": "extensions/line", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" } } } diff --git a/extensions/llm-task/package.json b/extensions/llm-task/package.json index 6b19e5cb4b29..58da92d661d0 100644 --- a/extensions/llm-task/package.json +++ b/extensions/llm-task/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/llm-task", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw JSON-only LLM task plugin", "type": "module", diff --git a/extensions/lobster/package.json b/extensions/lobster/package.json index 9280c21b51eb..9ee673fbc2bf 100644 --- a/extensions/lobster/package.json +++ b/extensions/lobster/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/lobster", - "version": "2026.3.14", + "version": "2026.3.22", "description": "Lobster workflow tool plugin (typed pipelines + resumable approvals)", "type": "module", "dependencies": { diff --git a/extensions/matrix/package.json b/extensions/matrix/package.json index 132243d71f15..3dbd6f81f1ae 100644 --- a/extensions/matrix/package.json +++ b/extensions/matrix/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/matrix", - "version": "2026.3.11", + "version": "2026.3.22", "description": "OpenClaw Matrix channel plugin", "type": "module", "dependencies": { @@ -15,7 +15,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -41,7 +41,7 @@ "npmSpec": "@openclaw/matrix", "localPath": "extensions/matrix", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "releaseChecks": { "rootDependencyMirrorAllowlist": [ diff --git a/extensions/mattermost/package.json b/extensions/mattermost/package.json index e483300b7856..19b7e1ceb878 100644 --- a/extensions/mattermost/package.json +++ b/extensions/mattermost/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/mattermost", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw Mattermost channel plugin", "type": "module", "dependencies": { @@ -11,7 +11,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -36,7 +36,7 @@ "npmSpec": "@openclaw/mattermost", "localPath": "extensions/mattermost", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" } } } diff --git a/extensions/memory-core/package.json b/extensions/memory-core/package.json index a6a8d1dbca8e..85e9b6593fa8 100644 --- a/extensions/memory-core/package.json +++ b/extensions/memory-core/package.json @@ -1,11 +1,11 @@ { "name": "@openclaw/memory-core", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw core memory search plugin", "type": "module", "peerDependencies": { - "openclaw": ">=2026.3.11" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { diff --git a/extensions/memory-lancedb/package.json b/extensions/memory-lancedb/package.json index a58ae010cce7..8f63480a1ff9 100644 --- a/extensions/memory-lancedb/package.json +++ b/extensions/memory-lancedb/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/memory-lancedb", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw LanceDB-backed long-term memory plugin with auto-recall/capture", "type": "module", "dependencies": { @@ -16,7 +16,7 @@ "npmSpec": "@openclaw/memory-lancedb", "localPath": "extensions/memory-lancedb", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "release": { "publishToNpm": true diff --git a/extensions/microsoft/package.json b/extensions/microsoft/package.json index 400095cc1f06..85503a5f9206 100644 --- a/extensions/microsoft/package.json +++ b/extensions/microsoft/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/microsoft-speech", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Microsoft speech plugin", "type": "module", diff --git a/extensions/minimax/package.json b/extensions/minimax/package.json index f6c99e0e756a..420a13e136e6 100644 --- a/extensions/minimax/package.json +++ b/extensions/minimax/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/minimax-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw MiniMax provider and OAuth plugin", "type": "module", diff --git a/extensions/mistral/package.json b/extensions/mistral/package.json index 29649db38f56..330467b9b112 100644 --- a/extensions/mistral/package.json +++ b/extensions/mistral/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/mistral-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Mistral provider plugin", "type": "module", diff --git a/extensions/modelstudio/package.json b/extensions/modelstudio/package.json index 631c87d53ca5..93b9b9669efa 100644 --- a/extensions/modelstudio/package.json +++ b/extensions/modelstudio/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/modelstudio-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Model Studio provider plugin", "type": "module", diff --git a/extensions/moonshot/package.json b/extensions/moonshot/package.json index a9dab300c74d..ef4e89a7b350 100644 --- a/extensions/moonshot/package.json +++ b/extensions/moonshot/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/moonshot-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Moonshot provider plugin", "type": "module", diff --git a/extensions/msteams/package.json b/extensions/msteams/package.json index 5c12fc54e6e3..9c8cfc6c00a4 100644 --- a/extensions/msteams/package.json +++ b/extensions/msteams/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/msteams", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw Microsoft Teams channel plugin", "type": "module", "dependencies": { @@ -12,7 +12,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -40,7 +40,7 @@ "npmSpec": "@openclaw/msteams", "localPath": "extensions/msteams", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "release": { "publishToNpm": true diff --git a/extensions/nextcloud-talk/package.json b/extensions/nextcloud-talk/package.json index 7c41d99bae3a..65e2cc6a1ead 100644 --- a/extensions/nextcloud-talk/package.json +++ b/extensions/nextcloud-talk/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/nextcloud-talk", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw Nextcloud Talk channel plugin", "type": "module", "dependencies": { @@ -10,7 +10,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -40,7 +40,7 @@ "npmSpec": "@openclaw/nextcloud-talk", "localPath": "extensions/nextcloud-talk", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "release": { "publishToNpm": true diff --git a/extensions/nostr/package.json b/extensions/nostr/package.json index 105c4a32c659..5f365ae0eb4f 100644 --- a/extensions/nostr/package.json +++ b/extensions/nostr/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/nostr", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw Nostr channel plugin for NIP-04 encrypted DMs", "type": "module", "dependencies": { @@ -11,7 +11,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -37,7 +37,7 @@ "npmSpec": "@openclaw/nostr", "localPath": "extensions/nostr", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "release": { "publishToNpm": true diff --git a/extensions/nvidia/package.json b/extensions/nvidia/package.json index 2caee7667899..2010ba0d4445 100644 --- a/extensions/nvidia/package.json +++ b/extensions/nvidia/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/nvidia-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw NVIDIA provider plugin", "type": "module", diff --git a/extensions/ollama/package.json b/extensions/ollama/package.json index 61a8227c3eda..360c85ee79f4 100644 --- a/extensions/ollama/package.json +++ b/extensions/ollama/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/ollama-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Ollama provider plugin", "type": "module", diff --git a/extensions/open-prose/package.json b/extensions/open-prose/package.json index 69272781198b..fae3d02bc18d 100644 --- a/extensions/open-prose/package.json +++ b/extensions/open-prose/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/open-prose", - "version": "2026.3.14", + "version": "2026.3.22", "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 1e4599dc157e..36ee5e91b23e 100644 --- a/extensions/openai/package.json +++ b/extensions/openai/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/openai-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw OpenAI provider plugins", "type": "module", diff --git a/extensions/opencode-go/package.json b/extensions/opencode-go/package.json index ab32e55d7dc6..0babfae57d5c 100644 --- a/extensions/opencode-go/package.json +++ b/extensions/opencode-go/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/opencode-go-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw OpenCode Go provider plugin", "type": "module", diff --git a/extensions/opencode/package.json b/extensions/opencode/package.json index a8c185cd94bc..ff7ac52ab4e0 100644 --- a/extensions/opencode/package.json +++ b/extensions/opencode/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/opencode-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw OpenCode Zen provider plugin", "type": "module", diff --git a/extensions/openrouter/package.json b/extensions/openrouter/package.json index 243569356f57..47b8e9b3e707 100644 --- a/extensions/openrouter/package.json +++ b/extensions/openrouter/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/openrouter-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw OpenRouter provider plugin", "type": "module", diff --git a/extensions/openshell/package.json b/extensions/openshell/package.json index 464c749ea348..178f6f81ee8f 100644 --- a/extensions/openshell/package.json +++ b/extensions/openshell/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/openshell-sandbox", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw OpenShell sandbox backend", "type": "module", diff --git a/extensions/perplexity/package.json b/extensions/perplexity/package.json index 2a6321ba56c7..22c094188aa6 100644 --- a/extensions/perplexity/package.json +++ b/extensions/perplexity/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/perplexity-plugin", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Perplexity plugin", "type": "module", diff --git a/extensions/qianfan/package.json b/extensions/qianfan/package.json index 57b2177e6d8d..bcf8487af3e3 100644 --- a/extensions/qianfan/package.json +++ b/extensions/qianfan/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/qianfan-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Qianfan provider plugin", "type": "module", diff --git a/extensions/sglang/package.json b/extensions/sglang/package.json index d64495bd1105..4ed1d7a61ae1 100644 --- a/extensions/sglang/package.json +++ b/extensions/sglang/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/sglang-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw SGLang provider plugin", "type": "module", diff --git a/extensions/signal/package.json b/extensions/signal/package.json index f6d4d6c9a1d2..f474fc359a9a 100644 --- a/extensions/signal/package.json +++ b/extensions/signal/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/signal", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Signal channel plugin", "type": "module", diff --git a/extensions/slack/package.json b/extensions/slack/package.json index 6e98b54b7c79..4e11aab79278 100644 --- a/extensions/slack/package.json +++ b/extensions/slack/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/slack", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Slack channel plugin", "type": "module", diff --git a/extensions/synology-chat/package.json b/extensions/synology-chat/package.json index 71c9a2dc7988..c8dd4c05174a 100644 --- a/extensions/synology-chat/package.json +++ b/extensions/synology-chat/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/synology-chat", - "version": "2026.3.14", + "version": "2026.3.22", "description": "Synology Chat channel plugin for OpenClaw", "type": "module", "dependencies": { @@ -24,7 +24,7 @@ "npmSpec": "@openclaw/synology-chat", "localPath": "extensions/synology-chat", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" } } } diff --git a/extensions/synthetic/package.json b/extensions/synthetic/package.json index ec471f1eadfe..37e4b585d7e0 100644 --- a/extensions/synthetic/package.json +++ b/extensions/synthetic/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/synthetic-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Synthetic provider plugin", "type": "module", diff --git a/extensions/tavily/package.json b/extensions/tavily/package.json index 3d693a6ca38f..34f263b9cba3 100644 --- a/extensions/tavily/package.json +++ b/extensions/tavily/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/tavily-plugin", - "version": "2026.3.17", + "version": "2026.3.22", "private": true, "description": "OpenClaw Tavily plugin", "type": "module", diff --git a/extensions/telegram/package.json b/extensions/telegram/package.json index 01b1b5d9906a..37ed23fe0e07 100644 --- a/extensions/telegram/package.json +++ b/extensions/telegram/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/telegram", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Telegram channel plugin", "type": "module", diff --git a/extensions/tlon/package.json b/extensions/tlon/package.json index a9487b0740a2..3bef162f2bf8 100644 --- a/extensions/tlon/package.json +++ b/extensions/tlon/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/tlon", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw Tlon/Urbit channel plugin", "type": "module", "dependencies": { @@ -14,7 +14,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -40,7 +40,7 @@ "npmSpec": "@openclaw/tlon", "localPath": "extensions/tlon", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" } } } diff --git a/extensions/together/package.json b/extensions/together/package.json index 982a0a03734e..c0ff85ec2691 100644 --- a/extensions/together/package.json +++ b/extensions/together/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/together-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Together provider plugin", "type": "module", diff --git a/extensions/twitch/package.json b/extensions/twitch/package.json index 1c572354de00..9c55b9ce2df0 100644 --- a/extensions/twitch/package.json +++ b/extensions/twitch/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/twitch", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw Twitch channel plugin", "type": "module", "dependencies": { @@ -14,7 +14,7 @@ "./index.ts" ], "install": { - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "channel": { "id": "twitch", diff --git a/extensions/venice/package.json b/extensions/venice/package.json index 1fa9b083088d..bfe83a328318 100644 --- a/extensions/venice/package.json +++ b/extensions/venice/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/venice-provider", - "version": "2026.3.14", + "version": "2026.3.22", "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 c81a82e40c02..2d67c78b6a44 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.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Vercel AI Gateway provider plugin", "type": "module", diff --git a/extensions/vllm/package.json b/extensions/vllm/package.json index bb2936103554..02b26e173583 100644 --- a/extensions/vllm/package.json +++ b/extensions/vllm/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/vllm-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw vLLM provider plugin", "type": "module", diff --git a/extensions/voice-call/package.json b/extensions/voice-call/package.json index 9f4141515738..866841451742 100644 --- a/extensions/voice-call/package.json +++ b/extensions/voice-call/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/voice-call", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw voice-call plugin", "type": "module", "dependencies": { @@ -13,7 +13,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -25,7 +25,7 @@ "./index.ts" ], "install": { - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "release": { "publishToNpm": true diff --git a/extensions/volcengine/package.json b/extensions/volcengine/package.json index 5e65f3522ae8..46a5d9dc078e 100644 --- a/extensions/volcengine/package.json +++ b/extensions/volcengine/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/volcengine-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Volcengine provider plugin", "type": "module", diff --git a/extensions/whatsapp/package.json b/extensions/whatsapp/package.json index b3d3cd85f5cd..ffb489c1402d 100644 --- a/extensions/whatsapp/package.json +++ b/extensions/whatsapp/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/whatsapp", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw WhatsApp channel plugin", "type": "module", "dependencies": { @@ -10,7 +10,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -36,7 +36,7 @@ "npmSpec": "@openclaw/whatsapp", "localPath": "extensions/whatsapp", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "release": { "publishToNpm": true diff --git a/extensions/xai/package.json b/extensions/xai/package.json index be904ee3c894..9a1e5574c3f2 100644 --- a/extensions/xai/package.json +++ b/extensions/xai/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/xai-plugin", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw xAI plugin", "type": "module", diff --git a/extensions/xiaomi/package.json b/extensions/xiaomi/package.json index dc89cc57160f..3374f7cc5624 100644 --- a/extensions/xiaomi/package.json +++ b/extensions/xiaomi/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/xiaomi-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Xiaomi provider plugin", "type": "module", diff --git a/extensions/zai/package.json b/extensions/zai/package.json index 10283bbdbdd9..5c1a054ad1b3 100644 --- a/extensions/zai/package.json +++ b/extensions/zai/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/zai-provider", - "version": "2026.3.14", + "version": "2026.3.22", "private": true, "description": "OpenClaw Z.AI provider plugin", "type": "module", diff --git a/extensions/zalo/package.json b/extensions/zalo/package.json index 9c67d3541e82..708a262c5280 100644 --- a/extensions/zalo/package.json +++ b/extensions/zalo/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/zalo", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw Zalo channel plugin", "type": "module", "dependencies": { @@ -11,7 +11,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -40,7 +40,7 @@ "npmSpec": "@openclaw/zalo", "localPath": "extensions/zalo", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "release": { "publishToNpm": true diff --git a/extensions/zalouser/package.json b/extensions/zalouser/package.json index d93dad63be3f..e6d68788c538 100644 --- a/extensions/zalouser/package.json +++ b/extensions/zalouser/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/zalouser", - "version": "2026.3.14", + "version": "2026.3.22", "description": "OpenClaw Zalo Personal Account plugin via native zca-js integration", "type": "module", "dependencies": { @@ -12,7 +12,7 @@ "openclaw": "workspace:*" }, "peerDependencies": { - "openclaw": ">=2026.3.14" + "openclaw": ">=2026.3.22" }, "peerDependenciesMeta": { "openclaw": { @@ -41,7 +41,7 @@ "npmSpec": "@openclaw/zalouser", "localPath": "extensions/zalouser", "defaultChoice": "npm", - "minHostVersion": ">=2026.3.14" + "minHostVersion": ">=2026.3.22" }, "release": { "publishToNpm": true diff --git a/package.json b/package.json index 713b027b4e44..e358cfe7e847 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openclaw", - "version": "2026.3.14", + "version": "2026.3.22", "description": "Multi-channel AI gateway with extensible messaging integrations", "keywords": [], "homepage": "https://github.com/openclaw/openclaw#readme", diff --git a/src/agents/pi-embedded-runner/extra-params.openai.test.ts b/src/agents/pi-embedded-runner/extra-params.openai.test.ts index f7f033f58278..23ee7ae9bd4a 100644 --- a/src/agents/pi-embedded-runner/extra-params.openai.test.ts +++ b/src/agents/pi-embedded-runner/extra-params.openai.test.ts @@ -31,7 +31,7 @@ describe("extra-params: OpenAI attribution", () => { }); it("injects originator and release-based user agent for native OpenAI", () => { - process.env.OPENCLAW_VERSION = "2026.3.14"; + process.env.OPENCLAW_VERSION = "2026.3.22"; const { headers } = applyAndCapture({ provider: "openai", @@ -41,12 +41,12 @@ describe("extra-params: OpenAI attribution", () => { expect(headers).toEqual({ originator: "openclaw", - "User-Agent": "openclaw/2026.3.14", + "User-Agent": "openclaw/2026.3.22", }); }); it("overrides caller-supplied OpenAI attribution headers", () => { - process.env.OPENCLAW_VERSION = "2026.3.14"; + process.env.OPENCLAW_VERSION = "2026.3.22"; const { headers } = applyAndCapture({ provider: "openai", @@ -61,13 +61,13 @@ describe("extra-params: OpenAI attribution", () => { expect(headers).toEqual({ originator: "openclaw", - "User-Agent": "openclaw/2026.3.14", + "User-Agent": "openclaw/2026.3.22", "X-Custom": "1", }); }); it("does not inject attribution on non-native OpenAI-compatible base URLs", () => { - process.env.OPENCLAW_VERSION = "2026.3.14"; + process.env.OPENCLAW_VERSION = "2026.3.22"; const { headers } = applyAndCapture({ provider: "openai", @@ -79,7 +79,7 @@ describe("extra-params: OpenAI attribution", () => { }); it("injects attribution for ChatGPT-backed OpenAI Codex traffic", () => { - process.env.OPENCLAW_VERSION = "2026.3.14"; + process.env.OPENCLAW_VERSION = "2026.3.22"; const { headers } = applyAndCapture({ provider: "openai-codex", @@ -89,7 +89,7 @@ describe("extra-params: OpenAI attribution", () => { expect(headers).toEqual({ originator: "openclaw", - "User-Agent": "openclaw/2026.3.14", + "User-Agent": "openclaw/2026.3.22", }); }); }); diff --git a/src/agents/provider-attribution.test.ts b/src/agents/provider-attribution.test.ts index 04c7d040b175..2a65360057e3 100644 --- a/src/agents/provider-attribution.test.ts +++ b/src/agents/provider-attribution.test.ts @@ -20,7 +20,7 @@ describe("provider attribution", () => { it("returns a documented OpenRouter attribution policy", () => { const policy = resolveProviderAttributionPolicy("openrouter", { - OPENCLAW_VERSION: "2026.3.14", + OPENCLAW_VERSION: "2026.3.22", }); expect(policy).toEqual({ @@ -31,7 +31,7 @@ describe("provider attribution", () => { docsUrl: "https://openrouter.ai/docs/app-attribution", reviewNote: "Documented app attribution headers. Verified in OpenClaw runtime wrapper.", product: "OpenClaw", - version: "2026.3.14", + version: "2026.3.22", headers: { "HTTP-Referer": "https://openclaw.ai", "X-OpenRouter-Title": "OpenClaw", @@ -43,7 +43,7 @@ describe("provider attribution", () => { it("normalizes aliases when resolving provider headers", () => { expect( resolveProviderAttributionHeaders("OpenRouter", { - OPENCLAW_VERSION: "2026.3.14", + OPENCLAW_VERSION: "2026.3.22", }), ).toEqual({ "HTTP-Referer": "https://openclaw.ai", @@ -53,7 +53,7 @@ describe("provider attribution", () => { }); it("returns a hidden-spec OpenAI attribution policy", () => { - expect(resolveProviderAttributionPolicy("openai", { OPENCLAW_VERSION: "2026.3.14" })).toEqual({ + expect(resolveProviderAttributionPolicy("openai", { OPENCLAW_VERSION: "2026.3.22" })).toEqual({ provider: "openai", enabledByDefault: true, verification: "vendor-hidden-api-spec", @@ -61,21 +61,21 @@ describe("provider attribution", () => { reviewNote: "OpenAI native traffic supports hidden originator/User-Agent attribution. Verified against the Codex wire contract.", product: "OpenClaw", - version: "2026.3.14", + version: "2026.3.22", headers: { originator: "openclaw", - "User-Agent": "openclaw/2026.3.14", + "User-Agent": "openclaw/2026.3.22", }, }); - expect(resolveProviderAttributionHeaders("openai", { OPENCLAW_VERSION: "2026.3.14" })).toEqual({ + expect(resolveProviderAttributionHeaders("openai", { OPENCLAW_VERSION: "2026.3.22" })).toEqual({ originator: "openclaw", - "User-Agent": "openclaw/2026.3.14", + "User-Agent": "openclaw/2026.3.22", }); }); it("returns a hidden-spec OpenAI Codex attribution policy", () => { expect( - resolveProviderAttributionPolicy("openai-codex", { OPENCLAW_VERSION: "2026.3.14" }), + resolveProviderAttributionPolicy("openai-codex", { OPENCLAW_VERSION: "2026.3.22" }), ).toEqual({ provider: "openai-codex", enabledByDefault: true, @@ -84,17 +84,17 @@ describe("provider attribution", () => { reviewNote: "OpenAI Codex ChatGPT-backed traffic supports the same hidden originator/User-Agent attribution contract.", product: "OpenClaw", - version: "2026.3.14", + version: "2026.3.22", headers: { originator: "openclaw", - "User-Agent": "openclaw/2026.3.14", + "User-Agent": "openclaw/2026.3.22", }, }); }); it("lists the current attribution support matrix", () => { expect( - listProviderAttributionPolicies({ OPENCLAW_VERSION: "2026.3.14" }).map((policy) => [ + listProviderAttributionPolicies({ OPENCLAW_VERSION: "2026.3.22" }).map((policy) => [ policy.provider, policy.enabledByDefault, policy.verification, diff --git a/src/commands/node-daemon-install-helpers.test.ts b/src/commands/node-daemon-install-helpers.test.ts index 536bea1d014d..b97441abfeba 100644 --- a/src/commands/node-daemon-install-helpers.test.ts +++ b/src/commands/node-daemon-install-helpers.test.ts @@ -41,7 +41,7 @@ describe("buildNodeInstallPlan", () => { }); mocks.renderSystemNodeWarning.mockReturnValue(undefined); mocks.buildNodeServiceEnvironment.mockReturnValue({ - OPENCLAW_SERVICE_VERSION: "2026.3.14", + OPENCLAW_SERVICE_VERSION: "2026.3.22", }); const plan = await buildNodeInstallPlan({ @@ -53,7 +53,7 @@ describe("buildNodeInstallPlan", () => { }); expect(plan.environment).toEqual({ - OPENCLAW_SERVICE_VERSION: "2026.3.14", + OPENCLAW_SERVICE_VERSION: "2026.3.22", }); expect(mocks.resolvePreferredNodePath).not.toHaveBeenCalled(); expect(mocks.buildNodeServiceEnvironment).toHaveBeenCalledWith({ @@ -74,7 +74,7 @@ describe("buildNodeInstallPlan", () => { }); mocks.renderSystemNodeWarning.mockReturnValue(undefined); mocks.buildNodeServiceEnvironment.mockReturnValue({ - OPENCLAW_SERVICE_VERSION: "2026.3.14", + OPENCLAW_SERVICE_VERSION: "2026.3.22", }); await buildNodeInstallPlan({ diff --git a/src/infra/clawhub.test.ts b/src/infra/clawhub.test.ts index 42857effbe6f..6c92a7d342ca 100644 --- a/src/infra/clawhub.test.ts +++ b/src/infra/clawhub.test.ts @@ -59,8 +59,8 @@ describe("clawhub helpers", () => { }); it("checks min gateway versions with loose host labels", () => { - expect(satisfiesGatewayMinimum("2026.3.14", "2026.3.0")).toBe(true); - expect(satisfiesGatewayMinimum("OpenClaw 2026.3.14", "2026.3.0")).toBe(true); + expect(satisfiesGatewayMinimum("2026.3.22", "2026.3.0")).toBe(true); + expect(satisfiesGatewayMinimum("OpenClaw 2026.3.22", "2026.3.0")).toBe(true); expect(satisfiesGatewayMinimum("2026.2.9", "2026.3.0")).toBe(false); expect(satisfiesGatewayMinimum("unknown", "2026.3.0")).toBe(false); }); diff --git a/src/infra/update-global.test.ts b/src/infra/update-global.test.ts index 3df6151e11c4..e9007bf28d1f 100644 --- a/src/infra/update-global.test.ts +++ b/src/infra/update-global.test.ts @@ -93,7 +93,7 @@ describe("update global helpers", () => { expect(isExplicitPackageInstallSpec("beta")).toBe(false); expect(canResolveRegistryVersionForPackageTarget("latest")).toBe(true); - expect(canResolveRegistryVersionForPackageTarget("2026.3.14")).toBe(true); + expect(canResolveRegistryVersionForPackageTarget("2026.3.22")).toBe(true); expect(canResolveRegistryVersionForPackageTarget("main")).toBe(false); expect(canResolveRegistryVersionForPackageTarget("github:openclaw/openclaw#main")).toBe(false); }); diff --git a/src/plugins/clawhub.test.ts b/src/plugins/clawhub.test.ts index 8d371f6fc06b..76764b489c2e 100644 --- a/src/plugins/clawhub.test.ts +++ b/src/plugins/clawhub.test.ts @@ -76,7 +76,7 @@ describe("installPluginFromClawHub", () => { integrity: "sha256-demo", }); satisfiesPluginApiRangeMock.mockReturnValue(true); - resolveRuntimeServiceVersionMock.mockReturnValue("2026.3.14"); + resolveRuntimeServiceVersionMock.mockReturnValue("2026.3.22"); satisfiesGatewayMinimumMock.mockReturnValue(true); installPluginFromArchiveMock.mockResolvedValue({ ok: true, diff --git a/src/plugins/install-min-host-version-guardrails.test.ts b/src/plugins/install-min-host-version-guardrails.test.ts index 263449e2ea6c..d8fada776194 100644 --- a/src/plugins/install-min-host-version-guardrails.test.ts +++ b/src/plugins/install-min-host-version-guardrails.test.ts @@ -4,7 +4,7 @@ import { describe, expect, it } from "vitest"; import { isAtLeast, parseSemver } from "../infra/runtime-guard.js"; import { parseMinHostVersionRequirement } from "./min-host-version.js"; -const MIN_HOST_VERSION_BASELINE = "2026.3.14"; +const MIN_HOST_VERSION_BASELINE = "2026.3.22"; const PLUGIN_MANIFEST_PATHS_REQUIRING_MIN_HOST_VERSION = [ "extensions/bluebubbles/package.json", "extensions/discord/package.json", diff --git a/src/plugins/install.test.ts b/src/plugins/install.test.ts index 69c6f866646b..fd314b7840e9 100644 --- a/src/plugins/install.test.ts +++ b/src/plugins/install.test.ts @@ -781,7 +781,7 @@ describe("installPluginFromDir", () => { }); it("rejects plugins whose minHostVersion is newer than the current host", async () => { - vi.stubEnv("OPENCLAW_VERSION", "2026.3.13"); + vi.stubEnv("OPENCLAW_VERSION", "2026.3.21"); const { pluginDir, extensionsDir } = setupInstallPluginFromDirFixture(); const packageJsonPath = path.join(pluginDir, "package.json"); const manifest = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8")) as { @@ -791,7 +791,7 @@ describe("installPluginFromDir", () => { ...manifest.openclaw, install: { ...manifest.openclaw?.install, - minHostVersion: ">=2026.3.14", + minHostVersion: ">=2026.3.22", }, }; fs.writeFileSync(packageJsonPath, JSON.stringify(manifest), "utf-8"); @@ -806,7 +806,7 @@ describe("installPluginFromDir", () => { return; } expect(result.code).toBe(PLUGIN_INSTALL_ERROR_CODE.INCOMPATIBLE_HOST_VERSION); - expect(result.error).toContain("requires OpenClaw >=2026.3.14, but this host is 2026.3.13"); + expect(result.error).toContain("requires OpenClaw >=2026.3.22, but this host is 2026.3.21"); expect(vi.mocked(runCommandWithTimeout)).not.toHaveBeenCalled(); }); @@ -820,7 +820,7 @@ describe("installPluginFromDir", () => { ...manifest.openclaw, install: { ...manifest.openclaw?.install, - minHostVersion: "2026.3.14", + minHostVersion: "2026.3.22", }, }; fs.writeFileSync(packageJsonPath, JSON.stringify(manifest), "utf-8"); @@ -850,7 +850,7 @@ describe("installPluginFromDir", () => { ...manifest.openclaw, install: { ...manifest.openclaw?.install, - minHostVersion: ">=2026.3.14", + minHostVersion: ">=2026.3.22", }, }; fs.writeFileSync(packageJsonPath, JSON.stringify(manifest), "utf-8"); diff --git a/src/plugins/manifest-registry.test.ts b/src/plugins/manifest-registry.test.ts index 14c9e8d0f607..1b7105287ef2 100644 --- a/src/plugins/manifest-registry.test.ts +++ b/src/plugins/manifest-registry.test.ts @@ -250,7 +250,7 @@ describe("loadPluginManifestRegistry", () => { const registry = loadPluginManifestRegistry({ cache: false, - env: { OPENCLAW_VERSION: "2026.3.13" }, + env: { OPENCLAW_VERSION: "2026.3.21" }, candidates: [ createPluginCandidate({ idHint: "synology-chat", @@ -260,7 +260,7 @@ describe("loadPluginManifestRegistry", () => { packageManifest: { install: { npmSpec: "@openclaw/synology-chat", - minHostVersion: ">=2026.3.14", + minHostVersion: ">=2026.3.22", }, }, }), @@ -270,7 +270,7 @@ describe("loadPluginManifestRegistry", () => { expect(registry.plugins).toEqual([]); expect( registry.diagnostics.some((diag) => - diag.message.includes("plugin requires OpenClaw >=2026.3.14, but this host is 2026.3.13"), + diag.message.includes("plugin requires OpenClaw >=2026.3.22, but this host is 2026.3.21"), ), ).toBe(true); }); @@ -290,7 +290,7 @@ describe("loadPluginManifestRegistry", () => { packageManifest: { install: { npmSpec: "@openclaw/synology-chat", - minHostVersion: "2026.3.14", + minHostVersion: "2026.3.22", }, }, }), @@ -321,7 +321,7 @@ describe("loadPluginManifestRegistry", () => { packageManifest: { install: { npmSpec: "@openclaw/synology-chat", - minHostVersion: ">=2026.3.14", + minHostVersion: ">=2026.3.22", }, }, }), @@ -836,7 +836,7 @@ describe("loadPluginManifestRegistry", () => { packageManifest: { install: { npmSpec: "@openclaw/synology-chat", - minHostVersion: ">=2026.3.14", + minHostVersion: ">=2026.3.22", }, }, }), @@ -847,7 +847,7 @@ describe("loadPluginManifestRegistry", () => { candidates, env: { ...process.env, - OPENCLAW_VERSION: "2026.3.13", + OPENCLAW_VERSION: "2026.3.21", }, }); const newerHost = loadPluginManifestRegistry({ @@ -855,17 +855,17 @@ describe("loadPluginManifestRegistry", () => { candidates, env: { ...process.env, - OPENCLAW_VERSION: "2026.3.14", + OPENCLAW_VERSION: "2026.3.22", }, }); expect(olderHost.plugins).toEqual([]); expect( - olderHost.diagnostics.some((diag) => diag.message.includes("this host is 2026.3.13")), + olderHost.diagnostics.some((diag) => diag.message.includes("this host is 2026.3.21")), ).toBe(true); expect(newerHost.plugins.some((plugin) => plugin.id === "synology-chat")).toBe(true); expect( - newerHost.diagnostics.some((diag) => diag.message.includes("this host is 2026.3.13")), + newerHost.diagnostics.some((diag) => diag.message.includes("this host is 2026.3.21")), ).toBe(false); }); }); diff --git a/src/plugins/min-host-version.test.ts b/src/plugins/min-host-version.test.ts index 8ec584209f22..d896b81dd664 100644 --- a/src/plugins/min-host-version.test.ts +++ b/src/plugins/min-host-version.test.ts @@ -10,7 +10,7 @@ describe("min-host-version", () => { it("accepts empty metadata", () => { expect(validateMinHostVersion(undefined)).toBeNull(); expect(parseMinHostVersionRequirement(undefined)).toBeNull(); - expect(checkMinHostVersion({ currentVersion: "2026.3.14", minHostVersion: undefined })).toEqual( + expect(checkMinHostVersion({ currentVersion: "2026.3.22", minHostVersion: undefined })).toEqual( { ok: true, requirement: null, @@ -19,18 +19,18 @@ describe("min-host-version", () => { }); it("parses semver floors", () => { - expect(parseMinHostVersionRequirement(">=2026.3.14")).toEqual({ - raw: ">=2026.3.14", - minimumLabel: "2026.3.14", + expect(parseMinHostVersionRequirement(">=2026.3.22")).toEqual({ + raw: ">=2026.3.22", + minimumLabel: "2026.3.22", }); }); it("rejects invalid floor syntax", () => { - expect(validateMinHostVersion("2026.3.14")).toBe(MIN_HOST_VERSION_FORMAT); + expect(validateMinHostVersion("2026.3.22")).toBe(MIN_HOST_VERSION_FORMAT); expect(validateMinHostVersion(123)).toBe(MIN_HOST_VERSION_FORMAT); - expect(validateMinHostVersion(">=2026.3.14 garbage")).toBe(MIN_HOST_VERSION_FORMAT); + expect(validateMinHostVersion(">=2026.3.22 garbage")).toBe(MIN_HOST_VERSION_FORMAT); expect( - checkMinHostVersion({ currentVersion: "2026.3.14", minHostVersion: "2026.3.14" }), + checkMinHostVersion({ currentVersion: "2026.3.22", minHostVersion: "2026.3.22" }), ).toEqual({ ok: false, kind: "invalid", @@ -39,7 +39,7 @@ describe("min-host-version", () => { }); it("treats non-string host floor metadata as invalid instead of throwing", () => { - expect(checkMinHostVersion({ currentVersion: "2026.3.14", minHostVersion: 123 })).toEqual({ + expect(checkMinHostVersion({ currentVersion: "2026.3.22", minHostVersion: 123 })).toEqual({ ok: false, kind: "invalid", error: MIN_HOST_VERSION_FORMAT, @@ -48,48 +48,48 @@ describe("min-host-version", () => { it("reports unknown host versions distinctly", () => { expect( - checkMinHostVersion({ currentVersion: "unknown", minHostVersion: ">=2026.3.14" }), + checkMinHostVersion({ currentVersion: "unknown", minHostVersion: ">=2026.3.22" }), ).toEqual({ ok: false, kind: "unknown_host_version", requirement: { - raw: ">=2026.3.14", - minimumLabel: "2026.3.14", + raw: ">=2026.3.22", + minimumLabel: "2026.3.22", }, }); }); it("reports incompatible hosts", () => { expect( - checkMinHostVersion({ currentVersion: "2026.3.13", minHostVersion: ">=2026.3.14" }), + checkMinHostVersion({ currentVersion: "2026.3.21", minHostVersion: ">=2026.3.22" }), ).toEqual({ ok: false, kind: "incompatible", - currentVersion: "2026.3.13", + currentVersion: "2026.3.21", requirement: { - raw: ">=2026.3.14", - minimumLabel: "2026.3.14", + raw: ">=2026.3.22", + minimumLabel: "2026.3.22", }, }); }); it("accepts equal or newer hosts", () => { expect( - checkMinHostVersion({ currentVersion: "2026.3.14", minHostVersion: ">=2026.3.14" }), + checkMinHostVersion({ currentVersion: "2026.3.22", minHostVersion: ">=2026.3.22" }), ).toEqual({ ok: true, requirement: { - raw: ">=2026.3.14", - minimumLabel: "2026.3.14", + raw: ">=2026.3.22", + minimumLabel: "2026.3.22", }, }); expect( - checkMinHostVersion({ currentVersion: "2026.4.0", minHostVersion: ">=2026.3.14" }), + checkMinHostVersion({ currentVersion: "2026.4.0", minHostVersion: ">=2026.3.22" }), ).toEqual({ ok: true, requirement: { - raw: ">=2026.3.14", - minimumLabel: "2026.3.14", + raw: ">=2026.3.22", + minimumLabel: "2026.3.22", }, }); });