From 7ed3d3f9aa4dd24237d2b440cc5eca09170d05bd Mon Sep 17 00:00:00 2001 From: Charles Cunningham Date: Wed, 18 Feb 2026 01:21:51 -0800 Subject: [PATCH] Put NotNeeded first in pre-turn compaction outcome match --- codex-rs/core/src/codex.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/codex-rs/core/src/codex.rs b/codex-rs/core/src/codex.rs index 6fec45e1dc..eb81b7e952 100644 --- a/codex-rs/core/src/codex.rs +++ b/codex-rs/core/src/codex.rs @@ -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.