v0.12.10: 修复工作空间目录设置不生效 + 版本号更新

fix: 工作空间目录设置三处断链修复
  - ipc.ts: setDir 时持久化到 SQLite,启动时自动恢复
  - settings-modal.ts: 设置成功后通知 workspace-panel 刷新
  - workspace-panel.ts: 监听目录变更事件,立即重载文件列表

chore: 版本号 0.12.9 → 0.12.10
This commit is contained in:
紫影233
2026-06-24 10:58:49 +08:00
parent 2d3ea85255
commit d7275b08e8
8 changed files with 63 additions and 15 deletions
+12
View File
@@ -288,6 +288,8 @@ export function initSettingsModal(): void {
if (result.success) {
showToast('工作空间目录已更新', 'success');
logSetting('工作空间目录', result.dir!);
// ── 通知工作空间面板刷新目录 ──
window.dispatchEvent(new CustomEvent('workspaceDirChanged', { detail: { dir: result.dir } }));
} else {
showToast(`设置失败: ${result.error!}`, 'error');
// 恢复原值
@@ -308,6 +310,16 @@ export function openSettingsModal(): void {
updateMemoryVectorStatus();
loadTimeoutSettings();
loadWatchdogSetting();
// 刷新工作空间目录显示
const bridge = window.metonaDesktop;
if (bridge?.isDesktop) {
const wsInput = document.querySelector('#inputWorkspaceDir') as HTMLInputElement;
if (wsInput) {
bridge.workspace.getDir().then((info: { dir: string }) => {
wsInput.value = info.dir;
}).catch(() => {});
}
}
}
/** 加载看门狗设置到输入框 */
@@ -237,6 +237,26 @@ export async function initWorkspacePanel(): Promise<void> {
// 绑定 UI 事件
bindEvents();
// ── 监听工作空间目录变更(来自设置面板)──
window.addEventListener('workspaceDirChanged', ((e: CustomEvent) => {
const newDir = e.detail?.dir;
if (newDir && newDir !== workspaceDir) {
workspaceDir = newDir;
currentFileDir = newDir;
logInfo('工作空间目录已刷新', newDir);
// 如果当前在文件页签,立即重新加载
if (activeTab === 'files') {
loadFiles(newDir);
}
// 刷新终端空闲状态中的目录显示
if (activeTab === 'terminal') {
renderTerminal();
}
// 刷新文件页签(即使不在当前 tab,下次切过去就是新路径)
renderPanel();
}
}) as EventListener);
// 创建唯一终端
terminal = {
id: genId(),
+1 -1
View File
@@ -28,7 +28,7 @@
<div class="header-left">
<span class="logo">🦙</span>
<span class="app-title">Metona Ollama</span>
<span class="app-version">v0.12.9</span>
<span class="app-version">v0.12.10</span>
<button class="icon-btn help-btn" id="btnHelp" title="使用帮助">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/>