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
@@ -778,14 +778,13 @@ export async function compact(
settings,
} = preparation;
// Generate summaries (can be parallel if both needed) and merge into one
// Generate summaries and merge into one
let summary: string;
if (isSplitTurn && turnPrefixMessages.length > 0) {
// Generate both summaries in parallel
const [historyResult, turnPrefixResult] = await Promise.all([
const historyResult =
messagesToSummarize.length > 0
? generateSummary(
? await generateSummary(
messagesToSummarize,
model,
settings.reserveTokens,
@@ -798,19 +797,18 @@ export async function compact(
streamFn,
env,
)
: Promise.resolve("No prior history."),
generateTurnPrefixSummary(
turnPrefixMessages,
model,
settings.reserveTokens,
apiKey,
headers,
env,
signal,
thinkingLevel,
streamFn,
),
]);
: "No prior history.";
const turnPrefixResult = await generateTurnPrefixSummary(
turnPrefixMessages,
model,
settings.reserveTokens,
apiKey,
headers,
env,
signal,
thinkingLevel,
streamFn,
);
// Merge into single summary
summary = `${historyResult}\n\n---\n\n**Turn Context (split turn):**\n\n${turnPrefixResult}`;
} else {