Skip to content

Commit 8306eab

Browse files
authored
fix(agents): forward memory flush write path (openclaw#41761)
Merged via squash. Prepared head SHA: 0a8ebf8 Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com> Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com> Reviewed-by: @frankekn
1 parent 45b74fb commit 8306eab

3 files changed

Lines changed: 32 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ Docs: https://docs.openclaw.ai
5151
- Tools/web search: recover OpenRouter Perplexity citation extraction from `message.annotations` when chat-completions responses omit top-level citations. (#40881) Thanks @laurieluo.
5252
- Security/external content: treat whitespace-delimited `EXTERNAL UNTRUSTED CONTENT` boundary markers like underscore-delimited variants so prompt wrappers cannot bypass marker sanitization. (#35983) Thanks @urianpaul94.
5353
- Telegram/network env-proxy: apply configured transport policy to proxied HTTPS dispatchers as well as direct `NO_PROXY` bypasses, so resolver-scoped IPv4 fallback and network settings work consistently for env-proxied Telegram traffic. (#40740) Thanks @sircrumpet.
54+
- Agents/memory flush: forward `memoryFlushWritePath` through `runEmbeddedPiAgent` so memory-triggered flush turns keep the append-only write guard without aborting before tool setup. Follows up on #38574. (#41761) Thanks @frankekn.
5455

5556
## 2026.3.8
5657

src/agents/pi-embedded-runner/run.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -850,6 +850,7 @@ export async function runEmbeddedPiAgent(
850850
sessionId: params.sessionId,
851851
sessionKey: params.sessionKey,
852852
trigger: params.trigger,
853+
memoryFlushWritePath: params.memoryFlushWritePath,
853854
messageChannel: params.messageChannel,
854855
messageProvider: params.messageProvider,
855856
agentAccountId: params.agentAccountId,

src/agents/pi-embedded-runner/usage-reporting.test.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,36 @@ describe("runEmbeddedPiAgent usage reporting", () => {
7979
);
8080
});
8181

82+
it("forwards memory flush write paths into memory-triggered attempts", async () => {
83+
mockedRunEmbeddedAttempt.mockResolvedValueOnce({
84+
aborted: false,
85+
promptError: null,
86+
timedOut: false,
87+
sessionIdUsed: "test-session",
88+
assistantTexts: [],
89+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
90+
} as any);
91+
92+
await runEmbeddedPiAgent({
93+
sessionId: "test-session",
94+
sessionKey: "test-key",
95+
sessionFile: "/tmp/session.json",
96+
workspaceDir: "/tmp/workspace",
97+
prompt: "flush",
98+
timeoutMs: 30000,
99+
runId: "run-memory-forwarding",
100+
trigger: "memory",
101+
memoryFlushWritePath: "memory/2026-03-10.md",
102+
});
103+
104+
expect(mockedRunEmbeddedAttempt).toHaveBeenCalledWith(
105+
expect.objectContaining({
106+
trigger: "memory",
107+
memoryFlushWritePath: "memory/2026-03-10.md",
108+
}),
109+
);
110+
});
111+
82112
it("reports total usage from the last turn instead of accumulated total", async () => {
83113
// Simulate a multi-turn run result.
84114
// Turn 1: Input 100, Output 50. Total 150.

0 commit comments

Comments
 (0)