feat: empty role ok (#16999)

This commit is contained in:
jif-oai
2026-04-07 11:34:08 +02:00
committed by GitHub
Unverified
parent 741e2fdeb8
commit 51f75e2f56
2 changed files with 22 additions and 0 deletions
+6
View File
@@ -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);
+16
View File
@@ -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;