Put NotNeeded first in pre-turn compaction outcome match

This commit is contained in:
Charles Cunningham
2026-02-18 01:21:51 -08:00
parent 454fa82281
commit 7ed3d3f9aa

View File

@@ -4720,6 +4720,14 @@ async fn persist_pre_turn_items_for_compaction_outcome(
response_item: ResponseItem,
) {
match outcome {
PreTurnCompactionOutcome::NotNeeded => {
if !pre_turn_context_items.is_empty() {
sess.record_conversation_items(turn_context, pre_turn_context_items)
.await;
}
sess.record_user_prompt_and_emit_turn_item(turn_context.as_ref(), input, response_item)
.await;
}
PreTurnCompactionOutcome::CompactedWithIncomingItems => {
// Pre-turn compaction includes incoming items only for the compaction request itself.
// Persist canonical turn context directly above the incoming user item so context
@@ -4732,14 +4740,6 @@ async fn persist_pre_turn_items_for_compaction_outcome(
sess.record_user_prompt_and_emit_turn_item(turn_context.as_ref(), input, response_item)
.await;
}
PreTurnCompactionOutcome::NotNeeded => {
if !pre_turn_context_items.is_empty() {
sess.record_conversation_items(turn_context, pre_turn_context_items)
.await;
}
sess.record_user_prompt_and_emit_turn_item(turn_context.as_ref(), input, response_item)
.await;
}
// TODO(ccunningham): Followup PR will use compacting excluding incoming items as a fallback
// (even though it is out of distribution for current models).
// Also future models may prefer compacting pre-turn history without incoming turn items.