fix: preserve sessionKey for agent runs

This commit is contained in:
Peter Steinberger
2026-01-07 17:53:59 +01:00
parent 9eb5d01367
commit 937e0265a3
9 changed files with 117 additions and 5 deletions

View File

@@ -168,6 +168,45 @@ describe("agentCommand", () => {
});
});
it("keeps explicit sessionKey even when sessionId exists elsewhere", async () => {
await withTempHome(async (home) => {
const store = path.join(home, "sessions.json");
fs.mkdirSync(path.dirname(store), { recursive: true });
fs.writeFileSync(
store,
JSON.stringify(
{
"agent:main:main": {
sessionId: "sess-main",
updatedAt: Date.now(),
},
},
null,
2,
),
);
mockConfig(home, store);
await agentCommand(
{
message: "hi",
sessionId: "sess-main",
sessionKey: "agent:main:subagent:abc",
},
runtime,
);
const callArgs = vi.mocked(runEmbeddedPiAgent).mock.calls.at(-1)?.[0];
expect(callArgs?.sessionKey).toBe("agent:main:subagent:abc");
const saved = JSON.parse(fs.readFileSync(store, "utf-8")) as Record<
string,
{ sessionId?: string }
>;
expect(saved["agent:main:subagent:abc"]?.sessionId).toBe("sess-main");
});
});
it("defaults thinking to low for reasoning-capable models", async () => {
await withTempHome(async (home) => {
const store = path.join(home, "sessions.json");