fix(cron): force fresh isolated session IDs

This commit is contained in:
Peter Steinberger
2026-02-22 19:40:31 +01:00
parent 6fef318fda
commit 91f75a2b33
3 changed files with 13 additions and 0 deletions

View File

@@ -327,6 +327,16 @@ describe("runCronIsolatedAgentTurn — skill filter", () => {
]);
});
it("forces a fresh session for isolated cron runs", async () => {
const result = await runCronIsolatedAgentTurn(makeParams());
expect(result.status).toBe("ok");
expect(resolveCronSessionMock).toHaveBeenCalledOnce();
expect(resolveCronSessionMock.mock.calls[0]?.[0]).toMatchObject({
forceNew: true,
});
});
it("reuses cached snapshot when version and normalized skillFilter are unchanged", async () => {
resolveAgentSkillsFilterMock.mockReturnValue([" weather ", "meme-factory", "weather"]);
resolveCronSessionMock.mockReturnValue({

View File

@@ -270,6 +270,8 @@ export async function runCronIsolatedAgentTurn(params: {
sessionKey: agentSessionKey,
agentId,
nowMs: now,
// Isolated cron runs must not carry prior turn context across executions.
forceNew: params.job.sessionTarget === "isolated",
});
const runSessionId = cronSession.sessionEntry.sessionId;
const runSessionKey = baseSessionKey.startsWith("cron:")