From 1584d53bf9cc2b9940371d595a4fece23e7e9837 Mon Sep 17 00:00:00 2001 From: friendfish Date: Thu, 14 May 2026 01:12:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=A8=A1=E5=9E=8B=E6=97=B6=E8=AF=AF=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=20Gateway=20=E9=87=8D=E5=90=AF=20(#270)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #271 --- src/lib/tauri-api.js | 2 +- src/pages/models.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/tauri-api.js b/src/lib/tauri-api.js index 5a172ea..af42aa0 100644 --- a/src/lib/tauri-api.js +++ b/src/lib/tauri-api.js @@ -251,7 +251,7 @@ export const api = { getStatusSummary: () => cachedInvoke('get_status_summary', {}, 60000), readOpenclawConfig: () => cachedInvoke('read_openclaw_config'), calibrateOpenclawConfig: (mode = 'inherit') => { invalidate('read_openclaw_config', 'check_installation', 'list_backups', 'get_services_status', 'get_status_summary'); return invoke('calibrate_openclaw_config', { mode }).then(r => { _debouncedReloadGateway(); return r }) }, - writeOpenclawConfig: (config) => { invalidate('read_openclaw_config'); return invoke('write_openclaw_config', { config }).then(r => { _debouncedReloadGateway(); return r }) }, + writeOpenclawConfig: (config, opts = {}) => { invalidate('read_openclaw_config'); return invoke('write_openclaw_config', { config }).then(r => { if (opts.noReload !== true) _debouncedReloadGateway(); return r }) }, readMcpConfig: () => cachedInvoke('read_mcp_config'), writeMcpConfig: (config) => { invalidate('read_mcp_config'); return invoke('write_mcp_config', { config }) }, reloadGateway: () => invoke('reload_gateway'), diff --git a/src/pages/models.js b/src/pages/models.js index 4ce30ab..537545a 100644 --- a/src/pages/models.js +++ b/src/pages/models.js @@ -702,7 +702,7 @@ async function saveConfigOnly(state) { const primary = getCurrentPrimary(state.config) if (primary) applyDefaultModel(state) normalizeProviderUrls(state.config) - await api.writeOpenclawConfig(state.config) + await api.writeOpenclawConfig(state.config, { noReload: true }) } catch (e) { toast(t('models.saveFailed') + ': ' + e, 'error') } @@ -713,7 +713,7 @@ async function doAutoSave(state) { const primary = getCurrentPrimary(state.config) if (primary) applyDefaultModel(state) normalizeProviderUrls(state.config) - await api.writeOpenclawConfig(state.config) + await api.writeOpenclawConfig(state.config, { noReload: true }) // ⚠ 只有 Gateway 已经在运行时才触发 restart 让配置生效。 // 如果 Gateway 没启动(首次安装 / 用户手动停了),盲目调 restart_gateway 会: @@ -1615,7 +1615,7 @@ async function handleBatchTest(section, state, providerKey) { } const aborted = ctrl.abort - autoSave(state) + saveConfigOnly(state) if (aborted) { toast(t('models.batchTestAborted', { ok, fail, skip: ids.length - ok - fail }), 'warning') } else {