Record the multi-agent version in turn analytics (#51333)

## What changed

Carry `multi_agent_version` from the turn context through resolved configuration facts into turn analytics events.

## Testing

Extend the turn event serialization test to assert that `MultiAgentVersion::V2` is emitted as `"v2"` in `multi_agent_version`.

GitOrigin-RevId: f3e8c98588926d41a18c3db9aa229677e68cf5c1
This commit is contained in:
jif
2026-10-06 10:49:44 +00:00
committed by copyberry
parent c2ae67d769
commit 5ddd19e8a9
6 changed files with 8 additions and 0 deletions
+1
View File
@@ -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<String>,
+1
View File
@@ -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<Personality>,
+2
View File
@@ -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),
@@ -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",
+1
View File
@@ -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,
+1
View File
@@ -1298,6 +1298,7 @@ async fn track_turn_resolved_config_analytics(
.get::<codex_extension_api::GuardianV2Enabled>()
.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(),