diff --git a/codex-rs/analytics/src/events.rs b/codex-rs/analytics/src/events.rs index 31ebfc3b0f..340860f985 100644 --- a/codex-rs/analytics/src/events.rs +++ b/codex-rs/analytics/src/events.rs @@ -1101,6 +1101,7 @@ pub(crate) struct CodexTurnEventParams { pub(crate) approval_policy: String, pub(crate) approvals_reviewer: String, pub(crate) guardian_v2_enabled: bool, + pub(crate) multi_agent_version: codex_protocol::protocol::MultiAgentVersion, pub(crate) sandbox_network_access: bool, pub(crate) collaboration_mode: Option<&'static str>, pub(crate) personality: Option, diff --git a/codex-rs/analytics/src/facts.rs b/codex-rs/analytics/src/facts.rs index 30f030c6fa..2a08f5ed7a 100644 --- a/codex-rs/analytics/src/facts.rs +++ b/codex-rs/analytics/src/facts.rs @@ -207,6 +207,7 @@ pub struct TurnResolvedConfigFact { pub approval_policy: AskForApproval, pub approvals_reviewer: ApprovalsReviewer, pub guardian_v2_enabled: bool, + pub multi_agent_version: codex_protocol::protocol::MultiAgentVersion, pub sandbox_network_access: bool, pub collaboration_mode: ModeKind, pub personality: Option, diff --git a/codex-rs/analytics/src/reducer.rs b/codex-rs/analytics/src/reducer.rs index f259e0cc33..d7cbca8d74 100644 --- a/codex-rs/analytics/src/reducer.rs +++ b/codex-rs/analytics/src/reducer.rs @@ -3654,6 +3654,7 @@ fn codex_turn_event_params( approval_policy, approvals_reviewer, guardian_v2_enabled, + multi_agent_version, sandbox_network_access, collaboration_mode, personality, @@ -3704,6 +3705,7 @@ fn codex_turn_event_params( approval_policy: approval_policy.to_string(), approvals_reviewer: approvals_reviewer.to_string(), guardian_v2_enabled, + multi_agent_version, sandbox_network_access, collaboration_mode: Some(collaboration_mode_mode(collaboration_mode)), personality: personality_mode(personality), diff --git a/codex-rs/analytics/src/tests/suite/turns/events_tests.rs b/codex-rs/analytics/src/tests/suite/turns/events_tests.rs index 59250f93ea..fcf8346080 100644 --- a/codex-rs/analytics/src/tests/suite/turns/events_tests.rs +++ b/codex-rs/analytics/src/tests/suite/turns/events_tests.rs @@ -129,6 +129,7 @@ fn turn_event_serializes_expected_shape() { approval_policy: "on-request".to_string(), approvals_reviewer: "auto_review".to_string(), guardian_v2_enabled: true, + multi_agent_version: codex_protocol::protocol::MultiAgentVersion::V2, sandbox_network_access: true, collaboration_mode: Some("plan"), personality: Some("pragmatic".to_string()), @@ -221,6 +222,7 @@ fn turn_event_serializes_expected_shape() { "approval_policy": "on-request", "approvals_reviewer": "auto_review", "guardian_v2_enabled": true, + "multi_agent_version": "v2", "sandbox_network_access": true, "collaboration_mode": "plan", "personality": "pragmatic", diff --git a/codex-rs/analytics/src/tests/support.rs b/codex-rs/analytics/src/tests/support.rs index 7343ff3144..634f516ea5 100644 --- a/codex-rs/analytics/src/tests/support.rs +++ b/codex-rs/analytics/src/tests/support.rs @@ -360,6 +360,7 @@ pub(super) fn sample_turn_resolved_config( approval_policy: AskForApproval::OnRequest, approvals_reviewer: ApprovalsReviewer::AutoReview, guardian_v2_enabled: false, + multi_agent_version: codex_protocol::protocol::MultiAgentVersion::Disabled, sandbox_network_access: true, collaboration_mode: ModeKind::Plan, personality: None, diff --git a/codex-rs/core/src/session/turn.rs b/codex-rs/core/src/session/turn.rs index 4047abc78a..08795333c8 100644 --- a/codex-rs/core/src/session/turn.rs +++ b/codex-rs/core/src/session/turn.rs @@ -1298,6 +1298,7 @@ async fn track_turn_resolved_config_analytics( .get::() .is_some(), sandbox_network_access: turn_context.network_sandbox_policy().is_enabled(), + multi_agent_version: turn_context.multi_agent_version, collaboration_mode: turn_context.mode(), personality: turn_context.personality(), workspace_kind: turn_context.turn_metadata_state.workspace_kind(),