Merge remote-tracking branch 'origin/main' into codex/prefix-compaction-prewarm

# Conflicts:
#	codex-rs/core/src/compact_tests.rs
#	codex-rs/core/src/session/tests.rs
#	codex-rs/features/src/tests.rs
This commit is contained in:
Rohit Arunachalam
2026-04-18 23:33:19 -07:00
193 changed files with 9544 additions and 1371 deletions

View File

@@ -156,6 +156,8 @@ pub enum Feature {
ToolSuggest,
/// Enable plugins.
Plugins,
/// Show the startup prompt for migrating external agent config into Codex.
ExternalMigration,
/// Allow the model to invoke the built-in image generation tool.
ImageGeneration,
/// Allow prompting and installing missing MCP dependencies.
@@ -847,6 +849,16 @@ pub const FEATURES: &[FeatureSpec] = &[
stage: Stage::Stable,
default_enabled: true,
},
FeatureSpec {
id: Feature::ExternalMigration,
key: "external_migration",
stage: Stage::Experimental {
name: "External migration",
menu_description: "Show a startup prompt when Codex detects migratable external agent config for this machine or project.",
announcement: "",
},
default_enabled: false,
},
FeatureSpec {
id: Feature::ImageGeneration,
key: "image_generation",

View File

@@ -120,6 +120,23 @@ fn prefix_compaction_is_experimental_and_user_toggleable() {
assert_eq!(Feature::PrefixCompaction.default_enabled(), false);
}
#[test]
fn external_migration_is_experimental_and_disabled_by_default() {
let spec = Feature::ExternalMigration.info();
let stage = spec.stage;
assert!(matches!(stage, Stage::Experimental { .. }));
assert_eq!(stage.experimental_menu_name(), Some("External migration"));
assert_eq!(
stage.experimental_menu_description(),
Some(
"Show a startup prompt when Codex detects migratable external agent config for this machine or project."
)
);
assert_eq!(stage.experimental_announcement(), None);
assert_eq!(Feature::ExternalMigration.default_enabled(), false);
}
#[test]
fn request_permissions_is_under_development() {
assert_eq!(