Compare commits

...

12 Commits

Author SHA1 Message Date
Tideclaw
a1a499ee6a test(whatsapp): align setup and login coverage expectations 2026-05-21 15:16:31 +00:00
Peter Steinberger
b456d95854 fix(agent): lock Pi session event persistence
(cherry picked from commit de843290d6fb9c571a274c4fab0b4309f224495b)
2026-05-21 15:07:32 +00:00
Peter Steinberger
fe54be5a0c fix(agent): allow prompt-owned assistant transcript writes
(cherry picked from commit b8bda32b5a0a92ed6db541f312d3da759a160abf)
2026-05-21 15:07:32 +00:00
Tideclaw
3409f9e011 chore: prepare alpha 2026.5.21-alpha.1 2026-05-21 14:26:59 +00:00
Tideclaw
44c5f58f4e chore: refresh release generated baselines 2026-05-21 14:15:39 +00:00
Tideclaw
d218320dfd fix: stabilize plugin prerelease checks
(cherry picked from commit f5611643f6b0ec5bdec29458e61bc67386c5c983)
2026-05-21 14:12:12 +00:00
Tideclaw
07fac81f60 fix: reset macos swift build cache
(cherry picked from commit 3f75f1a621bf1fe84bf03988a2526b6492ff7ef8)
2026-05-21 14:11:49 +00:00
Tideclaw
97482aecfe fix: clear swiftpm sparkle artifact cache
(cherry picked from commit b517edc45d99fac85f31f69bee5918688da86ec2)
2026-05-21 14:11:49 +00:00
Tideclaw
ad6944e07d fix: repair macos swift artifact cache
(cherry picked from commit f790b3beb10f026102e9a75daa1b064f5e6a5976)
2026-05-21 14:11:49 +00:00
Tideclaw
ff12508123 fix: align plugin prerelease guardrails
(cherry picked from commit ca8c7224a3bf4165723755358f579098cce193bd)
2026-05-21 14:11:49 +00:00
Tideclaw
97e7fe571b test: align fs-safe dependency contracts
(cherry picked from commit b13b13f1d012b434e8c511591b4fa790a5190c68)
2026-05-21 14:11:49 +00:00
Tideclaw
a1d32c384b fix: align release dependency guardrails
(cherry picked from commit 2a83073226a1c56bd3fad5876be840822358de32)
2026-05-21 14:11:49 +00:00
141 changed files with 469 additions and 235 deletions

View File

@@ -1664,10 +1664,23 @@ jobs:
restore-keys: |
${{ runner.os }}-swift-build-v2-${{ steps.swift-toolchain.outputs.key }}-
- name: Reset Swift binary artifact cache
run: |
set -euo pipefail
# SwiftPM can restore a stale binary-artifact cache where the
# Sparkle.xcframework directory exists without its Info.plist.
# Clear the restored build workspace plus Sparkle's shared artifact
# cache so the release build resolves artifacts from Package.resolved.
rm -rf apps/macos/.build "$HOME/Library/Caches/org.swift.swiftpm/artifacts/sparkle"
- name: Preserve Swift build cache hit
if: steps.swift-build-cache.outputs.cache-hit == 'true'
run: |
set -euo pipefail
if [ ! -d apps/macos/.build ]; then
echo "Swift build cache was reset; skipping mtime preservation."
exit 0
fi
# Exact source-hash cache hits already match these inputs; checkout
# mtimes are the only reason SwiftPM rebuilds cached products.
find apps/macos/Sources apps/macos/Tests apps/shared/OpenClawKit/Sources apps/swabble/Sources apps/macos/.build/checkouts \

View File

@@ -1,4 +1,4 @@
d4642e195d2c888e88943987a35b1db11705994bcf1068ef0991d55da3bf43d0 config-baseline.json
45be5d748fd14d1c3c354ace120b10ab5d9dbb158d81317f14c826d184bd2b80 config-baseline.core.json
ac40b9cf09c84cadc038f845c03dedeeb1cc99706171bcdc77dab01d07423717 config-baseline.json
734ab59e53bed38e704068b2cf50bd451edb8952354c93eb868e0fe6f320c25d config-baseline.core.json
1140e56af8ff5c0eae303568478a53ba18b82e157c82d8f1ce4a1f24694318f4 config-baseline.channel.json
d455f53b424976f99990330503692728121cbbeff04014fb50b5eed23aae59d4 config-baseline.plugin.json

View File

@@ -1,2 +1,2 @@
82df91b00ea3eec0e12fd31047b11e64b0dbe2ab48f80d7b91f91122d072931a plugin-sdk-api-baseline.json
e9dcd5969e27a7325f7790a2e1d7db6c3aba40a7cbbb5f7af0368f5cc095d17c plugin-sdk-api-baseline.jsonl
cf0ec9251b451c1d7ac238c9ef03206ed0ae13597a228226aa2dad011580773a plugin-sdk-api-baseline.json
94b9c57338a19482172fc18290cdc316a93f7afda7daf7cb049c784699cf25e7 plugin-sdk-api-baseline.jsonl

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/acpx",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw ACP runtime backend",
"repository": {
"type": "git",
@@ -26,10 +26,10 @@
"minHostVersion": ">=2026.4.25"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20",
"openclawVersion": "2026.5.21-alpha.1",
"staticAssets": [
{
"source": "./src/runtime-internals/mcp-proxy.mjs",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/admin-http-rpc",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw admin HTTP RPC endpoint",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/alibaba-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Alibaba Model Studio video provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/amazon-bedrock-mantle-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Amazon Bedrock Mantle (OpenAI-compatible) provider plugin",
"repository": {
"type": "git",
@@ -25,10 +25,10 @@
"minHostVersion": ">=2026.5.12-beta.1"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20",
"openclawVersion": "2026.5.21-alpha.1",
"bundledDist": false
},
"release": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/amazon-bedrock-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Amazon Bedrock provider plugin",
"repository": {
"type": "git",
@@ -27,10 +27,10 @@
"minHostVersion": ">=2026.5.12-beta.1"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20",
"openclawVersion": "2026.5.21-alpha.1",
"bundledDist": false
},
"release": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/anthropic-vertex-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Anthropic Vertex provider plugin",
"repository": {
"type": "git",
@@ -25,10 +25,10 @@
"minHostVersion": ">=2026.5.12-beta.1"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20",
"openclawVersion": "2026.5.21-alpha.1",
"bundledDist": false
},
"release": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/anthropic-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Anthropic provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/arcee-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Arcee provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/azure-speech",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Azure Speech plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/bonjour",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Bonjour/mDNS gateway discovery",
"type": "module",
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/brave-plugin",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Brave plugin",
"repository": {
"type": "git",
@@ -21,10 +21,10 @@
"allowInvalidConfigRecovery": true
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/browser-plugin",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw browser tool plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/byteplus-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw BytePlus provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/canvas-plugin",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Canvas plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/cerebras-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Cerebras provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/chutes-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Chutes.ai provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/clickclack",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw ClickClack channel plugin",
"type": "module",
@@ -18,7 +18,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/cloudflare-ai-gateway-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Cloudflare AI Gateway provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/codex",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"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.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/comfy-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw ComfyUI provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/copilot-proxy",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Copilot Proxy provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/deepgram-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Deepgram media-understanding provider",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/deepinfra-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw DeepInfra provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/deepseek-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw DeepSeek provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/diagnostics-otel",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw diagnostics OpenTelemetry exporter",
"repository": {
"type": "git",
@@ -34,10 +34,10 @@
"minHostVersion": ">=2026.4.25"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/diagnostics-prometheus",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw diagnostics Prometheus exporter",
"repository": {
"type": "git",
@@ -21,10 +21,10 @@
"minHostVersion": ">=2026.4.25"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/diffs",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw diff viewer plugin",
"repository": {
"type": "git",
@@ -31,10 +31,10 @@
"minHostVersion": ">=2026.4.30"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20",
"openclawVersion": "2026.5.21-alpha.1",
"staticAssets": [
{
"source": "./assets/viewer-runtime.js",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/discord",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Discord channel plugin",
"repository": {
"type": "git",
@@ -21,7 +21,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -65,10 +65,10 @@
"allowInvalidConfigRecovery": true
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/document-extract-plugin",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw local document extraction plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/duckduckgo-plugin",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw DuckDuckGo plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/elevenlabs-speech",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw ElevenLabs speech plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/exa-plugin",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Exa plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/fal-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw fal provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/feishu",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng)",
"repository": {
"type": "git",
@@ -17,7 +17,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -48,10 +48,10 @@
"minHostVersion": ">=2026.4.25"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/file-transfer",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw file transfer plugin (file_fetch, dir_list, dir_fetch, file_write)",
"type": "module",
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/firecrawl-plugin",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Firecrawl plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/fireworks-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Fireworks provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/github-copilot-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw GitHub Copilot provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/google-meet",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Google Meet participant plugin",
"repository": {
"type": "git",
@@ -16,7 +16,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -33,10 +33,10 @@
"minHostVersion": ">=2026.4.20"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/google-plugin",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Google plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/googlechat",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Google Chat channel plugin",
"repository": {
"type": "git",
@@ -17,7 +17,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -75,10 +75,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/gradium-speech",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Gradium speech plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/groq-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Groq media-understanding provider",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/huggingface-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Hugging Face provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/image-generation-core",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw image generation runtime package",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/imessage",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw iMessage channel plugin using imsg on a signed-in Mac",
"type": "module",
@@ -40,10 +40,10 @@
]
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
}
},
"pluginInspector": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/inworld-speech",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Inworld speech plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/irc",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw IRC channel plugin",
"type": "module",
"devDependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/kilocode-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Kilo Gateway provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/kimi-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Kimi provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/line",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw LINE channel plugin",
"repository": {
"type": "git",
@@ -16,7 +16,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -46,10 +46,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/litellm-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw LiteLLM provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/llm-task",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw JSON-only LLM task plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/lmstudio-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw LM Studio provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/lobster",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "Lobster workflow tool plugin (typed pipelines + resumable approvals)",
"repository": {
"type": "git",
@@ -25,10 +25,10 @@
"minHostVersion": ">=2026.4.25"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,5 +1,11 @@
# Changelog
## 2026.5.21-alpha.1
### Changes
- Version alignment with core OpenClaw release numbers.
## 2026.5.20
### Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/matrix",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Matrix channel plugin",
"repository": {
"type": "git",
@@ -22,7 +22,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -87,10 +87,10 @@
"allowInvalidConfigRecovery": true
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/mattermost",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Mattermost channel plugin",
"repository": {
"type": "git",
@@ -16,7 +16,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/media-understanding-core",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw media understanding runtime package",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/memory-core",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw core memory search plugin",
"type": "module",
@@ -14,7 +14,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -9,7 +9,11 @@ import {
spyRuntimeLogs,
} from "openclaw/plugin-sdk/test-fixtures";
import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
import { readShortTermRecallEntries, recordShortTermRecalls } from "./short-term-promotion.js";
import {
readShortTermRecallEntries,
recordShortTermRecalls,
waitForPendingShortTermWrites,
} from "./short-term-promotion.js";
const getMemorySearchManager = vi.hoisted(() => vi.fn());
const getRuntimeConfig = vi.hoisted(() => vi.fn(() => ({})));
@@ -92,7 +96,8 @@ beforeEach(() => {
}));
});
afterEach(() => {
afterEach(async () => {
await waitForPendingShortTermWrites();
vi.restoreAllMocks();
process.exitCode = undefined;
setVerbose(false);
@@ -102,6 +107,7 @@ afterAll(async () => {
if (!fixtureRoot) {
return;
}
await waitForPendingShortTermWrites();
await fs.rm(fixtureRoot, { recursive: true, force: true });
});

View File

@@ -734,6 +734,13 @@ async function withInProcessShortTermLock<T>(lockPath: string, task: () => Promi
}
}
export async function waitForPendingShortTermWrites(): Promise<void> {
while (inProcessShortTermLocks.size > 0) {
const pending = Array.from(inProcessShortTermLocks.values());
await Promise.allSettled(pending);
}
}
async function withShortTermLock<T>(workspaceDir: string, task: () => Promise<T>): Promise<T> {
const lockPath = resolveLockPath(workspaceDir);
return withInProcessShortTermLock(lockPath, async () => {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/memory-lancedb",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"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.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/memory-wiki",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw persistent wiki plugin",
"type": "module",
@@ -14,7 +14,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/microsoft-foundry",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Microsoft Foundry provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/microsoft-speech",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Microsoft speech plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/migrate-claude",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "Claude to OpenClaw migration provider",
"type": "module",
@@ -9,7 +9,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/migrate-hermes",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "Hermes to OpenClaw migration provider",
"type": "module",
@@ -12,7 +12,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/minimax-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw MiniMax provider and OAuth plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/mistral-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Mistral provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/moonshot-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Moonshot provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/msteams",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Microsoft Teams channel plugin",
"repository": {
"type": "git",
@@ -22,7 +22,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -58,10 +58,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/nextcloud-talk",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Nextcloud Talk channel plugin",
"repository": {
"type": "git",
@@ -12,7 +12,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -44,10 +44,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/nostr",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw Nostr channel plugin for NIP-04 encrypted DMs",
"repository": {
"type": "git",
@@ -16,7 +16,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -54,10 +54,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/nvidia-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw NVIDIA provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/oc-path",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw oc:// workspace path plugin",
"type": "module",
@@ -15,7 +15,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/ollama-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Ollama provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/open-prose",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenProse VM skill pack plugin (slash command + telemetry).",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/openai-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw OpenAI provider plugins",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/opencode-go-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw OpenCode Go provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/opencode-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw OpenCode Zen provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/openrouter-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw OpenRouter provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/openshell-sandbox",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"description": "OpenClaw OpenShell sandbox backend",
"repository": {
"type": "git",
@@ -24,10 +24,10 @@
"minHostVersion": ">=2026.5.12-beta.1"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20",
"openclawVersion": "2026.5.21-alpha.1",
"bundledDist": false
},
"release": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/perplexity-plugin",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Perplexity plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/policy",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw policy doctor checks for workspace conformance",
"type": "module",
@@ -12,7 +12,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qa-channel",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw QA synthetic channel plugin",
"type": "module",
@@ -19,7 +19,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qa-lab",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw QA lab plugin with private debugger UI and scenario runner",
"type": "module",
@@ -19,7 +19,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -31,7 +31,7 @@
"./index.ts"
],
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qa-matrix",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Matrix QA runner plugin",
"type": "module",
@@ -13,7 +13,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -25,7 +25,7 @@
"./index.ts"
],
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qianfan-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Qianfan provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qqbot",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": false,
"description": "OpenClaw QQ Bot channel plugin",
"repository": {
@@ -21,7 +21,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.20"
"openclaw": ">=2026.5.21-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -50,10 +50,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.20"
"pluginApi": ">=2026.5.21-alpha.1"
},
"build": {
"openclawVersion": "2026.5.20"
"openclawVersion": "2026.5.21-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qwen-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Qwen Cloud provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/runway-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Runway video provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/searxng-plugin",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw SearXNG plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/senseaudio-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw SenseAudio media-understanding provider",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/sglang-provider",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw SGLang provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/signal",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw Signal channel plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/skill-workshop",
"version": "2026.5.20",
"version": "2026.5.21-alpha.1",
"private": true,
"description": "OpenClaw skill workshop plugin",
"type": "module",

Some files were not shown because too many files have changed in this diff Show More