fix: preserve inter-session input provenance (thanks @anbecker)

This commit is contained in:
Peter Steinberger
2026-02-13 02:01:53 +01:00
parent 7081dee1af
commit 85409e401b
25 changed files with 415 additions and 12 deletions

View File

@@ -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",
});
});
});