From 824901083beff0404af665207e59b5538f6761bc Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 15 Feb 2026 19:09:05 +0000 Subject: [PATCH] refactor(pi): dedupe compaction failure --- src/agents/pi-embedded-runner/compact.ts | 47 ++++++++---------------- 1 file changed, 15 insertions(+), 32 deletions(-) diff --git a/src/agents/pi-embedded-runner/compact.ts b/src/agents/pi-embedded-runner/compact.ts index 48cf6a69de..05f8cd4581 100644 --- a/src/agents/pi-embedded-runner/compact.ts +++ b/src/agents/pi-embedded-runner/compact.ts @@ -252,16 +252,7 @@ export async function compactEmbeddedPiSessionDirect( const provider = (params.provider ?? DEFAULT_PROVIDER).trim() || DEFAULT_PROVIDER; const modelId = (params.model ?? DEFAULT_MODEL).trim() || DEFAULT_MODEL; - const agentDir = params.agentDir ?? resolveOpenClawAgentDir(); - await ensureOpenClawModelsJson(params.config, agentDir); - const { model, error, authStorage, modelRegistry } = resolveModel( - provider, - modelId, - agentDir, - params.config, - ); - if (!model) { - const reason = error ?? `Unknown model: ${provider}/${modelId}`; + const fail = (reason: string): EmbeddedPiCompactResult => { log.warn( `[compaction-diag] end runId=${runId} sessionKey=${params.sessionKey ?? params.sessionId} ` + `diagId=${diagId} trigger=${trigger} provider=${provider}/${modelId} ` + @@ -273,6 +264,18 @@ export async function compactEmbeddedPiSessionDirect( compacted: false, reason, }; + }; + const agentDir = params.agentDir ?? resolveOpenClawAgentDir(); + await ensureOpenClawModelsJson(params.config, agentDir); + const { model, error, authStorage, modelRegistry } = resolveModel( + provider, + modelId, + agentDir, + params.config, + ); + if (!model) { + const reason = error ?? `Unknown model: ${provider}/${modelId}`; + return fail(reason); } try { const apiKeyInfo = await getApiKeyForModel({ @@ -299,17 +302,7 @@ export async function compactEmbeddedPiSessionDirect( } } catch (err) { const reason = describeUnknownError(err); - log.warn( - `[compaction-diag] end runId=${runId} sessionKey=${params.sessionKey ?? params.sessionId} ` + - `diagId=${diagId} trigger=${trigger} provider=${provider}/${modelId} ` + - `attempt=${attempt} maxAttempts=${maxAttempts} outcome=failed reason=${classifyCompactionReason(reason)} ` + - `durationMs=${Date.now() - startedAt}`, - ); - return { - ok: false, - compacted: false, - reason, - }; + return fail(reason); } await fs.mkdir(resolvedWorkspace, { recursive: true }); @@ -711,17 +704,7 @@ export async function compactEmbeddedPiSessionDirect( } } catch (err) { const reason = describeUnknownError(err); - log.warn( - `[compaction-diag] end runId=${runId} sessionKey=${params.sessionKey ?? params.sessionId} ` + - `diagId=${diagId} trigger=${trigger} provider=${provider}/${modelId} ` + - `attempt=${attempt} maxAttempts=${maxAttempts} outcome=failed reason=${classifyCompactionReason(reason)} ` + - `durationMs=${Date.now() - startedAt}`, - ); - return { - ok: false, - compacted: false, - reason, - }; + return fail(reason); } finally { restoreSkillEnv?.(); process.chdir(prevCwd);