Keep current project model config inherited

Treat the Current project config selection as inherited when no project-scoped model config exists, even when the UI omits scope metadata. Cover the browser-normalized save payload so project saves do not create _model_config/config.json.

Alessandro committed Jul 16, 2026 at 03:30 UTC b220d9b64eb584bfb7d82f7bbb2b54b03b885e9e
2 files changed +7 -1
plugins/_model_config/helpers/model_config.py
+5 -1
@@ -151,7 +151,11 @@ def save_project_llm_settings(project_name: str, llm_data: object) -> None:
151
152 config = llm_data.get("config")
153 config_scope = str(llm_data.get("config_scope") or "")
154 - config_is_inherited = config_scope == "inherited" and not project_config_exists
154 + config_is_inherited = not project_config_exists and (
155 + config_scope == "inherited"
156 + or isinstance(selected_preset, dict)
157 + and selected_preset.get("scope") == "current"
158 + )
159 should_save_config = (
160 project_config_exists
161 or config_scope == "project"
tests/test_model_config_project_presets.py
+2
@@ -418,6 +418,8 @@ def test_project_save_does_not_freeze_inherited_global_model_config(
418 project_data = projects.load_edit_project_data("demo")
419 assert project_data["llm"]["config_scope"] == "inherited"
420 assert project_data["llm"]["has_project_config"] is False
421 + project_data["llm"].pop("config_scope")
422 + project_data["llm"].pop("has_project_config")
423
424 projects.update_project("demo", project_data)
425