Compare commits

...

35 Commits

Author SHA1 Message Date
Tideclaw
aef64af17a test: isolate chutes oauth catalog discovery 2026-06-08 03:30:40 +00:00
Tideclaw
7d3c830b52 chore: add alpha changelog notes 2026-06-08 03:06:03 +00:00
Tideclaw
cef075ace8 chore: prepare alpha 2026.6.8-alpha.1 2026-06-08 02:41:02 +00:00
Tideclaw
38c47eebaa test: isolate codex startup auth home 2026-06-08 02:35:55 +00:00
Tideclaw
542b54d397 fix: refresh alpha plugin sdk api baseline 2026-06-08 02:21:41 +00:00
Tideclaw
a9daf5e835 test: forward kitchen sink ui descriptor knob 2026-06-08 02:17:18 +00:00
Tideclaw
dfc154480b test: align kitchen sink ui descriptor expectation 2026-06-08 02:17:18 +00:00
Tideclaw
76fd70593f test: make docker cpu default expectation host-aware 2026-06-08 02:17:18 +00:00
Tideclaw
0fc04cb3b5 fix: cap docker e2e default cpus 2026-06-08 02:17:18 +00:00
Tideclaw
3eb24e6462 fix: cap docker smoke cpu defaults 2026-06-08 02:17:18 +00:00
Tideclaw
0b6ddf4fb7 test: drop stale lint suppression expectation 2026-06-08 02:17:18 +00:00
Tideclaw
436e34ec65 fix: cap QR smoke Docker CPUs 2026-06-08 02:17:18 +00:00
Tideclaw
d58107a856 fix: refresh alpha release generated metadata 2026-06-08 02:17:18 +00:00
Tideclaw
37d15cf3ef fix: keep runtime fixture rethrows lint-safe 2026-06-08 02:16:39 +00:00
Tideclaw
d3c0f95137 test: stabilize startup cleanup gates 2026-06-08 02:16:39 +00:00
Tideclaw
e57c98cfa5 fix: detect bare gateway ready log 2026-06-08 02:16:39 +00:00
Tideclaw
d935d99659 test: ignore terminal docker zero stats 2026-06-08 02:16:39 +00:00
Tideclaw
3726b1a76c test: tolerate async media qa completion 2026-06-08 02:16:38 +00:00
Tideclaw
3ed755d460 fix: allow current release package scan size 2026-06-08 02:16:38 +00:00
Tideclaw
fd12c7c369 test: align extension batch chunk expectations 2026-06-08 02:16:38 +00:00
Tideclaw
c8bc39de83 fix: keep qa lab web fetches same-origin 2026-06-08 02:16:38 +00:00
Tideclaw
562bc1cf8a fix: stabilize alpha validation gates
(cherry picked from commit 9fcbf360d7)
2026-06-08 02:16:38 +00:00
Tideclaw
04d3437c57 test: allow qa parity release heap
(cherry picked from commit 35056f340c)
2026-06-08 02:16:38 +00:00
Tideclaw
ac935f4bc7 ci: give qa runtime parity more build memory
(cherry picked from commit 5590673a61)
2026-06-08 02:16:38 +00:00
Tideclaw
5c067c9ffa test: finish bundled plugin config split
(cherry picked from commit 490a20b1ce)
2026-06-08 02:16:38 +00:00
Tideclaw
3528bfa93e test: keep bundled plugin probe lint-safe
(cherry picked from commit acf0291d65)
2026-06-08 02:16:38 +00:00
Tideclaw
84c7e27a40 test: stabilize alpha plugin prerelease sweep
(cherry picked from commit c6b84a66a6)
2026-06-08 02:16:38 +00:00
Tideclaw
bd2527e34a test: stabilize release docker e2e harnesses
(cherry picked from commit dfa0e9485c)
(cherry picked from commit 802d06bbcc)
2026-06-08 02:16:38 +00:00
Tideclaw
a1d9854357 test: keep matrix async listener helpers lint-safe
(cherry picked from commit f7c78b382c)
(cherry picked from commit 5e38f33dcb)
2026-06-08 02:16:38 +00:00
Tideclaw
a65df0ef5d ci: honor matrix runners for dispatch checks
(cherry picked from commit 92d29a71a9)
(cherry picked from commit 9e80c845ae)
2026-06-08 02:16:38 +00:00
Tideclaw
a1357382d6 test: isolate heavy plugin batch tests
(cherry picked from commit 44ddefe84d)
(cherry picked from commit 9ec55a7729)
2026-06-08 02:16:38 +00:00
Tideclaw
c1b8a83127 test: keep matrix async listeners lint-safe
(cherry picked from commit b7a38bdd2f)
(cherry picked from commit 5851bcfc58)
2026-06-08 02:16:38 +00:00
Tideclaw
c9a1d2679e test: stabilize alpha plugin prerelease gates
(cherry picked from commit b25b6ce2ee)
(cherry picked from commit 69e9555c13)
2026-06-08 02:16:38 +00:00
Tideclaw
5007003749 test: isolate install shell node floor check
(cherry picked from commit 598281eff5)
(cherry picked from commit 681de1d0e2)
2026-06-08 02:16:38 +00:00
Tideclaw
34d2aebb90 fix: satisfy deprecated jsdoc guard
(cherry picked from commit 139c8e9ab0)
(cherry picked from commit 24d5ea72a7)
2026-06-08 02:16:38 +00:00
206 changed files with 1067 additions and 479 deletions

View File

@@ -1102,7 +1102,7 @@ jobs:
name: ${{ matrix.check_name }}
needs: [preflight]
if: needs.preflight.outputs.run_checks_node_core_nondist == 'true'
runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && (matrix.runner || 'blacksmith-8vcpu-ubuntu-2404') || 'ubuntu-24.04') }}
runs-on: ${{ github.repository == 'openclaw/openclaw' && (matrix.runner || 'blacksmith-8vcpu-ubuntu-2404') || 'ubuntu-24.04' }}
timeout-minutes: 60
strategy:
fail-fast: false
@@ -1210,7 +1210,7 @@ jobs:
name: ${{ matrix.check_name }}
needs: [preflight]
if: ${{ !cancelled() && always() && needs.preflight.outputs.run_check == 'true' }}
runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && (matrix.runner || 'blacksmith-4vcpu-ubuntu-2404') || 'ubuntu-24.04') }}
runs-on: ${{ github.repository == 'openclaw/openclaw' && (matrix.runner || 'blacksmith-4vcpu-ubuntu-2404') || 'ubuntu-24.04' }}
timeout-minutes: 20
strategy:
fail-fast: false

View File

@@ -1011,7 +1011,7 @@ jobs:
needs: [resolve_target]
if: contains(fromJSON('["all","qa","qa-parity"]'), needs.resolve_target.outputs.rerun_group)
continue-on-error: true
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: blacksmith-16vcpu-ubuntu-2404
timeout-minutes: 45
permissions:
contents: read
@@ -1042,7 +1042,7 @@ jobs:
- name: Build private QA runtime
env:
NODE_OPTIONS: --max-old-space-size=8192
NODE_OPTIONS: --max-old-space-size=12288
run: node scripts/build-all.mjs qaRuntime
- name: Run runtime parity lane

View File

@@ -2,6 +2,12 @@
Docs: https://docs.openclaw.ai
## 2026.6.8-alpha.1
### Fixes
- Release validation: reuse alpha stabilization fixes for plugin prerelease, QA runtime parity, package scanning, Docker resource ceilings, gateway readiness detection, and runtime fixture handling while isolating Codex startup auth state and refreshing generated release metadata for the current branch.
## 2026.6.5
### Highlights

View File

@@ -1,4 +1,4 @@
a5a97a8b484acd13e68604037c8d8f448699700103c6ea2186f5914ad35a0623 config-baseline.json
b0d668dbd794d2f54738152a4bcfd2a306c7954901e78d4dfbde7545a8301ce5 config-baseline.core.json
0637c9bdcb9517f56049dd786563366877458d35df575328a6b80a890c8bc915 config-baseline.channel.json
37b56008790612b8293930b6a29d74490e98daa90f954fca9d133fcc28645c4c config-baseline.json
75b64c2ea081369ba4306493313a8a4cd48b784145f92fed995e6b77a5df350d config-baseline.core.json
17d64c9799dfa239a49493413f1100bdd9237e9b67aaeae331a4604dbc227023 config-baseline.channel.json
f9d1f50bfa8403891e76cd99dc1357cdece4a71e8ae18a39b190c2a14e6f97b0 config-baseline.plugin.json

View File

@@ -1,2 +1,2 @@
16202a4c1ba8816643ad4cc81536c6ff9bfea38b01826d090c2195230dc85ab3 plugin-sdk-api-baseline.json
a674e0fc5998b343fd1235438794c9c342fcd6e538157650109d2d30c184b7bc plugin-sdk-api-baseline.jsonl
8be695e0892078773d78dae5f4c5a20ee57f30c5df227be6a89cc316fc4b4e10 plugin-sdk-api-baseline.json
45944cb6fa30a094c4f104d19eec7afc5822be05c88bbd2aa4a8b93a7cba9de8 plugin-sdk-api-baseline.jsonl

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/acpx",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/acpx",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@agentclientprotocol/claude-agent-acp": "0.39.0",
"@zed-industries/codex-acp": "0.15.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/acpx",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw ACP runtime backend with plugin-owned session and transport management.",
"repository": {
"type": "git",
@@ -26,10 +26,10 @@
"minHostVersion": ">=2026.4.25"
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"build": {
"openclawVersion": "2026.6.2",
"openclawVersion": "2026.6.8-alpha.1",
"staticAssets": [
{
"source": "./src/runtime-internals/mcp-proxy.mjs",

View File

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

View File

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

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/amazon-bedrock-mantle-provider",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/amazon-bedrock-mantle-provider",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@anthropic-ai/sdk": "0.100.1",
"@aws/bedrock-token-generator": "1.1.0"

View File

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

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/amazon-bedrock-provider",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/amazon-bedrock-provider",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@aws-sdk/client-bedrock": "3.1056.0",
"@aws-sdk/client-bedrock-runtime": "3.1056.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/amazon-bedrock-provider",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw Amazon Bedrock provider plugin with model discovery, embeddings, and guardrail support.",
"repository": {
"type": "git",
@@ -28,10 +28,10 @@
"minHostVersion": ">=2026.5.12-beta.1"
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"build": {
"openclawVersion": "2026.6.2",
"openclawVersion": "2026.6.8-alpha.1",
"bundledDist": false
},
"release": {

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/anthropic-vertex-provider",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/anthropic-vertex-provider",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@anthropic-ai/vertex-sdk": "0.16.1"
}

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/anthropic-vertex-provider",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw Anthropic Vertex provider plugin for Claude models on Google Vertex AI.",
"repository": {
"type": "git",
@@ -23,10 +23,10 @@
"minHostVersion": ">=2026.5.12-beta.1"
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"build": {
"openclawVersion": "2026.6.2",
"openclawVersion": "2026.6.8-alpha.1",
"bundledDist": false
},
"release": {

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/brave-plugin",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/brave-plugin",
"version": "2026.6.2"
"version": "2026.6.8-alpha.1"
}
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,9 +1,9 @@
// Chutes tests cover implicit provider plugin behavior.
import { registerSingleProviderPlugin } from "openclaw/plugin-sdk/plugin-test-runtime";
import { resolveOAuthApiKeyMarker } from "openclaw/plugin-sdk/provider-auth";
import { afterEach, describe, expect, it, vi } from "vitest";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import plugin from "./index.js";
import { CHUTES_BASE_URL } from "./models.js";
import { CHUTES_BASE_URL, clearChutesModelCacheForTests } from "./models.js";
const CHUTES_OAUTH_MARKER = resolveOAuthApiKeyMarker("chutes");
@@ -48,6 +48,7 @@ async function withRealChutesDiscovery<T>(
ok: true,
json: async () => ({ data: [{ id: "chutes/private-model" }] }),
});
clearChutesModelCacheForTests();
globalThis.fetch = fetchMock as unknown as typeof fetch;
try {
@@ -59,7 +60,22 @@ async function withRealChutesDiscovery<T>(
}
}
function readAuthorizationHeader(init?: { headers?: HeadersInit }): string {
const headers = init?.headers;
if (headers instanceof Headers) {
return headers.get("Authorization") ?? "";
}
if (Array.isArray(headers)) {
return headers.find(([key]) => key.toLowerCase() === "authorization")?.[1] ?? "";
}
return headers?.Authorization ?? headers?.authorization ?? "";
}
describe("chutes implicit provider auth mode", () => {
beforeEach(() => {
clearChutesModelCacheForTests();
});
afterEach(() => {
vi.restoreAllMocks();
});
@@ -101,8 +117,13 @@ describe("chutes implicit provider auth mode", () => {
const chutesCalls = fetchMock.mock.calls.filter(([url]) => String(url).includes("chutes.ai"));
expect(chutesCalls.length).toBeGreaterThan(0);
const request = chutesCalls[0]?.[1] as { headers?: Record<string, string> } | undefined;
expect(request?.headers?.Authorization).toBe("Bearer my-chutes-access-token");
expect(
chutesCalls.some(
([, request]) =>
readAuthorizationHeader(request as { headers?: HeadersInit } | undefined) ===
"Bearer my-chutes-access-token",
),
).toBe(true);
});
});
});

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/codex-supervisor",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"private": true,
"description": "OpenClaw Codex app-server fleet supervision plugin.",
"type": "module",

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/codex",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/codex",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@openai/codex": "0.135.0",
"typebox": "1.1.39",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/codex",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw Codex app-server harness and model provider plugin with a Codex-managed GPT catalog.",
"repository": {
"type": "git",
@@ -26,10 +26,10 @@
"minHostVersion": ">=2026.5.1-beta.1"
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"build": {
"openclawVersion": "2026.6.2"
"openclawVersion": "2026.6.8-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -30,6 +30,14 @@ type AttemptPaths = {
const tempRoots = new Set<string>();
function isolateCodexCliAuthHome(): void {
const root = path.join(os.tmpdir(), `openclaw-codex-attempt-auth-${randomUUID()}`);
tempRoots.add(root);
// Keep fallback auth lookup from reading the operator's real Codex CLI auth file.
vi.stubEnv("CODEX_HOME", path.join(root, "codex-home"));
vi.stubEnv("HOME", path.join(root, "home"));
}
function createAttemptPaths(): AttemptPaths {
const root = path.join(os.tmpdir(), `openclaw-codex-attempt-startup-${randomUUID()}`);
tempRoots.add(root);
@@ -168,6 +176,7 @@ describe("startCodexAttemptThread", () => {
vi.useRealTimers();
vi.stubEnv("CODEX_API_KEY", "");
vi.stubEnv("OPENAI_API_KEY", "");
isolateCodexCliAuthHome();
clearSharedCodexAppServerClient();
});
@@ -177,7 +186,7 @@ describe("startCodexAttemptThread", () => {
vi.restoreAllMocks();
vi.unstubAllEnvs();
for (const root of tempRoots) {
await fs.rm(root, { recursive: true, force: true });
await fs.rm(root, { recursive: true, force: true, maxRetries: 20, retryDelay: 100 });
}
tempRoots.clear();
});
@@ -271,7 +280,7 @@ describe("startCodexAttemptThread", () => {
await answerInitialize(retained);
await expect(retainedLease).resolves.toBe(retained.client);
const { run } = startThreadWithHarness(100, new AbortController().signal, {
const { run } = startThreadWithHarness(1_000, new AbortController().signal, {
harness: retained,
paths,
skipStartSpy: true,

View File

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

View File

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

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/copilot",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/copilot",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@github/copilot-sdk": "1.0.0-beta.9"
}

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/copilot",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw GitHub Copilot agent runtime plugin (registers a `github-copilot` AgentHarness backed by @github/copilot-sdk over JSON-RPC to the GitHub Copilot CLI)",
"repository": {
"type": "git",
@@ -25,10 +25,10 @@
"minHostVersion": ">=2026.5.28"
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"build": {
"openclawVersion": "2026.6.2",
"openclawVersion": "2026.6.8-alpha.1",
"bundledDist": false
},
"release": {

View File

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

View File

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

View File

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

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/diagnostics-otel",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/diagnostics-otel",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@opentelemetry/api": "1.9.1",
"@opentelemetry/api-logs": "0.218.0",

View File

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

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/diagnostics-prometheus",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/diagnostics-prometheus",
"version": "2026.6.2"
"version": "2026.6.8-alpha.1"
}
}
}

View File

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

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/diffs-language-pack",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/diffs-language-pack",
"version": "2026.6.2"
"version": "2026.6.8-alpha.1"
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/diffs-language-pack",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw diffs viewer syntax highlighting language pack",
"repository": {
"type": "git",
@@ -22,13 +22,13 @@
"minHostVersion": ">=2026.5.27"
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"assetScripts": {
"build": "node ../../scripts/build-diffs-viewer-runtime.mjs full"
},
"build": {
"openclawVersion": "2026.6.2",
"openclawVersion": "2026.6.8-alpha.1",
"staticAssets": [
{
"source": "./assets/viewer-runtime.js",

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/diffs",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/diffs",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@pierre/diffs": "1.2.4",
"@pierre/theme": "1.0.3",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/diffs",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw read-only diff viewer plugin and file renderer for agents.",
"repository": {
"type": "git",
@@ -29,13 +29,13 @@
"minHostVersion": ">=2026.4.30"
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"assetScripts": {
"build": "node ../../scripts/build-diffs-viewer-runtime.mjs curated"
},
"build": {
"openclawVersion": "2026.6.2",
"openclawVersion": "2026.6.8-alpha.1",
"staticAssets": [
{
"source": "./assets/viewer-runtime.js",

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/discord",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/discord",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@discordjs/voice": "0.19.2",
"discord-api-types": "0.38.48",
@@ -16,7 +16,7 @@
"ws": "8.21.0"
},
"peerDependencies": {
"openclaw": ">=2026.6.2"
"openclaw": ">=2026.6.8-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/discord",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw Discord channel plugin for channels, DMs, commands, and app events.",
"repository": {
"type": "git",
@@ -20,7 +20,7 @@
"openclaw": "2026.5.28"
},
"peerDependencies": {
"openclaw": ">=2026.6.2"
"openclaw": ">=2026.6.8-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -67,10 +67,10 @@
"allowInvalidConfigRecovery": true
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"build": {
"openclawVersion": "2026.6.2"
"openclawVersion": "2026.6.8-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,19 +1,19 @@
{
"name": "@openclaw/feishu",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/feishu",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@larksuiteoapi/node-sdk": "1.66.0",
"typebox": "1.1.39",
"zod": "4.4.3"
},
"peerDependencies": {
"openclaw": ">=2026.6.2"
"openclaw": ">=2026.6.8-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/feishu",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw Feishu/Lark channel plugin for chats and workplace tools (community maintained by @m1heng).",
"repository": {
"type": "git",
@@ -17,7 +17,7 @@
"openclaw": "2026.5.28"
},
"peerDependencies": {
"openclaw": ">=2026.6.2"
"openclaw": ">=2026.6.8-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -51,10 +51,10 @@
"minHostVersion": ">=2026.5.29"
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"build": {
"openclawVersion": "2026.6.2"
"openclawVersion": "2026.6.8-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/gmi-provider",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"private": true,
"description": "OpenClaw GMI Cloud provider plugin",
"type": "module",

View File

@@ -1,18 +1,18 @@
{
"name": "@openclaw/google-meet",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/google-meet",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"commander": "14.0.3",
"typebox": "1.1.39"
},
"peerDependencies": {
"openclaw": ">=2026.6.2"
"openclaw": ">=2026.6.8-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/google-meet",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw Google Meet participant plugin for joining calls through Chrome or Twilio transports.",
"repository": {
"type": "git",
@@ -16,7 +16,7 @@
"openclaw": "2026.5.28"
},
"peerDependencies": {
"openclaw": ">=2026.6.2"
"openclaw": ">=2026.6.8-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -33,10 +33,10 @@
"minHostVersion": ">=2026.4.20"
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"build": {
"openclawVersion": "2026.6.2"
"openclawVersion": "2026.6.8-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

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

View File

@@ -1,19 +1,19 @@
{
"name": "@openclaw/googlechat",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/googlechat",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"gaxios": "7.1.4",
"google-auth-library": "10.6.2",
"zod": "4.4.3"
},
"peerDependencies": {
"openclaw": ">=2026.6.2"
"openclaw": ">=2026.6.8-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/googlechat",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw Google Chat channel plugin for spaces and direct messages.",
"repository": {
"type": "git",
@@ -17,7 +17,7 @@
"openclaw": "2026.5.28"
},
"peerDependencies": {
"openclaw": ">=2026.6.2"
"openclaw": ">=2026.6.8-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -75,10 +75,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"build": {
"openclawVersion": "2026.6.2"
"openclawVersion": "2026.6.8-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/huggingface-provider",
"version": "2026.6.2",
"version": "2026.6.8-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.6.2",
"version": "2026.6.8-alpha.1",
"private": true,
"description": "OpenClaw image generation runtime package",
"type": "module",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,18 +1,18 @@
{
"name": "@openclaw/line",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/line",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@line/bot-sdk": "11.0.1",
"zod": "4.4.3"
},
"peerDependencies": {
"openclaw": ">=2026.6.2"
"openclaw": ">=2026.6.8-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/line",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw LINE channel plugin for LINE Bot API chats.",
"repository": {
"type": "git",
@@ -16,7 +16,7 @@
"openclaw": "2026.5.28"
},
"peerDependencies": {
"openclaw": ">=2026.6.2"
"openclaw": ">=2026.6.8-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -46,10 +46,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"build": {
"openclawVersion": "2026.6.2"
"openclawVersion": "2026.6.8-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/llm-task",
"version": "2026.6.2",
"version": "2026.6.8-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.6.2",
"version": "2026.6.8-alpha.1",
"private": true,
"description": "OpenClaw LM Studio provider plugin",
"type": "module",

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/lobster",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/lobster",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@clawdbot/lobster": "2026.5.22",
"typebox": "1.1.39"

View File

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

View File

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

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/matrix",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/matrix",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@matrix-org/matrix-sdk-crypto-nodejs": "0.6.0",
"@matrix-org/matrix-sdk-crypto-wasm": "18.3.0",
@@ -18,7 +18,7 @@
"zod": "4.4.3"
},
"peerDependencies": {
"openclaw": ">=2026.6.2"
"openclaw": ">=2026.6.8-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/matrix",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw Matrix channel plugin for rooms and direct messages.",
"repository": {
"type": "git",
@@ -22,7 +22,7 @@
"openclaw": "2026.5.28"
},
"peerDependencies": {
"openclaw": ">=2026.6.2"
"openclaw": ">=2026.6.8-alpha.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -88,10 +88,10 @@
"allowInvalidConfigRecovery": true
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"build": {
"openclawVersion": "2026.6.2"
"openclawVersion": "2026.6.8-alpha.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -5,7 +5,7 @@ import { setMatrixRuntime } from "../../runtime.js";
import type { MatrixConfig } from "../../types.js";
import { registerMatrixAutoJoin } from "./auto-join.js";
type InviteHandler = (roomId: string, inviteEvent: unknown) => void;
type InviteHandler = (roomId: string, inviteEvent: unknown) => void | Promise<void>;
async function flushInviteTasks() {
for (let i = 0; i < 5; i += 1) {
@@ -18,7 +18,12 @@ function createClientStub() {
const client = {
on: vi.fn((eventName: string, listener: unknown) => {
if (eventName === "room.invite") {
inviteHandler = listener as InviteHandler;
inviteHandler = async (roomId, inviteEvent) => {
(listener as (roomId: string, inviteEvent: unknown) => void)(roomId, inviteEvent);
await new Promise<void>((resolve) => {
setImmediate(resolve);
});
};
}
return client;
}),
@@ -69,7 +74,7 @@ async function triggerInvite(
if (!inviteHandler) {
throw new Error("expected Matrix invite handler");
}
inviteHandler("!room:example.org", inviteEvent);
await inviteHandler("!room:example.org", inviteEvent);
await flushInviteTasks();
}
@@ -157,7 +162,7 @@ describe("registerMatrixAutoJoin", () => {
if (!inviteHandler) {
throw new Error("expected Matrix invite handler");
}
inviteHandler("!room:example.org", {});
await inviteHandler("!room:example.org", {});
await flushInviteTasks();
expect(joinRoom).not.toHaveBeenCalled();

View File

@@ -9,7 +9,11 @@ import type { MatrixRawEvent } from "./types.js";
import { EventType } from "./types.js";
type RoomEventListener = (roomId: string, event: MatrixRawEvent) => void;
type FailedDecryptListener = (roomId: string, event: MatrixRawEvent, error: Error) => void;
type FailedDecryptListener = (
roomId: string,
event: MatrixRawEvent,
error: Error,
) => void | Promise<void>;
type VerificationSummaryListener = (summary: MatrixVerificationSummary) => void;
function getSentNoticeBody(sendMessage: ReturnType<typeof vi.fn>, index = 0): string {
@@ -218,6 +222,15 @@ function createHarness(params?: {
throw new Error("room.event listener was not registered");
}
const failedDecryptListener: FailedDecryptListener | undefined = listeners.has(
"room.failed_decryption",
)
? async (roomId, event, error) => {
listeners.get("room.failed_decryption")?.(roomId, event, error);
await flushTasks();
}
: undefined;
return {
onRoomMessage,
sendMessage,
@@ -235,9 +248,7 @@ function createHarness(params?: {
roomDecryptedEventListener: listeners.get("room.decrypted_event") as
| RoomEventListener
| undefined,
failedDecryptListener: listeners.get("room.failed_decryption") as
| FailedDecryptListener
| undefined,
failedDecryptListener,
verificationSummaryListener: listeners.get("verification.summary") as
| VerificationSummaryListener
| undefined,
@@ -1498,7 +1509,7 @@ describe("registerMatrixMonitorEvents verification routing", () => {
throw new Error("room.failed_decryption listener was not registered");
}
failedDecryptListener(
await failedDecryptListener(
"!room:example.org",
{
event_id: "$enc-self",
@@ -1537,7 +1548,7 @@ describe("registerMatrixMonitorEvents verification routing", () => {
throw new Error("room.failed_decryption listener was not registered");
}
failedDecryptListener(
await failedDecryptListener(
"!room:example.org",
{
event_id: "$enc-other",
@@ -1577,7 +1588,7 @@ describe("registerMatrixMonitorEvents verification routing", () => {
"!room-b:example.org",
"!room-c:example.org",
].entries()) {
failedDecryptListener(
await failedDecryptListener(
roomId,
{
event_id: `$enc-fresh-${index + 1}`,
@@ -1636,7 +1647,7 @@ describe("registerMatrixMonitorEvents verification routing", () => {
throw new Error("room.failed_decryption listener was not registered");
}
failedDecryptListener(
await failedDecryptListener(
"!room:example.org",
{
event_id: "$enc-old",
@@ -1657,7 +1668,7 @@ describe("registerMatrixMonitorEvents verification routing", () => {
healthySync.sinceMs = Date.now();
failedDecryptListener(
await failedDecryptListener(
"!room:example.org",
{
event_id: "$enc-fresh-after-ready",
@@ -1695,7 +1706,7 @@ describe("registerMatrixMonitorEvents verification routing", () => {
for (const wave of [1, 2]) {
for (const index of [1, 2, 3]) {
failedDecryptListener(
await failedDecryptListener(
`!room-${wave}-${index}:example.org`,
{
event_id: `$enc-wave-${wave}-${index}`,
@@ -1749,7 +1760,7 @@ describe("registerMatrixMonitorEvents verification routing", () => {
}
for (const index of [1, 2, 3]) {
failedDecryptListener(
await failedDecryptListener(
`!room-first-${index}:example.org`,
{
event_id: `$enc-first-${index}`,
@@ -1766,7 +1777,7 @@ describe("registerMatrixMonitorEvents verification routing", () => {
healthySyncSinceMs = Date.now();
for (const index of [1, 2, 3]) {
failedDecryptListener(
await failedDecryptListener(
`!room-second-${index}:example.org`,
{
event_id: `$enc-second-${index}`,
@@ -1817,7 +1828,7 @@ describe("registerMatrixMonitorEvents verification routing", () => {
throw new Error("room.failed_decryption listener was not registered");
}
failedDecryptListener(
await failedDecryptListener(
"!room:example.org",
{
event_id: "$enc-lookup-fail",

View File

@@ -274,7 +274,7 @@ export function registerMatrixMonitorEvents(params: {
client.on("room.failed_decryption", (roomId: string, event: MatrixRawEvent, error: Error) => {
void runMonitorTask(
`failed decryption handler room=${roomId} id=${event.event_id ?? "unknown"}`,
`failed decrypt handler room=${roomId} id=${event.event_id ?? "unknown"}`,
async () => {
const failureState = postHealthySyncDecryptFailureTracker.recordFailure(
roomId,

View File

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

View File

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

View File

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

View File

@@ -1,12 +1,12 @@
{
"name": "@openclaw/memory-lancedb",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/memory-lancedb",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"dependencies": {
"@lancedb/lancedb": "0.30.0",
"apache-arrow": "21.1.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/memory-lancedb",
"version": "2026.6.2",
"version": "2026.6.8-alpha.1",
"description": "OpenClaw LanceDB-backed long-term memory plugin with auto-recall, auto-capture, and vector search.",
"repository": {
"type": "git",
@@ -26,10 +26,10 @@
"minHostVersion": ">=2026.5.31"
},
"compat": {
"pluginApi": ">=2026.6.2"
"pluginApi": ">=2026.6.8-alpha.1"
},
"build": {
"openclawVersion": "2026.6.2"
"openclawVersion": "2026.6.8-alpha.1"
},
"release": {
"bundleRuntimeDependencies": false,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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