diff --git a/codex-rs/protocol/src/items.rs b/codex-rs/protocol/src/items.rs index 2c9d073f0dce..c90d6e7d87c8 100644 --- a/codex-rs/protocol/src/items.rs +++ b/codex-rs/protocol/src/items.rs @@ -378,11 +378,13 @@ pub struct ContextCompactionItem { pub id: String, } +fn new_item_id() -> String { + uuid::Uuid::now_v7().to_string() +} + impl ContextCompactionItem { pub fn new() -> Self { - Self { - id: uuid::Uuid::new_v4().to_string(), - } + Self { id: new_item_id() } } } @@ -395,7 +397,7 @@ impl Default for ContextCompactionItem { impl UserMessageItem { pub fn new(content: &[UserInput]) -> Self { Self { - id: uuid::Uuid::new_v4().to_string(), + id: new_item_id(), client_id: None, content: content.to_vec(), } @@ -497,9 +499,7 @@ fn trim_trailing_default_image_details( impl HookPromptItem { pub fn from_fragments(id: Option<&String>, fragments: Vec) -> Self { Self { - id: id - .cloned() - .unwrap_or_else(|| uuid::Uuid::new_v4().to_string()), + id: id.cloned().unwrap_or_else(new_item_id), fragments, } } @@ -529,7 +529,7 @@ pub fn build_hook_prompt_message(fragments: &[HookPromptFragment]) -> Option Option Self { Self { - id: uuid::Uuid::new_v4().to_string(), + id: new_item_id(), content: content.to_vec(), phase: None, memory_citation: None,