fix(release): stabilize beta validation lanes

This commit is contained in:
Peter Steinberger
2026-04-26 16:21:56 +01:00
parent b438a9cc08
commit 30aa1b5223
11 changed files with 317 additions and 217 deletions

View File

@@ -1,4 +1,5 @@
import { describe, expect, it, vi, beforeEach } from "vitest";
import { importFreshModule } from "../../../test/helpers/import-fresh.js";
import { sendBlueBubblesAttachment } from "./attachments.js";
import { editBlueBubblesMessage, setGroupIconBlueBubbles } from "./chat.js";
import { resolveBlueBubblesMessageId } from "./monitor-reply-cache.js";
@@ -44,8 +45,10 @@ vi.mock("./probe.js", () => ({
getCachedBlueBubblesPrivateApiStatus: vi.fn().mockReturnValue(null),
}));
const freshActionsModulePath = "./actions.js?actions-test";
const { bluebubblesMessageActions } = await import(freshActionsModulePath);
const { bluebubblesMessageActions } = await importFreshModule<typeof import("./actions.js")>(
import.meta.url,
"./actions.js?actions-test",
);
describe("bluebubblesMessageActions", () => {
const describeMessageTool = bluebubblesMessageActions.describeMessageTool!;

View File

@@ -1,4 +1,5 @@
import { beforeEach, describe, expect, it, vi } from "vitest";
import { importFreshModule } from "../../../test/helpers/import-fresh.js";
import type { ClawdbotConfig } from "../runtime-api.js";
const createFeishuClientMock = vi.hoisted(() => vi.fn());
@@ -7,13 +8,15 @@ vi.mock("./client.js", () => ({
createFeishuClient: createFeishuClientMock,
}));
const freshDirectoryModulePath = "./directory.js?directory-test";
const {
listFeishuDirectoryGroups,
listFeishuDirectoryGroupsLive,
listFeishuDirectoryPeers,
listFeishuDirectoryPeersLive,
} = await import(freshDirectoryModulePath);
} = await importFreshModule<typeof import("./directory.js")>(
import.meta.url,
"./directory.js?directory-test",
);
function makeStaticCfg(): ClawdbotConfig {
return {

View File

@@ -963,6 +963,64 @@ describe("qa mock openai server", () => {
expect(memoryText).toContain('"name":"memory_search"');
expect(memoryText).toContain('\\"corpus\\":\\"sessions\\"');
const threadMemorySearch = await fetch(`${server.baseUrl}/v1/responses`, {
method: "POST",
headers: {
"content-type": "application/json",
},
body: JSON.stringify({
stream: true,
instructions:
"@openclaw Thread memory check: what is the hidden thread codename stored only in memory? Use memory tools first and reply only in this thread.",
input: [
{
role: "user",
content: [
{
type: "input_text",
text: "Protocol note: acknowledged. Continue with the QA scenario plan.",
},
],
},
],
}),
});
expect(threadMemorySearch.status).toBe(200);
const threadMemorySearchText = await threadMemorySearch.text();
expect(threadMemorySearchText).toContain('"name":"memory_search"');
expect(threadMemorySearchText).toContain("ORBIT-22");
const threadMemorySummary = await fetch(`${server.baseUrl}/v1/responses`, {
method: "POST",
headers: {
"content-type": "application/json",
},
body: JSON.stringify({
stream: false,
instructions:
"@openclaw Thread memory check: what is the hidden thread codename stored only in memory? Use memory tools first and reply only in this thread.",
input: [
{
type: "function_call_output",
output: JSON.stringify({
text: "Thread-hidden codename: ORBIT-22.",
}),
},
{
role: "user",
content: [
{
type: "input_text",
text: "Protocol note: acknowledged. Continue with the QA scenario plan.",
},
],
},
],
}),
});
expect(threadMemorySummary.status).toBe(200);
expect(JSON.stringify(await threadMemorySummary.json())).toContain("ORBIT-22");
const memoryFollowup = await fetch(`${server.baseUrl}/v1/responses`, {
method: "POST",
headers: {

View File

@@ -747,7 +747,7 @@ function buildAssistantText(
if (/session memory ranking check/i.test(prompt) && orbitCode) {
return `Protocol note: I checked memory and the current Project Nebula codename is ${orbitCode}.`;
}
if (/thread memory check/i.test(prompt) && orbitCode) {
if (/thread memory check/i.test(allInputText) && orbitCode) {
return `Protocol note: I checked memory in-thread and the hidden thread codename is ${orbitCode}.`;
}
if (/switch(?:ing)? models?/i.test(prompt)) {
@@ -1457,7 +1457,7 @@ async function buildResponsesPayload(
});
}
}
if (/thread memory check/i.test(prompt)) {
if (/thread memory check/i.test(allInputText)) {
if (!toolOutput) {
return buildToolCallEventsWithArgs("memory_search", {
query: "hidden thread codename ORBIT-22",