Compaction Runner: add post-sync mode scaffold

This commit is contained in:
Rodrigo Uroz
2026-02-24 16:32:43 +00:00
parent c1d6edf9a8
commit 52e2db4221

View File

@@ -242,6 +242,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<void> {
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.
@@ -667,6 +684,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 {