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

@@ -112,6 +112,36 @@ describe("sanitizeSessionHistory", () => {
);
});
it("annotates inter-session user messages before context sanitization", async () => {
vi.mocked(helpers.isGoogleModelApi).mockReturnValue(false);
const messages: AgentMessage[] = [
{
role: "user",
content: "forwarded instruction",
provenance: {
kind: "inter_session",
sourceSessionKey: "agent:main:req",
sourceTool: "sessions_send",
},
} as unknown as AgentMessage,
];
const result = await sanitizeSessionHistory({
messages,
modelApi: "openai-responses",
provider: "openai",
sessionManager: mockSessionManager,
sessionId: "test-session",
});
const first = result[0] as Extract<AgentMessage, { role: "user" }>;
expect(first.role).toBe("user");
expect(typeof first.content).toBe("string");
expect(first.content as string).toContain("[Inter-session message]");
expect(first.content as string).toContain("sourceSession=agent:main:req");
});
it("keeps reasoning-only assistant messages for openai-responses", async () => {
vi.mocked(helpers.isGoogleModelApi).mockReturnValue(false);