feat: 模型级联菜单、逐回合分叉、折叠态会话切换、划选引用与界面缩放

- 模型菜单改为级联悬浮结构:服务商独立成行,悬浮其上时模型列表浮出左侧;
This commit is contained in:
Rick Ye
2026-09-09 18:06:44 +08:00
parent 2622487279
commit 2b69a9aa13
17 changed files with 677 additions and 355 deletions
+12 -1
View File
@@ -1,4 +1,4 @@
import { contextBridge, ipcRenderer } from 'electron'
import { contextBridge, ipcRenderer, webFrame } from 'electron'
import type {
AgentUiEvent,
AppSettings,
@@ -28,6 +28,15 @@ const api = {
minimize: (): Promise<void> => ipcRenderer.invoke('win:minimize'),
toggleMaximize: (): Promise<void> => ipcRenderer.invoke('win:toggleMaximize'),
close: (): Promise<void> => ipcRenderer.invoke('win:close'),
// 界面缩放(Ctrl+= / Ctrl+- / Ctrl+0),factor 为相对倍率,限制在 50%–200%
zoom: (factor: number): void => {
const next = Math.min(2, Math.max(0.5, webFrame.getZoomFactor() * factor))
webFrame.setZoomFactor(next)
},
zoomReset: (): void => {
webFrame.setZoomFactor(1)
},
onWindowState: (callback: (maximized: boolean) => void): (() => void) => {
const listener = (_e: Electron.IpcRendererEvent, maximized: boolean): void => callback(maximized)
ipcRenderer.on('win:state', listener)
@@ -78,6 +87,8 @@ const api = {
navigateTree: (entryId: string, options?: NavigateTreeOptions): Promise<void> =>
ipcRenderer.invoke('session:navigate', entryId, options),
forkSession: (): Promise<void> => ipcRenderer.invoke('session:fork'),
forkSessionAt: (entryId: string, position: 'at' | 'before'): Promise<void> =>
ipcRenderer.invoke('session:forkAt', entryId, position),
getSettings: (): Promise<AppSettings> => ipcRenderer.invoke('settings:get'),
getSystemPrompt: (): Promise<string> => ipcRenderer.invoke('settings:getSystemPrompt'),
setThemeColor: (id: string): Promise<void> => ipcRenderer.invoke('settings:setTheme', id),