mirror of
https://github.com/openai/codex.git
synced 2026-11-06 20:20:34 +00:00
## What changed Introduce `ItemIdGenerator` and pass the runtime-owned generator through sessions, model clients, history, hooks, tool outputs, and memory requests. Keep UUIDv7 generation as the default and replace direct calls to `ResponseItemId::new` with the shared callable. Preserve existing item IDs and backfill missing or empty IDs through the same generator, including forked history before reconstruction and persistence. ## Testing Extend coverage for UUIDv7 IDs on user messages, agent messages, and additional tools, and assert that forked model context matches the backfilled items persisted to history. GitOrigin-RevId: 0dd9ccf0f46f0f1005a6acfc740133b03ce82259
13 lines
474 B
Rust
13 lines
474 B
Rust
//! Response item ID generation shared by sessions and their consumers.
|
|
|
|
use crate::ResponseItemId;
|
|
use std::sync::Arc;
|
|
|
|
/// Generates response item IDs from a type prefix for an owning session. Clones share the same callable.
|
|
pub type ItemIdGenerator = Arc<dyn Fn(&str) -> ResponseItemId + Send + Sync>;
|
|
|
|
#[cfg(test)]
|
|
pub(super) fn uuid_v7_item_id_generator_for_test() -> ItemIdGenerator {
|
|
Arc::new(|prefix| ResponseItemId::with_suffix(prefix, uuid::Uuid::now_v7()))
|
|
}
|