fix(#4728): guard settings default-model capture when no option is selected

This commit is contained in:
Rod Boev 2026-06-24 15:25:07 -04:00 committed by nesquena-hermes
parent c388d15f2b
commit 23b3206f83
2 changed files with 4 additions and 2 deletions

View file

@ -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;

View file

@ -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():