feat: 选中模型持久化为默认,刷新后自动恢复选中

This commit is contained in:
developer
2026-04-04 22:13:57 +08:00
parent e435f0f1a0
commit 0a85ff3dfa
2 changed files with 13 additions and 5 deletions
+7 -2
View File
@@ -23,10 +23,12 @@ console.log('[Metona] 模块化版本 v2.1.0 ' + new Date().toISOString());
// ── 会话管理 ── // ── 会话管理 ──
function createNewSession() { function createNewSession() {
const selectedModel = document.querySelector('#modelSelect')?.value || '';
const defaultModel = selectedModel || state.get('_defaultModel', '');
return { return {
id: generateId(), id: generateId(),
title: '新会话', title: '新会话',
model: document.querySelector('#modelSelect')?.value || '', model: defaultModel,
messages: [], messages: [],
createdAt: Date.now(), createdAt: Date.now(),
updatedAt: Date.now() updatedAt: Date.now()
@@ -96,7 +98,10 @@ async function init() {
// 7. 恢复上次选择的模型 // 7. 恢复上次选择的模型
const savedModel = await db.getSetting('selectedModel', ''); const savedModel = await db.getSetting('selectedModel', '');
if (savedModel) setSelectedModel(savedModel); if (savedModel) {
setSelectedModel(savedModel);
state.set('_defaultModel', savedModel);
}
// 8. 恢复系统提示词和上下文长度 // 8. 恢复系统提示词和上下文长度
const systemPromptEnabled = await db.getSetting('systemPromptEnabled', false); const systemPromptEnabled = await db.getSetting('systemPromptEnabled', false);
+6 -3
View File
@@ -23,6 +23,9 @@ export function initModelBar() {
modelSelectEl.addEventListener('change', async () => { modelSelectEl.addEventListener('change', async () => {
const model = modelSelectEl.value; const model = modelSelectEl.value;
if (db()) await db().saveSetting('selectedModel', model); if (db()) await db().saveSetting('selectedModel', model);
state.set('_defaultModel', model);
const session = state.get(KEYS.CURRENT_SESSION);
if (session) session.model = model;
if (model) { if (model) {
await checkModelCapability(model); await checkModelCapability(model);
} else { } else {
@@ -70,9 +73,9 @@ export async function loadModels() {
}); });
// 恢复上次选择的模型 // 恢复上次选择的模型
const currentSession = state.get(KEYS.CURRENT_SESSION); const defaultModel = state.get('_defaultModel', '');
if (currentSession?.model) { if (defaultModel) {
modelSelectEl.value = currentSession.model; modelSelectEl.value = defaultModel;
} }
if (db()) await db().saveSetting('selectedModel', modelSelectEl.value); if (db()) await db().saveSetting('selectedModel', modelSelectEl.value);