Compare commits

...

8 Commits

Author SHA1 Message Date
Peter Steinberger
50a2481652 chore(release): prepare 2026.5.18 stable 2026-05-18 18:48:18 +01:00
Peter Steinberger
4eebca1d74 docs(release): restore stable config baseline hash 2026-05-18 16:20:30 +01:00
Peter Steinberger
a1cc3727c8 docs(release): refresh config baseline hash 2026-05-18 16:17:14 +01:00
Peter Steinberger
d207951840 fix(qa): attribute mock tool errors to matching calls 2026-05-18 16:15:13 +01:00
Peter Steinberger
e750f481f9 perf(outbound): avoid target normalizer on exact source matches 2026-05-18 15:29:46 +01:00
Peter Steinberger
c3323a3158 test(release): align channel privacy fixtures 2026-05-18 15:08:30 +01:00
Peter Steinberger
fa804dea9a test(release): expect beta plugin install specs 2026-05-18 14:19:03 +01:00
Peter Steinberger
ffae5fa9a7 build(release): prepare 2026.5.18 beta 1 2026-05-18 14:02:12 +01:00
138 changed files with 365 additions and 243 deletions

View File

@@ -2,7 +2,7 @@
Docs: https://docs.openclaw.ai
## Unreleased
## 2026.5.18
### Changes

View File

@@ -1,5 +1,9 @@
# OpenClaw iOS Changelog
## 2026.5.18 - 2026-05-18
Maintenance update for the current OpenClaw beta release.
## 2026.5.17 - 2026-05-17
Maintenance update for the current OpenClaw release.

View File

@@ -2,8 +2,8 @@
// Source of truth: apps/ios/version.json
// Generated by scripts/ios-sync-versioning.ts.
OPENCLAW_IOS_VERSION = 2026.5.17
OPENCLAW_MARKETING_VERSION = 2026.5.17
OPENCLAW_IOS_VERSION = 2026.5.18
OPENCLAW_MARKETING_VERSION = 2026.5.18
OPENCLAW_BUILD_VERSION = 1
#include? "../build/Version.xcconfig"

View File

@@ -1 +1 @@
Maintenance update for the current OpenClaw release.
Maintenance update for the current OpenClaw beta release.

View File

@@ -1,3 +1,3 @@
{
"version": "2026.5.17"
"version": "2026.5.18"
}

View File

@@ -15,9 +15,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>2026.5.17</string>
<string>2026.5.18</string>
<key>CFBundleVersion</key>
<string>2026051700</string>
<string>2026051800</string>
<key>CFBundleIconFile</key>
<string>OpenClaw</string>
<key>CFBundleURLTypes</key>

View File

@@ -1,2 +1,2 @@
048d8ff5e4455d16f75f6762a916f67c982e1211fb7085456647234255567466 plugin-sdk-api-baseline.json
2d46a9660c9143f823a47df3c7ecfd315a4999e96af5eddb4ba4e71d9bb377a6 plugin-sdk-api-baseline.jsonl
1366762bca5260ea8a31a990140ecf9959733cd405a14c18ab942841f2d67e4c plugin-sdk-api-baseline.json
9719fa8b8f64db9c1816c55dbb39c2e67eb94316c91f037b73326a99823d88ef plugin-sdk-api-baseline.jsonl

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/alibaba-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"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.17",
"version": "2026.5.18",
"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.17"
"pluginApi": ">=2026.5.18"
},
"build": {
"openclawVersion": "2026.5.17",
"openclawVersion": "2026.5.18",
"bundledDist": false
},
"release": {

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/anthropic-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Anthropic provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/arcee-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Arcee provider plugin",
"type": "module",

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/bonjour",
"version": "2026.5.17",
"version": "2026.5.18",
"description": "OpenClaw Bonjour/mDNS gateway discovery",
"type": "module",
"dependencies": {

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/browser-plugin",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw browser tool plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/byteplus-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw BytePlus provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/canvas-plugin",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Canvas plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/cerebras-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Cerebras provider plugin",
"type": "module",

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/comfy-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw ComfyUI provider plugin",
"type": "module",

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/deepinfra-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw DeepInfra provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/deepseek-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw DeepSeek provider plugin",
"type": "module",

View File

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

View File

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

View File

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

View File

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

View File

@@ -1262,6 +1262,14 @@ describe("processDiscordMessage session routing", () => {
shouldRequireMention: false,
effectiveWasMentioned: false,
discordConfig: { streaming: "partial", blockStreaming: true },
cfg: {
messages: {
groupChat: {
visibleReplies: "message_tool",
},
},
session: { store: "/tmp/openclaw-discord-process-test-sessions.json" },
},
route: BASE_CHANNEL_ROUTE,
});
@@ -1283,6 +1291,9 @@ describe("processDiscordMessage session routing", () => {
messages: {
ackReaction: "👀",
ackReactionScope: "all",
groupChat: {
visibleReplies: "message_tool",
},
statusReactions: {
timing: { debounceMs: 0 },
},
@@ -1314,6 +1325,9 @@ describe("processDiscordMessage session routing", () => {
messages: {
ackReaction: "👀",
ackReactionScope: "all",
groupChat: {
visibleReplies: "message_tool",
},
statusReactions: {
enabled: true,
timing: { debounceMs: 0 },
@@ -1500,7 +1514,7 @@ describe("processDiscordMessage session routing", () => {
});
});
it("defaults guild replies to message-tool-only source delivery", async () => {
it("resolves guild source reply delivery policy", async () => {
await runProcessDiscordMessage(
await createBaseContext({
shouldRequireMention: true,
@@ -1508,7 +1522,7 @@ describe("processDiscordMessage session routing", () => {
route: BASE_CHANNEL_ROUTE,
}),
);
expect(getLastDispatchReplyOptions()?.sourceReplyDeliveryMode).toBe("message_tool_only");
expect(getLastDispatchReplyOptions()?.sourceReplyDeliveryMode).toBe("automatic");
dispatchInboundMessage.mockClear();
await runProcessDiscordMessage(
@@ -1528,6 +1542,24 @@ describe("processDiscordMessage session routing", () => {
);
expect(getLastDispatchReplyOptions()?.sourceReplyDeliveryMode).toBe("automatic");
dispatchInboundMessage.mockClear();
await runProcessDiscordMessage(
await createBaseContext({
shouldRequireMention: false,
effectiveWasMentioned: false,
cfg: {
messages: {
groupChat: {
visibleReplies: "message_tool",
},
},
session: { store: "/tmp/openclaw-discord-process-test-sessions.json" },
},
route: BASE_CHANNEL_ROUTE,
}),
);
expect(getLastDispatchReplyOptions()?.sourceReplyDeliveryMode).toBe("message_tool_only");
dispatchInboundMessage.mockClear();
await runProcessDiscordMessage(
await createBaseContext({
@@ -1753,6 +1785,11 @@ describe("processDiscordMessage draft streaming", () => {
const ctx = await createBaseContext({
cfg: {
messages: {
groupChat: {
visibleReplies: "message_tool",
},
},
tools: { profile: "coding" },
session: { store: "/tmp/openclaw-discord-process-test-sessions.json" },
},

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/duckduckgo-plugin",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw DuckDuckGo plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/elevenlabs-speech",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw ElevenLabs speech plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/exa-plugin",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Exa plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/fal-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw fal provider plugin",
"type": "module",

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/file-transfer",
"version": "2026.5.17",
"version": "2026.5.18",
"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.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Firecrawl plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/fireworks-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Fireworks provider plugin",
"type": "module",

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/google-plugin",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Google plugin",
"type": "module",

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/gradium-speech",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Gradium speech plugin",
"type": "module",

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/inworld-speech",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Inworld speech plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/irc",
"version": "2026.5.17",
"version": "2026.5.18",
"description": "OpenClaw IRC channel plugin",
"type": "module",
"devDependencies": {

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/kimi-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Kimi provider plugin",
"type": "module",

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/litellm-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw LiteLLM provider plugin",
"type": "module",

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,11 @@
# Changelog
## 2026.5.18
### Changes
- Version alignment with core OpenClaw release numbers.
## 2026.5.17
### Changes

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/microsoft-speech",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Microsoft speech plugin",
"type": "module",

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/mistral-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Mistral provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/moonshot-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Moonshot provider plugin",
"type": "module",

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/nvidia-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw NVIDIA provider plugin",
"type": "module",

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/ollama-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Ollama provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/open-prose",
"version": "2026.5.17",
"version": "2026.5.18",
"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.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw OpenAI provider plugins",
"type": "module",

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/openrouter-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw OpenRouter provider plugin",
"type": "module",

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/perplexity-plugin",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Perplexity plugin",
"type": "module",

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qa-lab",
"version": "2026.5.17",
"version": "2026.5.18",
"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.17"
"openclaw": ">=2026.5.18"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -31,7 +31,7 @@
"./index.ts"
],
"compat": {
"pluginApi": ">=2026.5.17"
"pluginApi": ">=2026.5.18"
}
}
}

View File

@@ -1623,6 +1623,48 @@ describe("qa mock openai server", () => {
expect(systemFallbackThreadMemorySummary.status).toBe(200);
expect(JSON.stringify(await systemFallbackThreadMemorySummary.json())).toContain("ORBIT-22");
const declaredToolThreadMemorySummary = await fetch(`${server.baseUrl}/v1/responses`, {
method: "POST",
headers: {
"content-type": "application/json",
},
body: JSON.stringify({
stream: false,
tools: [SESSIONS_SPAWN_TOOL],
input: [
{
role: "system",
content: "## /workspace/MEMORY.md\nThread-hidden codename: ORBIT-22.",
},
makeUserInput(
"@openclaw Thread memory check: what is the hidden thread codename stored only in memory? Use memory tools first and reply only in this thread.",
),
{
type: "function_call",
name: "memory_search",
arguments: JSON.stringify({
query: "hidden thread codename ORBIT-22",
maxResults: 3,
}),
},
{
type: "function_call_output",
output: JSON.stringify({
results: [],
unavailable: true,
error: "database is not open",
}),
},
],
}),
});
expect(declaredToolThreadMemorySummary.status).toBe(200);
const declaredToolThreadMemoryText = JSON.stringify(
await declaredToolThreadMemorySummary.json(),
);
expect(declaredToolThreadMemoryText).toContain("ORBIT-22");
expect(declaredToolThreadMemoryText).not.toContain("sessions_spawn failed");
const memoryFollowup = await fetch(`${server.baseUrl}/v1/responses`, {
method: "POST",
headers: {

View File

@@ -916,7 +916,6 @@ function buildExplicitSessionsSpawnArgs(text: string): Record<string, unknown> |
}
function extractToolErrorForNamedCall(params: {
allInputText: string;
input: ResponsesInputItem[];
name: string;
toolJson: Record<string, unknown> | null;
@@ -926,10 +925,23 @@ function extractToolErrorForNamedCall(params: {
return undefined;
}
const namedFunctionCall = params.input.some(
(item) => item.type === "function_call" && item.name === params.name,
(item) =>
(item.type === "function_call" && item.name === params.name) ||
(Array.isArray(item.content) &&
item.content.some((block) => {
if (!block || typeof block !== "object") {
return false;
}
const record = block as Record<string, unknown>;
return (
(record.type === "toolCall" ||
record.type === "tool_use" ||
record.type === "function_call") &&
record.name === params.name
);
})),
);
const namedPromptReference = new RegExp(`\\b${params.name}\\b`, "i").test(params.allInputText);
if (namedFunctionCall || namedPromptReference) {
if (namedFunctionCall) {
return error;
}
return undefined;
@@ -1015,7 +1027,6 @@ function buildAssistantText(
const activeMemorySummary = extractActiveMemorySummary(allInputText);
const snackPreference = extractSnackPreference(activeMemorySummary ?? memorySnippet);
const sessionsSpawnError = extractToolErrorForNamedCall({
allInputText,
input,
name: "sessions_spawn",
toolJson,

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qianfan-provider",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw Qianfan provider plugin",
"type": "module",

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/searxng-plugin",
"version": "2026.5.17",
"version": "2026.5.18",
"private": true,
"description": "OpenClaw SearXNG plugin",
"type": "module",

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