mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
feat: empty role ok (#16999)
This commit is contained in:
committed by
GitHub
Unverified
parent
741e2fdeb8
commit
51f75e2f56
@@ -64,6 +64,12 @@ async fn apply_role_to_config_inner(
|
||||
return Ok(());
|
||||
};
|
||||
let role_layer_toml = load_role_layer_toml(config, config_file, is_built_in, role_name).await?;
|
||||
if role_layer_toml
|
||||
.as_table()
|
||||
.is_some_and(toml::map::Map::is_empty)
|
||||
{
|
||||
return Ok(());
|
||||
}
|
||||
let (preserve_current_profile, preserve_current_provider) =
|
||||
preservation_policy(config, &role_layer_toml);
|
||||
|
||||
|
||||
@@ -87,6 +87,22 @@ async fn apply_explorer_role_sets_model_and_adds_session_flags_layer() {
|
||||
assert_eq!(session_flags_layer_count(&config), before_layers + 1);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn apply_empty_explorer_role_preserves_current_model_and_reasoning_effort() {
|
||||
let (_home, mut config) = test_config_with_cli_overrides(Vec::new()).await;
|
||||
let before_layers = session_flags_layer_count(&config);
|
||||
config.model = Some("gpt-5.4-mini".to_string());
|
||||
config.model_reasoning_effort = Some(ReasoningEffort::High);
|
||||
|
||||
apply_role_to_config(&mut config, Some("explorer"))
|
||||
.await
|
||||
.expect("explorer role should apply");
|
||||
|
||||
assert_eq!(config.model.as_deref(), Some("gpt-5.4-mini"));
|
||||
assert_eq!(config.model_reasoning_effort, Some(ReasoningEffort::High));
|
||||
assert_eq!(session_flags_layer_count(&config), before_layers);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn apply_role_returns_unavailable_for_missing_user_role_file() {
|
||||
let (_home, mut config) = test_config_with_cli_overrides(Vec::new()).await;
|
||||
|
||||
Reference in New Issue
Block a user