From e5cf9f8d46916bd26f2f30dc4ee6f2aa79f6cbfe Mon Sep 17 00:00:00 2001 From: Rodrigo Uroz Date: Tue, 24 Feb 2026 16:32:43 +0000 Subject: [PATCH] Compaction Runner: add post-sync mode scaffold (cherry picked from commit 6ff5dedd66ebc0934a7df5440cb3d8c605d98b6f) --- src/agents/pi-embedded-runner/compact.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/agents/pi-embedded-runner/compact.ts b/src/agents/pi-embedded-runner/compact.ts index f1eea72165a..43e683cbcdf 100644 --- a/src/agents/pi-embedded-runner/compact.ts +++ b/src/agents/pi-embedded-runner/compact.ts @@ -268,6 +268,23 @@ function classifyCompactionReason(reason?: string): string { return "unknown"; } +function resolvePostCompactionIndexSyncMode(config?: OpenClawConfig): "off" | "async" | "await" { + const mode = config?.agents?.defaults?.compaction?.postIndexSync; + if (mode === "off" || mode === "async" || mode === "await") { + return mode; + } + return "async"; +} + +async function syncPostCompactionSessionMemory(params: { + config?: OpenClawConfig; + mode: "off" | "async" | "await"; +}): Promise { + if (params.mode === "off" || !params.config) { + return; + } +} + /** * Core compaction logic without lane queueing. * Use this when already inside a session/global lane to avoid deadlocks. @@ -810,6 +827,10 @@ export async function compactEmbeddedPiSessionDirect( session.compact(params.customInstructions), ); emitSessionTranscriptUpdate(params.sessionFile); + await syncPostCompactionSessionMemory({ + config: params.config, + mode: resolvePostCompactionIndexSyncMode(params.config), + }); // Estimate tokens after compaction by summing token estimates for remaining messages let tokensAfter: number | undefined; try {