openclaw: preserve run metadata in wake compatibility payload

This commit is contained in:
Dotta
2026-03-05 15:06:23 -06:00
parent 4b90784183
commit a0e6ad0b7d
2 changed files with 13 additions and 1 deletions

View File

@@ -439,6 +439,13 @@ export async function execute(ctx: AdapterExecutionContext): Promise<AdapterExec
const wakeTextBody = {
text: buildWakeText(wakePayload),
mode: "now",
sessionKey,
paperclip: {
...wakePayload,
sessionKey,
streamTransport: transport,
context,
},
};
if (onMeta) {

View File

@@ -158,6 +158,8 @@ describe("openclaw adapter execute", () => {
const body = JSON.parse(String(fetchMock.mock.calls[0]?.[1]?.body ?? "{}")) as Record<string, unknown>;
expect(body.mode).toBe("now");
expect(typeof body.text).toBe("string");
expect(body.paperclip).toBeTypeOf("object");
expect((body.paperclip as Record<string, unknown>).runId).toBe("run-123");
expect(result.resultJson?.compatibilityMode).toBe("wake_text");
expect(result.resultJson?.transportFallback).toBe("webhook");
});
@@ -181,7 +183,8 @@ describe("openclaw adapter execute", () => {
const body = JSON.parse(String(fetchMock.mock.calls[0]?.[1]?.body ?? "{}")) as Record<string, unknown>;
expect(body.mode).toBe("now");
expect(typeof body.text).toBe("string");
expect(body.paperclip).toBeUndefined();
expect(body.paperclip).toBeTypeOf("object");
expect((body.paperclip as Record<string, unknown>).runId).toBe("run-123");
});
it("retries with wake text payload when endpoint reports text required in webhook mode", async () => {
@@ -215,6 +218,8 @@ describe("openclaw adapter execute", () => {
const secondBody = JSON.parse(String(fetchMock.mock.calls[1]?.[1]?.body ?? "{}")) as Record<string, unknown>;
expect(secondBody.mode).toBe("now");
expect(typeof secondBody.text).toBe("string");
expect(secondBody.paperclip).toBeTypeOf("object");
expect((secondBody.paperclip as Record<string, unknown>).runId).toBe("run-123");
expect(result.resultJson?.compatibilityMode).toBe("wake_text");
});
});