* fix(settings): show live models in default model picker and apply to new chats (#872) Two related bugs: 1. Settings > Preferences > Default Model dropdown only showed static models from /api/models — live-fetched models (e.g. @nous:anthropic/claude-opus-4.7) were missing. Now calls _fetchLiveModels() on the settings picker too. 2. New chats ignored the saved default model preference — they always used the chat-header dropdown value (which reflects the previous session's model). Now newSession() uses the saved default_model and syncs the dropdown. Extracted _addLiveModelsToSelect() from _fetchLiveModels() so cached live models can be applied to any <select> element (chat-header or settings picker). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(tests): update live-model prefix tests for _addLiveModelsToSelect extraction The tests searched for og.dataset.provider, _isPortalFetch, and openrouter exclusion patterns inside _fetchLiveModels(). These were extracted into _addLiveModelsToSelect() as part of the #872 fix. Updated regex targets to check _addLiveModelsToSelect first, falling back to _fetchLiveModels. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: add multi-tab note on window._defaultModel Clarifies that window._defaultModel is per-page-load and not synced across browser tabs, following maintainer feedback on #889. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: CHANGELOG for v0.50.170 * chore: trigger PR refresh after rebase --------- Co-authored-by: fr33m1nd <bergeouss@gmail.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
This commit is contained in:
@@ -1431,7 +1431,7 @@ async function loadSettingsPanel(){
|
||||
setLocale(resolvedLanguage);
|
||||
if(typeof applyLocaleToDOM==='function') applyLocaleToDOM();
|
||||
}
|
||||
// Populate model dropdown from /api/models
|
||||
// Populate model dropdown from /api/models + live model fetch (#872)
|
||||
const modelSel=$('settingsModel');
|
||||
if(modelSel){
|
||||
modelSel.innerHTML='';
|
||||
@@ -1441,6 +1441,7 @@ async function loadSettingsPanel(){
|
||||
for(const g of ((models||{}).groups||[])){
|
||||
const og=document.createElement('optgroup');
|
||||
og.label=g.provider;
|
||||
if(g.provider_id) og.dataset.provider=g.provider_id;
|
||||
for(const m of g.models){
|
||||
const opt=document.createElement('option');
|
||||
opt.value=m.id;opt.textContent=m.label;
|
||||
@@ -1448,6 +1449,11 @@ async function loadSettingsPanel(){
|
||||
}
|
||||
modelSel.appendChild(og);
|
||||
}
|
||||
// Append live-fetched models for the active provider, same as the
|
||||
// chat-header dropdown does via _fetchLiveModels() (#872).
|
||||
if(models.active_provider && typeof _fetchLiveModels==='function'){
|
||||
_fetchLiveModels(models.active_provider, modelSel);
|
||||
}
|
||||
}catch(e){}
|
||||
_settingsHermesDefaultModelOnOpen=(models&&models.default_model)||'';
|
||||
modelSel.value=_settingsHermesDefaultModelOnOpen;
|
||||
|
||||
Reference in New Issue
Block a user