diff --git a/static/panels.js b/static/panels.js index af48a6c1..59626b86 100644 --- a/static/panels.js +++ b/static/panels.js @@ -7377,7 +7377,7 @@ async function _autosavePreferencesSettings(payload){ const pwDirty=!!(pwField&&pwField.value); const modelSel=$('settingsModel'); const modelState=(typeof _captureModelDropdownSelection==='function'&&modelSel) - ? _captureModelDropdownSelection(modelSel) + ? (_captureModelDropdownSelection(modelSel)||{model:String((modelSel&&modelSel.value)||''),model_provider:null}) : {model:String((modelSel&&modelSel.value)||''),model_provider:null}; const modelDirty=!!( modelSel&&( @@ -9720,7 +9720,7 @@ async function _applyAuxModels(){ async function saveSettings(andClose){ const model=($('settingsModel')||{}).value; const modelState=(typeof _captureModelDropdownSelection==='function'&&$('settingsModel')) - ? _captureModelDropdownSelection($('settingsModel')) + ? (_captureModelDropdownSelection($('settingsModel'))||{model:String(model||''),model_provider:null}) : {model:String(model||''),model_provider:null}; const modelChanged=(model||'')!==(_settingsHermesDefaultModelOnOpen||'')||((modelState.model_provider||null)!==(_settingsHermesDefaultModelProviderOnOpen||null)); const sendKey=($('settingsSendKey')||{}).value; diff --git a/tests/test_new_chat_default_model_frontend.py b/tests/test_new_chat_default_model_frontend.py index e49ffddf..714e1f0d 100644 --- a/tests/test_new_chat_default_model_frontend.py +++ b/tests/test_new_chat_default_model_frontend.py @@ -169,6 +169,8 @@ def test_save_settings_syncs_default_model_provider_with_saved_model(): assert "_settingsHermesDefaultModelProviderOnOpen=(models&&models.active_provider)||null;" in panels_js assert "if(Object.prototype.hasOwnProperty.call(body,'default_model_provider')) _settingsHermesDefaultModelProviderOnOpen=body.default_model_provider||null;" in apply_saved_block assert "(modelState.model_provider||null)!==(_settingsHermesDefaultModelProviderOnOpen||null)" in autosave_block + assert "_captureModelDropdownSelection(modelSel)||{model:String((modelSel&&modelSel.value)||''),model_provider:null}" in panels_js + assert "_captureModelDropdownSelection($('settingsModel'))||{model:String(model||''),model_provider:null}" in save_block def test_changelog_mentions_new_chat_default_model_provider_sync():