mirror of
https://github.com/openai/codex.git
synced 2026-11-13 21:30:47 +00:00
Gate content item kinds behind a feature flag (#40450)
## What changed - Add the under-development `content_item_kinds` feature, disabled by default. - Strip content item classifications from Responses input when the feature is disabled while preserving other passthrough metadata. ## Testing - Add coverage that disables the feature and verifies requests omit content item kinds without removing the turn ID. GitOrigin-RevId: f938feb2895d766d979b1666fc7b97fd128fe8a7
This commit is contained in:
@@ -208,6 +208,7 @@ struct ModelClientState {
|
||||
session_source: SessionSource,
|
||||
originator: String,
|
||||
model_verbosity: Option<VerbosityConfig>,
|
||||
content_item_kinds_enabled: bool,
|
||||
enable_request_compression: bool,
|
||||
include_timing_metrics: bool,
|
||||
beta_features_header: Option<String>,
|
||||
@@ -436,6 +437,7 @@ impl ModelClient {
|
||||
session_source: SessionSource,
|
||||
originator: String,
|
||||
model_verbosity: Option<VerbosityConfig>,
|
||||
content_item_kinds_enabled: bool,
|
||||
enable_request_compression: bool,
|
||||
include_timing_metrics: bool,
|
||||
beta_features_header: Option<String>,
|
||||
@@ -459,6 +461,7 @@ impl ModelClient {
|
||||
session_source,
|
||||
originator,
|
||||
model_verbosity,
|
||||
content_item_kinds_enabled,
|
||||
enable_request_compression,
|
||||
include_timing_metrics,
|
||||
beta_features_header,
|
||||
@@ -963,6 +966,9 @@ impl ModelClient {
|
||||
if item.id().is_some_and(|id| !id.is_prefixed()) {
|
||||
item.set_id(/*new_id*/ None);
|
||||
}
|
||||
if !self.state.content_item_kinds_enabled {
|
||||
item.clear_content_item_kinds();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -110,6 +110,7 @@ fn test_model_client_with_thread_id(
|
||||
session_source,
|
||||
"test_originator".to_string(),
|
||||
/*model_verbosity*/ None,
|
||||
/*content_item_kinds_enabled*/ true,
|
||||
/*enable_request_compression*/ false,
|
||||
/*include_timing_metrics*/ false,
|
||||
/*beta_features_header*/ None,
|
||||
@@ -155,6 +156,7 @@ async fn compact_uses_bearer_after_agent_identity_session_fallback() -> anyhow::
|
||||
SessionSource::Cli,
|
||||
"test_originator".to_string(),
|
||||
/*model_verbosity*/ None,
|
||||
/*content_item_kinds_enabled*/ true,
|
||||
/*enable_request_compression*/ false,
|
||||
/*include_timing_metrics*/ false,
|
||||
/*beta_features_header*/ None,
|
||||
@@ -955,6 +957,7 @@ fn model_client_with_counting_attestation(
|
||||
SessionSource::Exec,
|
||||
"test_originator".to_string(),
|
||||
/*model_verbosity*/ None,
|
||||
/*content_item_kinds_enabled*/ true,
|
||||
/*enable_request_compression*/ false,
|
||||
/*include_timing_metrics*/ false,
|
||||
/*beta_features_header*/ None,
|
||||
|
||||
@@ -1432,6 +1432,7 @@ impl Session {
|
||||
session_configuration.session_source.clone(),
|
||||
session_configuration.originator.clone(),
|
||||
config.model_verbosity,
|
||||
config.features.enabled(Feature::ContentItemKinds),
|
||||
config.features.enabled(Feature::EnableRequestCompression),
|
||||
config.features.enabled(Feature::RuntimeMetrics),
|
||||
Self::build_model_client_beta_features_header(config.as_ref()),
|
||||
|
||||
@@ -690,6 +690,7 @@ fn test_model_client_session() -> crate::client::ModelClientSession {
|
||||
codex_protocol::protocol::SessionSource::Exec,
|
||||
"test_originator".to_string(),
|
||||
/*model_verbosity*/ None,
|
||||
/*content_item_kinds_enabled*/ true,
|
||||
/*enable_request_compression*/ false,
|
||||
/*include_timing_metrics*/ false,
|
||||
/*beta_features_header*/ None,
|
||||
@@ -5991,6 +5992,7 @@ pub(crate) async fn make_session_and_context() -> (Session, TurnContext) {
|
||||
session_configuration.session_source.clone(),
|
||||
session_configuration.originator.clone(),
|
||||
config.model_verbosity,
|
||||
config.features.enabled(Feature::ContentItemKinds),
|
||||
config.features.enabled(Feature::EnableRequestCompression),
|
||||
config.features.enabled(Feature::RuntimeMetrics),
|
||||
Session::build_model_client_beta_features_header(config.as_ref()),
|
||||
@@ -8200,6 +8202,7 @@ where
|
||||
session_configuration.session_source.clone(),
|
||||
session_configuration.originator.clone(),
|
||||
config.model_verbosity,
|
||||
config.features.enabled(Feature::ContentItemKinds),
|
||||
config.features.enabled(Feature::EnableRequestCompression),
|
||||
config.features.enabled(Feature::RuntimeMetrics),
|
||||
Session::build_model_client_beta_features_header(config.as_ref()),
|
||||
|
||||
Reference in New Issue
Block a user