fix: 修复三个启动相关 Bug
Bug 1: prompt()/confirm() 在 Electron contextIsolation 下不可用 - 新增 prompt-modal.ts 自定义弹窗组件 - 替换 memory-panel.ts、kb-modal.ts、settings-modal.ts、history-modal.ts 中所有 prompt()/confirm() 调用 Bug 2: 日志面板重启后无日志 - log-service.ts 新增 earlyBuffer 缓冲 initLogPanel() 之前的日志 - initLogPanel() 初始化时 flush earlyBuffer 到 DOM - main.ts 中 initLogPanel() 移至最先初始化 Bug 3: 首次启动输入框可能被禁用 - main.ts init() 中防御性重置 IS_STREAMING/IS_HISTORY_VIEW/toolCallingEnabled 等状态 - catch 块也重置关键状态并初始化日志面板
This commit is contained in:
+11
-1
@@ -161,6 +161,13 @@ async function init(): Promise<void> {
|
||||
state.set(KEYS.IS_HISTORY_VIEW, false);
|
||||
state.set(KEYS.NUM_CTX, 24576);
|
||||
|
||||
// ── 防御性重置:确保首次启动不会遗留脏状态 ──
|
||||
state.set('toolCallingEnabled', false);
|
||||
state.set('runCommandEnabled', false);
|
||||
state.set('memoryEnabled', true);
|
||||
state.set('thinkEnabled', false);
|
||||
|
||||
initLogPanel(); // ← 日志面板最先初始化,确保后续 init 日志能显示
|
||||
initToast();
|
||||
initLightbox();
|
||||
initHeader();
|
||||
@@ -173,7 +180,6 @@ async function init(): Promise<void> {
|
||||
initHelpModal();
|
||||
initToolConfirmModal();
|
||||
initMemoryPanel();
|
||||
initLogPanel();
|
||||
setupDesktopIntegration();
|
||||
|
||||
bindGlobalEvents();
|
||||
@@ -234,7 +240,11 @@ async function init(): Promise<void> {
|
||||
api = new OllamaAPI();
|
||||
state.set(KEYS.API, api);
|
||||
}
|
||||
// ── 防御性重置:catch 路径也确保关键状态干净 ──
|
||||
state.set(KEYS.IS_STREAMING, false);
|
||||
state.set(KEYS.IS_HISTORY_VIEW, false);
|
||||
state.set(KEYS.CURRENT_SESSION, createNewSession());
|
||||
initLogPanel();
|
||||
bindGlobalEvents();
|
||||
initToast();
|
||||
initLightbox();
|
||||
|
||||
Reference in New Issue
Block a user