mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 10:21:24 +00:00
fix: preserve inter-session input provenance (thanks @anbecker)
This commit is contained in:
@@ -269,4 +269,34 @@ describe("installSessionToolResultGuard", () => {
|
||||
};
|
||||
expect(textBlock.text).toBe(originalText);
|
||||
});
|
||||
|
||||
it("applies message persistence transform to user messages", () => {
|
||||
const sm = SessionManager.inMemory();
|
||||
installSessionToolResultGuard(sm, {
|
||||
transformMessageForPersistence: (message) =>
|
||||
(message as { role?: string }).role === "user"
|
||||
? ({
|
||||
...(message as unknown as Record<string, unknown>),
|
||||
provenance: { kind: "inter_session", sourceTool: "sessions_send" },
|
||||
} as AgentMessage)
|
||||
: message,
|
||||
});
|
||||
|
||||
sm.appendMessage(
|
||||
asAppendMessage({
|
||||
role: "user",
|
||||
content: "forwarded",
|
||||
timestamp: Date.now(),
|
||||
}),
|
||||
);
|
||||
|
||||
const persisted = sm.getEntries().find((e) => e.type === "message") as
|
||||
| { message?: Record<string, unknown> }
|
||||
| undefined;
|
||||
expect(persisted?.message?.role).toBe("user");
|
||||
expect(persisted?.message?.provenance).toEqual({
|
||||
kind: "inter_session",
|
||||
sourceTool: "sessions_send",
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user