This commit is contained in:
Roy Han
2026-03-25 17:09:14 -07:00
parent d55054761a
commit 44965dd5dc
3 changed files with 18 additions and 19 deletions
@@ -735,6 +735,7 @@ fn personality_mode(personality: Option<Personality>) -> Option<String> {
Some(personality) => Some(personality.to_string()), Some(personality) => Some(personality.to_string()),
} }
} }
fn codex_thread_initialized_event_params( fn codex_thread_initialized_event_params(
thread_event: CodexThreadInitializedEvent, thread_event: CodexThreadInitializedEvent,
) -> CodexThreadInitializedEventParams { ) -> CodexThreadInitializedEventParams {
@@ -5,7 +5,6 @@ use super::CodexAppUsedEventRequest;
use super::CodexPluginEventRequest; use super::CodexPluginEventRequest;
use super::CodexPluginUsedEventRequest; use super::CodexPluginUsedEventRequest;
use super::CodexThreadInitializedEvent; use super::CodexThreadInitializedEvent;
use super::CodexThreadInitializedEventRequest;
use super::CodexTurnEvent; use super::CodexTurnEvent;
use super::CodexTurnEventRequest; use super::CodexTurnEventRequest;
use super::InitializationMode; use super::InitializationMode;
@@ -16,7 +15,7 @@ use super::TrackEventsContext;
use super::codex_app_metadata; use super::codex_app_metadata;
use super::codex_plugin_metadata; use super::codex_plugin_metadata;
use super::codex_plugin_used_metadata; use super::codex_plugin_used_metadata;
use super::codex_thread_initialized_event_params; use super::codex_thread_initialized_event_request;
use super::codex_turn_event_params; use super::codex_turn_event_params;
use super::normalize_path_for_skill_id; use super::normalize_path_for_skill_id;
use codex_login::default_client::originator; use codex_login::default_client::originator;
@@ -264,9 +263,8 @@ fn turn_event_serializes_expected_shape() {
#[test] #[test]
fn thread_initialized_event_serializes_expected_shape() { fn thread_initialized_event_serializes_expected_shape() {
let event = TrackEventRequest::ThreadInitialized(CodexThreadInitializedEventRequest { let event = TrackEventRequest::ThreadInitialized(codex_thread_initialized_event_request(
event_type: "codex_thread_initialized", CodexThreadInitializedEvent {
event_params: codex_thread_initialized_event_params(CodexThreadInitializedEvent {
thread_id: "thread-0".to_string(), thread_id: "thread-0".to_string(),
model: "gpt-5".to_string(), model: "gpt-5".to_string(),
ephemeral: true, ephemeral: true,
@@ -275,8 +273,8 @@ fn thread_initialized_event_serializes_expected_shape() {
subagent_source: None, subagent_source: None,
parent_thread_id: None, parent_thread_id: None,
created_at: 1_716_000_000, created_at: 1_716_000_000,
}), },
}); ));
let payload = serde_json::to_value(&event).expect("serialize thread initialized event"); let payload = serde_json::to_value(&event).expect("serialize thread initialized event");
@@ -301,9 +299,8 @@ fn thread_initialized_event_serializes_expected_shape() {
#[test] #[test]
fn thread_initialized_event_serializes_subagent_source() { fn thread_initialized_event_serializes_subagent_source() {
let event = TrackEventRequest::ThreadInitialized(CodexThreadInitializedEventRequest { let event = TrackEventRequest::ThreadInitialized(codex_thread_initialized_event_request(
event_type: "codex_thread_initialized", CodexThreadInitializedEvent {
event_params: codex_thread_initialized_event_params(CodexThreadInitializedEvent {
thread_id: "thread-1".to_string(), thread_id: "thread-1".to_string(),
model: "gpt-5".to_string(), model: "gpt-5".to_string(),
ephemeral: false, ephemeral: false,
@@ -312,8 +309,8 @@ fn thread_initialized_event_serializes_subagent_source() {
subagent_source: Some(SubAgentSource::Review), subagent_source: Some(SubAgentSource::Review),
parent_thread_id: None, parent_thread_id: None,
created_at: 1, created_at: 1,
}), },
}); ));
let payload = let payload =
serde_json::to_value(&event).expect("serialize subagent thread initialized event"); serde_json::to_value(&event).expect("serialize subagent thread initialized event");
@@ -323,9 +320,8 @@ fn thread_initialized_event_serializes_subagent_source() {
#[test] #[test]
fn thread_initialized_event_omits_non_user_non_subagent_session_source() { fn thread_initialized_event_omits_non_user_non_subagent_session_source() {
let event = TrackEventRequest::ThreadInitialized(CodexThreadInitializedEventRequest { let event = TrackEventRequest::ThreadInitialized(codex_thread_initialized_event_request(
event_type: "codex_thread_initialized", CodexThreadInitializedEvent {
event_params: codex_thread_initialized_event_params(CodexThreadInitializedEvent {
thread_id: "thread-2".to_string(), thread_id: "thread-2".to_string(),
model: "gpt-5".to_string(), model: "gpt-5".to_string(),
ephemeral: false, ephemeral: false,
@@ -334,8 +330,8 @@ fn thread_initialized_event_omits_non_user_non_subagent_session_source() {
subagent_source: None, subagent_source: None,
parent_thread_id: None, parent_thread_id: None,
created_at: 1, created_at: 1,
}), },
}); ));
let payload = serde_json::to_value(&event).expect("serialize mcp thread initialized event"); let payload = serde_json::to_value(&event).expect("serialize mcp thread initialized event");
assert_eq!( assert_eq!(
+4 -2
View File
@@ -642,6 +642,8 @@ impl Codex {
let initialization_mode = initialization_mode(&conversation_history); let initialization_mode = initialization_mode(&conversation_history);
let thread_session_source = session_configuration.session_source.clone(); let thread_session_source = session_configuration.session_source.clone();
let subagent_source = session_source_subagent_source(&thread_session_source);
let parent_thread_id = session_source_parent_thread_id(&thread_session_source);
let thread_initialized_configuration = session_configuration.clone(); let thread_initialized_configuration = session_configuration.clone();
// Generate a unique ID for the lifetime of this Codex session. // Generate a unique ID for the lifetime of this Codex session.
@@ -691,8 +693,8 @@ impl Codex {
.ephemeral, .ephemeral,
session_source: thread_session_source, session_source: thread_session_source,
initialization_mode, initialization_mode,
subagent_source: session_source_subagent_source(&thread_session_source), subagent_source,
parent_thread_id: session_source_parent_thread_id(&thread_session_source), parent_thread_id,
}, },
}); });