mirror of
https://github.com/openai/codex.git
synced 2026-09-16 12:13:30 +00:00
core: unify item metadata feature flag with legacy alias
This commit is contained in:
@@ -407,6 +407,9 @@
|
||||
"include_apply_patch_tool": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"item_metadata": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"js_repl": {
|
||||
"type": "boolean"
|
||||
},
|
||||
@@ -1962,6 +1965,9 @@
|
||||
"include_apply_patch_tool": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"item_metadata": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"js_repl": {
|
||||
"type": "boolean"
|
||||
},
|
||||
|
||||
@@ -3787,7 +3787,7 @@ impl Session {
|
||||
response_item: ResponseItem,
|
||||
user_message_type: Option<UserMessageType>,
|
||||
) {
|
||||
let user_message_type = if self.enabled(Feature::UserMessageTypeMetadata) {
|
||||
let user_message_type = if self.enabled(Feature::ItemMetadata) {
|
||||
user_message_type
|
||||
} else {
|
||||
None
|
||||
@@ -3918,7 +3918,7 @@ impl Session {
|
||||
}
|
||||
|
||||
let mut input_item: ResponseInputItem = input.into();
|
||||
if self.enabled(Feature::UserMessageTypeMetadata) {
|
||||
if self.enabled(Feature::ItemMetadata) {
|
||||
stamp_user_message_type_on_input_item(&mut input_item, UserMessageType::PromptSteering);
|
||||
}
|
||||
|
||||
@@ -3941,7 +3941,7 @@ impl Session {
|
||||
ResponseInputItem::Message { .. } => Some(UserMessageType::PromptQueued),
|
||||
_ => None,
|
||||
};
|
||||
if self.enabled(Feature::UserMessageTypeMetadata)
|
||||
if self.enabled(Feature::ItemMetadata)
|
||||
&& let Some(kind) = user_message_type.clone()
|
||||
{
|
||||
stamp_user_message_type_on_input_item(&mut item, kind);
|
||||
@@ -5726,7 +5726,7 @@ pub(crate) async fn run_turn(
|
||||
.await;
|
||||
|
||||
let mut initial_input_for_turn: ResponseInputItem = ResponseInputItem::from(input.clone());
|
||||
if sess.enabled(Feature::UserMessageTypeMetadata) {
|
||||
if sess.enabled(Feature::ItemMetadata) {
|
||||
stamp_user_message_type_on_input_item(&mut initial_input_for_turn, UserMessageType::Prompt);
|
||||
}
|
||||
let response_item: ResponseItem = initial_input_for_turn.clone().into();
|
||||
|
||||
@@ -3841,7 +3841,7 @@ async fn task_finish_emits_prompt_queued_metadata_for_injected_user_input_when_f
|
||||
Arc::get_mut(&mut sess)
|
||||
.expect("session should be uniquely owned in this test")
|
||||
.features
|
||||
.enable(crate::features::Feature::UserMessageTypeMetadata)
|
||||
.enable(crate::features::Feature::ItemMetadata)
|
||||
.expect("feature flag should be enabled for this test");
|
||||
|
||||
let input = vec![UserInput::Text {
|
||||
|
||||
@@ -174,8 +174,8 @@ pub enum Feature {
|
||||
ToolCallMcpElicitation,
|
||||
/// Enable personality selection in the TUI.
|
||||
Personality,
|
||||
/// Emit user_message_type metadata on user message turn items and request items.
|
||||
UserMessageTypeMetadata,
|
||||
/// Emit item-level metadata on request/response items.
|
||||
ItemMetadata,
|
||||
/// Enable native artifact tools.
|
||||
Artifact,
|
||||
/// Enable Fast mode selection in the TUI and request layer.
|
||||
@@ -814,8 +814,8 @@ pub const FEATURES: &[FeatureSpec] = &[
|
||||
default_enabled: true,
|
||||
},
|
||||
FeatureSpec {
|
||||
id: Feature::UserMessageTypeMetadata,
|
||||
key: "user_message_type_metadata",
|
||||
id: Feature::ItemMetadata,
|
||||
key: "item_metadata",
|
||||
stage: Stage::UnderDevelopment,
|
||||
default_enabled: false,
|
||||
},
|
||||
|
||||
@@ -45,6 +45,10 @@ const ALIASES: &[Alias] = &[
|
||||
legacy_key: "memory_tool",
|
||||
feature: Feature::MemoryTool,
|
||||
},
|
||||
Alias {
|
||||
legacy_key: "user_message_type_metadata",
|
||||
feature: Feature::ItemMetadata,
|
||||
},
|
||||
];
|
||||
|
||||
pub(crate) fn legacy_feature_keys() -> impl Iterator<Item = &'static str> {
|
||||
|
||||
@@ -142,6 +142,18 @@ fn collab_is_legacy_alias_for_multi_agent() {
|
||||
assert_eq!(feature_for_key("collab"), Some(Feature::Collab));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn user_message_type_metadata_is_legacy_alias_for_item_metadata() {
|
||||
assert_eq!(feature_for_key("user_message_type_metadata"), Some(Feature::ItemMetadata));
|
||||
assert_eq!(feature_for_key("item_metadata"), Some(Feature::ItemMetadata));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn item_metadata_is_under_development_and_disabled_by_default() {
|
||||
assert_eq!(Feature::ItemMetadata.stage(), Stage::UnderDevelopment);
|
||||
assert_eq!(Feature::ItemMetadata.default_enabled(), false);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn multi_agent_is_stable_and_enabled_by_default() {
|
||||
assert_eq!(Feature::Collab.stage(), Stage::Stable);
|
||||
|
||||
@@ -136,7 +136,7 @@ async fn user_message_type_metadata_is_emitted_when_feature_enabled() -> anyhow:
|
||||
.with_config(|config| {
|
||||
config
|
||||
.features
|
||||
.enable(Feature::UserMessageTypeMetadata)
|
||||
.enable(Feature::ItemMetadata)
|
||||
.expect("feature flag should be enabled for this test");
|
||||
})
|
||||
.build(&server)
|
||||
@@ -259,7 +259,7 @@ async fn user_message_type_prompt_steering_metadata_is_emitted_when_feature_enab
|
||||
.with_config(|config| {
|
||||
config
|
||||
.features
|
||||
.enable(Feature::UserMessageTypeMetadata)
|
||||
.enable(Feature::ItemMetadata)
|
||||
.expect("feature flag should be enabled for this test");
|
||||
})
|
||||
.build(&server)
|
||||
@@ -389,7 +389,7 @@ async fn user_message_type_prompt_queued_metadata_is_emitted_when_feature_enable
|
||||
.with_config(|config| {
|
||||
config
|
||||
.features
|
||||
.enable(Feature::UserMessageTypeMetadata)
|
||||
.enable(Feature::ItemMetadata)
|
||||
.expect("feature flag should be enabled for this test");
|
||||
})
|
||||
.build(&server)
|
||||
|
||||
Reference in New Issue
Block a user