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 provider = (params.provider ?? DEFAULT_PROVIDER).trim() || DEFAULT_PROVIDER;
const modelId = (params.model ?? DEFAULT_MODEL).trim() || DEFAULT_MODEL; const modelId = (params.model ?? DEFAULT_MODEL).trim() || DEFAULT_MODEL;
const agentDir = params.agentDir ?? resolveOpenClawAgentDir(); const fail = (reason: string): EmbeddedPiCompactResult => {
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}`;
log.warn( log.warn(
`[compaction-diag] end runId=${runId} sessionKey=${params.sessionKey ?? params.sessionId} ` + `[compaction-diag] end runId=${runId} sessionKey=${params.sessionKey ?? params.sessionId} ` +
`diagId=${diagId} trigger=${trigger} provider=${provider}/${modelId} ` + `diagId=${diagId} trigger=${trigger} provider=${provider}/${modelId} ` +
@@ -273,6 +264,18 @@ export async function compactEmbeddedPiSessionDirect(
compacted: false, compacted: false,
reason, 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 { try {
const apiKeyInfo = await getApiKeyForModel({ const apiKeyInfo = await getApiKeyForModel({
@@ -299,17 +302,7 @@ export async function compactEmbeddedPiSessionDirect(
} }
} catch (err) { } catch (err) {
const reason = describeUnknownError(err); const reason = describeUnknownError(err);
log.warn( return fail(reason);
`[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,
};
} }
await fs.mkdir(resolvedWorkspace, { recursive: true }); await fs.mkdir(resolvedWorkspace, { recursive: true });
@@ -711,17 +704,7 @@ export async function compactEmbeddedPiSessionDirect(
} }
} catch (err) { } catch (err) {
const reason = describeUnknownError(err); const reason = describeUnknownError(err);
log.warn( return fail(reason);
`[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,
};
} finally { } finally {
restoreSkillEnv?.(); restoreSkillEnv?.();
process.chdir(prevCwd); process.chdir(prevCwd);