mirror of
https://github.com/openai/codex.git
synced 2026-11-13 22:47:20 +00:00
Centralize compacted rollout item construction (#34533)
## What changed - Pass only compaction message and window metadata into `Session::replace_compacted_history`. - Build the persisted `CompactedItem` there after assigning any missing response item IDs, so its replacement history matches the live history without callers cloning or assembling it themselves. GitOrigin-RevId: a6106c33b6d3eef39ac0b563a50e17f6782970dc
This commit is contained in:
1 parent
c44c4de7b4
commit
f69f88f811
4 files changed
+41
-38
No files matched your search
@@ -4,6 +4,7 @@ use crate::Prompt;
|
||||
use crate::ResponseStream;
|
||||
use crate::client::ModelClientSession;
|
||||
use crate::client_common::ResponseEvent;
|
||||
use crate::compact::CompactedHistoryMetadata;
|
||||
use crate::compact::CompactionAnalyticsAttempt;
|
||||
use crate::compact::CompactionAnalyticsDetails;
|
||||
use crate::compact::InitialContextInjection;
|
||||
@@ -33,7 +34,6 @@ use codex_protocol::items::ContextCompactionItem;
|
||||
use codex_protocol::items::TurnItem;
|
||||
use codex_protocol::models::ContentItem;
|
||||
use codex_protocol::models::ResponseItem;
|
||||
use codex_protocol::protocol::CompactedItem;
|
||||
use codex_protocol::protocol::EventMsg;
|
||||
use codex_protocol::protocol::TokenUsage;
|
||||
use codex_protocol::protocol::TruncationPolicy;
|
||||
@@ -293,14 +293,6 @@ async fn run_remote_compact_task_inner_impl(
|
||||
Some(compaction_turn_context.to_turn_context_item())
|
||||
}
|
||||
};
|
||||
let compacted_item = CompactedItem {
|
||||
message: String::new(),
|
||||
replacement_history: Some(new_history.clone()),
|
||||
window_number: Some(new_window_number),
|
||||
first_window_id: Some(new_window_ids.first_window_id.to_string()),
|
||||
previous_window_id: new_window_ids.previous_window_id.map(|id| id.to_string()),
|
||||
window_id: Some(new_window_ids.window_id.to_string()),
|
||||
};
|
||||
if let Some(trace_input_history) = trace_input_history.as_deref() {
|
||||
compaction_trace.record_installed(&CompactionCheckpointTracePayload {
|
||||
input_history: trace_input_history,
|
||||
@@ -312,7 +304,11 @@ async fn run_remote_compact_task_inner_impl(
|
||||
new_history,
|
||||
reference_context_item,
|
||||
world_state_baseline,
|
||||
compacted_item,
|
||||
CompactedHistoryMetadata {
|
||||
message: String::new(),
|
||||
window_number: new_window_number,
|
||||
window_ids: new_window_ids,
|
||||
},
|
||||
)
|
||||
.await;
|
||||
sess.recompute_token_usage(compaction_turn_context).await;
|
||||
|
||||
Reference in new issue
Block a user