From a0e6ad0b7dd67739f41aa54160f063246f2588e3 Mon Sep 17 00:00:00 2001 From: Dotta Date: Thu, 5 Mar 2026 15:06:23 -0600 Subject: [PATCH] openclaw: preserve run metadata in wake compatibility payload --- packages/adapters/openclaw/src/server/execute.ts | 7 +++++++ server/src/__tests__/openclaw-adapter.test.ts | 7 ++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/adapters/openclaw/src/server/execute.ts b/packages/adapters/openclaw/src/server/execute.ts index a1e17a34..5492bfbd 100644 --- a/packages/adapters/openclaw/src/server/execute.ts +++ b/packages/adapters/openclaw/src/server/execute.ts @@ -439,6 +439,13 @@ export async function execute(ctx: AdapterExecutionContext): Promise { const body = JSON.parse(String(fetchMock.mock.calls[0]?.[1]?.body ?? "{}")) as Record; expect(body.mode).toBe("now"); expect(typeof body.text).toBe("string"); + expect(body.paperclip).toBeTypeOf("object"); + expect((body.paperclip as Record).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; 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).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; expect(secondBody.mode).toBe("now"); expect(typeof secondBody.text).toBe("string"); + expect(secondBody.paperclip).toBeTypeOf("object"); + expect((secondBody.paperclip as Record).runId).toBe("run-123"); expect(result.resultJson?.compatibilityMode).toBe("wake_text"); }); });