Merge origin/main into codex/workspace-owner-usage-nudge

Resolve the TUI and config schema conflicts between the workspace owner usage nudge work and the latest main changes without rewriting branch history.

Made-with: Cursor
This commit is contained in:
Richard Lee
2026-04-16 12:15:16 -07:00
402 changed files with 22084 additions and 6301 deletions
+23 -3
View File
@@ -146,6 +146,8 @@ pub enum Feature {
Apps,
/// Enable the tool_search tool for apps.
ToolSearch,
/// Expose placeholder tools for unavailable historical tool calls.
UnavailableDummyTools,
/// Enable discoverable tool suggestions for apps.
ToolSuggest,
/// Enable plugins.
@@ -193,6 +195,8 @@ pub enum Feature {
ResponsesWebsocketsV2,
/// Use the agent identity registration flow for ChatGPT-authenticated sessions.
UseAgentIdentity,
/// Enable workspace dependency support.
WorkspaceDependencies,
}
impl Feature {
@@ -674,7 +678,11 @@ pub const FEATURES: &[FeatureSpec] = &[
FeatureSpec {
id: Feature::MemoryTool,
key: "memories",
stage: Stage::UnderDevelopment,
stage: Stage::Experimental {
name: "Memories",
menu_description: "Allow Codex to create new memories from conversations and bring relevant memories into new conversations.",
announcement: "NEW: Codex can now generate and uses memories. Try is now with `/memories`",
},
default_enabled: false,
},
FeatureSpec {
@@ -782,6 +790,12 @@ pub const FEATURES: &[FeatureSpec] = &[
FeatureSpec {
id: Feature::ToolSearch,
key: "tool_search",
stage: Stage::Stable,
default_enabled: true,
},
FeatureSpec {
id: Feature::UnavailableDummyTools,
key: "unavailable_dummy_tools",
stage: Stage::UnderDevelopment,
default_enabled: false,
},
@@ -800,8 +814,8 @@ pub const FEATURES: &[FeatureSpec] = &[
FeatureSpec {
id: Feature::ImageGeneration,
key: "image_generation",
stage: Stage::UnderDevelopment,
default_enabled: false,
stage: Stage::Stable,
default_enabled: true,
},
FeatureSpec {
id: Feature::SkillMcpDependencyInstall,
@@ -933,6 +947,12 @@ pub const FEATURES: &[FeatureSpec] = &[
stage: Stage::UnderDevelopment,
default_enabled: false,
},
FeatureSpec {
id: Feature::WorkspaceDependencies,
key: "workspace_dependencies",
stage: Stage::Stable,
default_enabled: true,
},
];
pub fn unstable_features_warning_event(
+28 -9
View File
@@ -128,9 +128,18 @@ fn tool_suggest_is_stable_and_enabled_by_default() {
}
#[test]
fn tool_search_is_under_development_and_disabled_by_default() {
assert_eq!(Feature::ToolSearch.stage(), Stage::UnderDevelopment);
assert_eq!(Feature::ToolSearch.default_enabled(), false);
fn tool_search_is_stable_and_enabled_by_default() {
assert_eq!(Feature::ToolSearch.stage(), Stage::Stable);
assert_eq!(Feature::ToolSearch.default_enabled(), true);
}
#[test]
fn unavailable_dummy_tools_is_under_development_and_disabled_by_default() {
assert_eq!(
Feature::UnavailableDummyTools.stage(),
Stage::UnderDevelopment
);
assert_eq!(Feature::UnavailableDummyTools.default_enabled(), false);
}
#[test]
@@ -151,6 +160,12 @@ fn use_linux_sandbox_bwrap_is_a_removed_feature_key() {
);
}
#[test]
fn image_generation_is_stable_and_enabled_by_default() {
assert_eq!(Feature::ImageGeneration.stage(), Stage::Stable);
assert_eq!(Feature::ImageGeneration.default_enabled(), true);
}
#[test]
fn image_detail_original_is_a_removed_feature_key() {
assert_eq!(
@@ -159,12 +174,6 @@ fn image_detail_original_is_a_removed_feature_key() {
);
}
#[test]
fn image_generation_is_under_development() {
assert_eq!(Feature::ImageGeneration.stage(), Stage::UnderDevelopment);
assert_eq!(Feature::ImageGeneration.default_enabled(), false);
}
#[test]
fn tool_call_mcp_elicitation_is_stable_and_enabled_by_default() {
assert_eq!(Feature::ToolCallMcpElicitation.stage(), Stage::Stable);
@@ -183,6 +192,16 @@ fn use_agent_identity_is_under_development() {
assert_eq!(Feature::UseAgentIdentity.default_enabled(), false);
}
#[test]
fn workspace_dependencies_is_stable_and_enabled_by_default() {
assert_eq!(Feature::WorkspaceDependencies.stage(), Stage::Stable);
assert_eq!(Feature::WorkspaceDependencies.default_enabled(), true);
assert_eq!(
feature_for_key("workspace_dependencies"),
Some(Feature::WorkspaceDependencies)
);
}
#[test]
fn collab_is_legacy_alias_for_multi_agent() {
assert_eq!(feature_for_key("multi_agent"), Some(Feature::Collab));