fix(coding-agent): serialize split-turn compaction summaries

closes #5536
This commit is contained in:
Vegard Stikbakke
2026-07-01 15:37:00 +02:00
parent e2ccdc8509
commit f58c115626
4 changed files with 31 additions and 22 deletions
@@ -653,9 +653,9 @@ export async function compact(
let summary: string;
if (isSplitTurn && turnPrefixMessages.length > 0) {
const [historyResult, turnPrefixResult] = await Promise.all([
const historyResult =
messagesToSummarize.length > 0
? generateSummary(
? await generateSummary(
messagesToSummarize,
models,
model,
@@ -665,10 +665,16 @@ export async function compact(
previousSummary,
thinkingLevel,
)
: Promise.resolve(ok<string, CompactionError>("No prior history.")),
generateTurnPrefixSummary(turnPrefixMessages, models, model, settings.reserveTokens, signal, thinkingLevel),
]);
: ok<string, CompactionError>("No prior history.");
if (!historyResult.ok) return err(historyResult.error);
const turnPrefixResult = await generateTurnPrefixSummary(
turnPrefixMessages,
models,
model,
settings.reserveTokens,
signal,
thinkingLevel,
);
if (!turnPrefixResult.ok) return err(turnPrefixResult.error);
summary = `${historyResult.value}\n\n---\n\n**Turn Context (split turn):**\n\n${turnPrefixResult.value}`;
} else {