refactor(pi): dedupe compaction failure

This commit is contained in:
Peter Steinberger
2026-02-15 19:09:05 +00:00
parent a2ceadcc2a
commit 824901083b

View File

@@ -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);