From 50b1f5d59ae7789782af18f854e7311558756f25 Mon Sep 17 00:00:00 2001 From: "mat.brown" Date: Tue, 18 Aug 2026 22:01:39 +0000 Subject: [PATCH] Fix Pi session cwd attribution --- integrations/pi/index.ts | 4 ++-- test/connect-pi.test.ts | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/integrations/pi/index.ts b/integrations/pi/index.ts index 24e71f3c7..e667735a3 100644 --- a/integrations/pi/index.ts +++ b/integrations/pi/index.ts @@ -289,7 +289,7 @@ export default function agentmemoryExtension(pi: ExtensionAPI) { pi.on("session_start", async (_event, ctx) => { const sessionFile = ctx.sessionManager.getSessionFile(); sessionId = sessionFile ? path.basename(sessionFile).replace(/\.[^.]+$/, "") : `ephemeral-${crypto.randomUUID().slice(0, 8)}`; - currentCwd = process.cwd(); + currentCwd = ctx.cwd; currentProject = resolveProjectName(currentCwd); await refreshStatus(ctx); // After refreshStatus: that is where lastHealthOk is first populated. @@ -301,7 +301,7 @@ export default function agentmemoryExtension(pi: ExtensionAPI) { }); pi.on("before_agent_start", async (event, ctx) => { - currentCwd = event.systemPromptOptions.cwd || process.cwd(); + currentCwd = event.systemPromptOptions.cwd || ctx.cwd; currentProject = resolveProjectName(currentCwd); lastPrompt = event.prompt?.trim() || ""; if (!lastPrompt) return; diff --git a/test/connect-pi.test.ts b/test/connect-pi.test.ts index d7736199c..d2faf721f 100644 --- a/test/connect-pi.test.ts +++ b/test/connect-pi.test.ts @@ -130,4 +130,15 @@ describe("integrations/pi is a valid pi package", () => { expect(index).toContain("@earendil-works/pi-coding-agent"); expect(index).not.toContain("@mariozechner/pi-coding-agent"); }); + + it("uses Pi's session cwd for session and prompt attribution", () => { + const index = readFileSync("integrations/pi/index.ts", "utf-8"); + const sessionStart = index.slice( + index.indexOf('pi.on("session_start"'), + index.indexOf('pi.on("before_agent_start"'), + ); + expect(sessionStart).toContain("currentCwd = ctx.cwd;"); + expect(sessionStart).not.toContain("process.cwd()"); + expect(index).toContain("currentCwd = event.systemPromptOptions.cwd || ctx.cwd;"); + }); });