From f308ba08f8f456a898e4307649f8d0f16d6ad5a4 Mon Sep 17 00:00:00 2001 From: Bo Xie Date: Wed, 8 Jul 2026 00:32:08 -0700 Subject: [PATCH] core: mark auto-compaction fallback requests --- codex-rs/core/src/auto_compact_fallback.rs | 2 +- codex-rs/core/src/responses_metadata.rs | 2 ++ codex-rs/core/src/turn_metadata_tests.rs | 12 ++++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/codex-rs/core/src/auto_compact_fallback.rs b/codex-rs/core/src/auto_compact_fallback.rs index 60c0f583ff..fa24a97b98 100644 --- a/codex-rs/core/src/auto_compact_fallback.rs +++ b/codex-rs/core/src/auto_compact_fallback.rs @@ -65,7 +65,7 @@ pub(crate) async fn run_auto_compact_fallback( let responses_metadata = restricted_turn.turn_metadata_state.to_responses_metadata( sess.installation_id.clone(), window_id, - CodexResponsesRequestKind::Turn, + CodexResponsesRequestKind::AutoCompactFallback, ); let input = sess .clone_history() diff --git a/codex-rs/core/src/responses_metadata.rs b/codex-rs/core/src/responses_metadata.rs index c76d3078cd..429642744f 100644 --- a/codex-rs/core/src/responses_metadata.rs +++ b/codex-rs/core/src/responses_metadata.rs @@ -114,6 +114,7 @@ impl CompactionTurnMetadata { #[derive(Clone, Copy, Debug)] pub(crate) enum CodexResponsesRequestKind { Turn, + AutoCompactFallback, Prewarm, Compaction(CompactionTurnMetadata), Memory, @@ -123,6 +124,7 @@ impl CodexResponsesRequestKind { fn metadata(self) -> (&'static str, Option) { match self { CodexResponsesRequestKind::Turn => ("turn", None), + CodexResponsesRequestKind::AutoCompactFallback => ("auto_compact_fallback", None), CodexResponsesRequestKind::Prewarm => ("prewarm", None), CodexResponsesRequestKind::Compaction(metadata) => ("compaction", Some(metadata)), CodexResponsesRequestKind::Memory => ("memory", None), diff --git a/codex-rs/core/src/turn_metadata_tests.rs b/codex-rs/core/src/turn_metadata_tests.rs index 83649b9187..c7acd8be62 100644 --- a/codex-rs/core/src/turn_metadata_tests.rs +++ b/codex-rs/core/src/turn_metadata_tests.rs @@ -736,6 +736,18 @@ fn turn_metadata_state_overlays_compaction_only_on_compaction_requests() { assert_eq!(regular_json["request_kind"].as_str(), Some("turn")); assert_eq!(regular_json[WINDOW_ID_KEY].as_str(), Some("thread-a:3")); assert!(regular_json.get("compaction").is_none()); + + let fallback_header = test_responses_metadata_json( + &state, + "thread-a:3", + CodexResponsesRequestKind::AutoCompactFallback, + ); + let fallback_json: Value = serde_json::from_str(&fallback_header).expect("json"); + assert_eq!( + fallback_json["request_kind"].as_str(), + Some("auto_compact_fallback") + ); + assert!(fallback_json.get("compaction").is_none()); } #[tokio::test]